Commit Graph

52 Commits

Author SHA1 Message Date
Saghar Mohammadi 0caea18eb8 feat(admin/users): support multiple roles in user table and form
UsersTable now shows all role labels joined (not just the first role),
and its CSS badge class is based on the primary role. UserFormPage
uses a multi-select for roles instead of a single-select, and the
form validation requires at least one role. TermItem layout fix for
inactive badge alignment.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-09-02 15:16:04 +04:30
Saghar Mohammadi 9b61fff128 fix: branding, 401 logout, and blocked-user message on register page
- Copyright.vue / AuthCopyright.vue: change link from mugweb.ir to madresebanoo.ir
- SelectField.vue: add min-width:0 to prevent flex overflow in narrow layouts
- useRedirectAfterLogin: check roles array (multi-role support) instead of single role
- StudentRegisterPage: show block reason when user's status is blocked
- http.js: only clear session on 401 if a token already existed (login
  form 401 should not trigger logout); clear via authStore so WordPress
  cookie is also cleaned up

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-09-02 15:15:46 +04:30
Saghar Mohammadi bdb77786f2 feat(users): add user evaluation panel with PDF export
Shows the admin a summary of a user's sessions viewed, exam/homework
performance, and current term status, with a PDF export action.
2026-09-02 15:03:55 +04:30
Saghar Mohammadi d227b1c8f4 feat(services): add Service Types management UI
Admin CRUD page for service types, plus wiring the student "request
service" form's category select to the real list instead of a
hardcoded pair of options.
2026-09-02 15:03:15 +04:30
Saghar Mohammadi fdc52381db fix(courses): course cover image not saved on create/edit
The admin course form sent a stray upload id (imageId/uploadId) that
didn't match any field the API accepts; the API expects cover_media_id
with the media id returned from the upload endpoint. Also switch course
displays to the coverUrl field the API actually returns.
2026-09-02 15:02:02 +04:30
Saghar Mohammadi 9f86acacb0 feat(batch-1): multi-role sidebar, video display, certificate layout, upload progress, counselor access
- roleMenuItems.js: merged menu builder that unions items from all user roles
  (student + missionary, student + counselor, etc.) additively
- auth store: expose `roles` array in addition to singular `role`; wire in
  WordPress auth-status cookie sync so the public site can show/hide the
  account button
- router guards: use roles.includes() instead of role === for multi-role access
- layouts (Student/Counselor/Missionary): delegate menuItems to
  buildMergedMenuItems so dual-role users see sections from both roles
- StudentSessionDetailsPage: contentKind now returns 'video' (not 'link')
  when session.videoUrl is set; adds embed iframe branch for online sessions
- CertificateItem.vue: fix CSS order/alignment for desktop + mobile layout
- StudentCertificatesPage.vue: map backend payload fields to component props
  with Jalaali date formatting
- SessionFormPage: upload progress bar (%) during video uploads; embed_code
  textarea for online sessions (frontend-only; dormant until batch-2 backend
  migration is deployed)
- wp-sync/auth-status-cookie.js: cookie helper for WordPress login-state sync

[batch-1-low-risk]
2026-09-02 11:17:20 +04:30
sajjadtalkhabi 81332abdb0 fix: bugs
Deploy banu-front / deploy (push) Successful in 1m47s
2026-08-18 09:08:45 +03:30
sajjadtalkhabi e4a0eb463b Merge branch 'master' of ssh://git.madresebanoo.ir:2222/front-end/banu-front
Deploy banu-front / deploy (push) Successful in 2m0s
2026-08-17 16:59:27 +03:30
sajjadtalkhabi 20551fee63 fix: bugs 2026-08-17 16:59:24 +03:30
Server Migration 861773b05b fix: make admin media uploads reliable 2026-08-16 17:03:36 +03:30
Server Migration b64f528c0d fix: complete registration frontend flow
Deploy banu-front / deploy (push) Successful in 1m40s
2026-08-15 17:28:40 +03:30
Server Migration d94a96b25e fix: resolve education dashboard interface issues 2026-08-15 13:06:49 +03:30
sajjadtalkhabi af0149d722 fix: media recorder
Deploy banu-front / deploy (push) Successful in 1m45s
2026-08-15 13:01:18 +03:30
sajjadtalkhabi fec1da6ec8 fix: localize Yup validation messages
Deploy banu-front / deploy (push) Successful in 1m50s
2026-08-14 21:08:52 +03:30
Server Migration fe08fc46fb fix: bind session audio URL correctly
Deploy banu-front / deploy (push) Successful in 1m20s
2026-08-04 18:45:39 +00:00
Server Migration 3d005859ab fix: remove old-server frontend references
Deploy banu-front / deploy (push) Waiting to run
2026-08-04 18:43:12 +00:00
sajjadtalkhabi 39b295037e fix: bugs
Deploy banu-front / deploy (push) Successful in 2m18s
2026-08-01 10:34:21 +03:30
sajjadtalkhabi 31d100861b fix: bugs
Deploy banu-front / deploy (push) Failing after 23s
2026-07-30 18:56:55 +03:30
sajjadtalkhabi 8fefb4568b fix: bugs 2026-07-30 18:53:56 +03:30
sajjadtalkhabi bc9ce01d3f Merge branch 'master' of ssh://109.122.252.86:2222/front-end/banu-front
Deploy banu-front / deploy (push) Successful in 3m33s
2026-07-30 17:41:10 +03:30
sajjadtalkhabi 38051db180 fix: bugs 2026-07-30 17:40:41 +03:30
sajjadtalkhabi 36b747d267 fix: bugs 2026-07-30 17:38:27 +03:30
root c69a1babe5 fix: attach admin user avatars
Deploy banu-front / deploy (push) Successful in 4m35s
2026-07-30 13:55:30 +00:00
sajjadtalkhabi e8b1e4add6 fix: missionary education
Deploy banu-front / deploy (push) Successful in 1m31s
2026-07-21 12:24:58 +03:30
sajjadtalkhabi 2a1f1b19d4 fix: responsive
Deploy banu-front / deploy (push) Successful in 1m33s
2026-07-13 12:15:44 +03:30
sajjadtalkhabi 8d2aa1c214 fix: router
Deploy banu-front / deploy (push) Successful in 1m38s
2026-07-12 12:16:12 +03:30
sajjadtalkhabi b592f520ab fix: dashboard
Deploy banu-front / deploy (push) Successful in 1m34s
2026-07-12 12:03:26 +03:30
sajjadtalkhabi dbc166f015 fix: bugs
Deploy banu-front / deploy (push) Successful in 1m27s
2026-07-09 13:50:49 +03:30
sajjadtalkhabi da34813b1d fix: bugs
Deploy banu-front / deploy (push) Successful in 1m28s
2026-07-09 13:25:59 +03:30
sajjadtalkhabi 38a396ba21 fix
Deploy banu-front / deploy (push) Successful in 1m27s
2026-07-07 17:36:43 +03:30
sajjadtalkhabi b9ef684b51 fix: bugs
Deploy banu-front / deploy (push) Successful in 1m22s
2026-07-02 19:09:13 +03:30
sajjadtalkhabi e700609236 fix
Deploy banu-front / deploy (push) Successful in 1m20s
2026-06-27 20:07:58 +03:30
sajjadtalkhabi 2c617258f4 fix: dashboard 2026-06-27 15:45:07 +03:30
sajjadtalkhabi a4432a30cb fix: mirror
Deploy banu-front / deploy (push) Successful in 1m27s
2026-06-12 01:01:45 +03:30
sajjadtalkhabi 4011c2f83b feat: education
Deploy banu-front / deploy (push) Failing after 6s
2026-06-11 21:09:12 +03:30
sajjadtalkhabi 020a47f735 fix: data
Deploy banu-front / deploy (push) Failing after 6s
2026-06-11 19:22:35 +03:30
sajjadtalkhabi a007db0d50 fix: user status
Deploy banu-front / deploy (push) Failing after 7s
2026-06-11 16:57:17 +03:30
sajjadtalkhabi b9fa65b84f fix: admin users
Deploy banu-front / deploy (push) Failing after 16s
2026-06-10 20:55:54 +03:30
sajjadtalkhabi b8ccbcc030 fix: tickets
Deploy banu-front / deploy (push) Failing after 16s
2026-06-05 19:42:09 +03:30
sajjadtalkhabi ea562aeefa fix: ticket 2026-06-05 18:43:02 +03:30
sajjadtalkhabi 1c665830b0 fix
Deploy banu-front / deploy (push) Successful in 1m19s
2026-06-05 14:41:38 +03:30
sajjadtalkhabi d42b7aaa7b fix: education
Deploy banu-front / deploy (push) Successful in 1m21s
2026-05-28 19:49:00 +03:30
sajjadtalkhabi 9660e3fe8f fix: linter
Deploy banu-front / deploy (push) Successful in 1m28s
2026-05-28 15:52:48 +03:30
sajjadtalkhabi 3f3c66a02d fix: test 2026-05-28 15:40:22 +03:30
sajjadtalkhabi 7ed6ec9ae1 fix: user changes 2026-05-28 13:34:30 +03:30
sajjadtalkhabi cb86920015 fix: admin courses 2026-05-27 14:47:19 +03:30
sajjadtalkhabi 35a0f2c04c fix 2026-05-21 16:08:36 +03:30
sajjadtalkhabi 74227d5021 fix 2026-05-21 15:51:32 +03:30
sajjadtalkhabi 8990ceaddd fix: design 2026-05-19 22:53:05 +03:30
sajjadtalkhabi c82701888a fix 2026-05-15 17:12:51 +03:30