Commit Graph

187 Commits

Author SHA1 Message Date
92a2fab833 feat(admin): dynamic content flows, cleaner UI copy, and table pagination
Add Learn English practice and question-type builder integrations with dynamic schema slots and HTML table editor. Remove API path labels from admin pages and standardize table page-size options to 5, 10, 30, 50, and 100.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 12:34:39 -07:00
2c3f0da6f7 feat(admin): payments, settings tabs, theme, and navigation refresh
Add admin payments with status, provider, and plan category filters. Introduce app versions and subscription plan management in settings, change-password security flow, and dark theme support. Reorganize sidebar, improve activity log actor details, analytics, and related UI polish.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 06:54:58 -07:00
e75420e756 feat(admin): analytics user breakdowns, email templates, and team invites
Surface education, occupation, learning goals, and language challenges on the analytics page with normalized dashboard API parsing. Add email template management, accept-invite onboarding, and role-based team invitations.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 10:21:55 -07:00
b8a73c73db feat(content): admin UX for forms, practices, lessons, and content hub
Remove description fields from course, unit, and module create/edit dialogs. Add unit sort order on create, lesson publish status and sort order, video duration on lesson cards, and personas API integration for Learn English practice flows.

Move Manage Question Types to the new content hub, add Reorder Content page with hierarchy drag-and-drop, shared practice review UI, module practice cards, and publish-practice controls on course listings.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-20 08:00:31 -07:00
38550f9519 UAT fixes stage 2 2026-05-19 04:41:43 -07:00
385f58fd22 UAT fixes stage 1 2026-05-18 08:44:51 -07:00
2b556d9d09 feat(content): lesson practices page, dynamic question schema, and practice flow updates
- Add LessonPracticesPage with GET /lessons/:id/practices and polished UI
- Route and module lesson navigation; view practices icon on VideoCard hover
- Question type definitions API, DynamicSchemaSlotField, definition helpers
- AddPracticeFlow and practice steps; AddQuestionPage and PracticeQuestionEditorFields

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-13 09:30:53 -07:00
f1b6172f91 fix(content): uniform lesson card heights and wire descriptions
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-13 05:34:50 -07:00
bb6680acfb feat(module): Add practice button on each lesson card
- VideoCard: optional onAddPractice for lesson-scoped CTA
- ModuleDetailPage: navigate to add-practice with lessonId and lessonTitle
- AddPracticeFlow: show context banner when opened from a lesson

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-13 05:27:06 -07:00
77b71abfd8 feat(practices): DYNAMIC questions with schema-driven payload
- Add practiceDynamicQuestionPayload helper to build stimulus/response slots
- Extend PracticeQuestionEditorFields with DYNAMIC type, definition picker, and per-slot values (JSON-capable)
- Wire AddNewPracticePage and AddNewLessonPage createQuestion to send question_type_definition_id and dynamic_payload
- Use lesson/practice save status (DRAFT/PUBLISHED) for created questions instead of always PUBLISHED

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-13 05:11:48 -07:00
9b35a8bf30 qustion type builder integartion fix 2026-05-13 04:38:09 -07:00
457d09f02b dynamic question type builder integration 2026-05-11 07:42:57 -07:00
d1fcfc19b0 added int 2026-05-07 12:29:51 +03:00
aa998e5599 setting 2026-05-07 09:58:52 +03:00
df4820eba9 Merge branch 'production' of https://gitea.yaltopia.com/Yimaru/Yimaru-Admin into el-ui 2026-05-06 09:37:39 +03:00
6181334db7 ui 2026-05-06 09:37:25 +03:00
608d5bb45a module card labeling fix 2026-05-05 08:15:52 -07:00
a6ccfba733 pre-exam courses UI integration 2026-05-05 08:10:20 -07:00
a9216c4f4b Merge branch 'el-ui' into main (prefer el-ui on conflicts) 2026-05-02 01:11:25 -07:00
af4f713395 integartion of refresh URL 2026-04-27 05:58:39 -07:00
472e71d1a2 more static files access 2026-04-27 05:14:36 -07:00
89597dbc87 more static files access fix 2026-04-27 04:54:52 -07:00
599c5dd239 static files access fix 2026-04-27 04:49:40 -07:00
7308d9bbcd ui 2026-04-27 09:52:30 +03:00
b4ab66b4a6 lesson integration 2026-04-25 02:48:52 -07:00
3634d2eb79 program+course+module integrations 2026-04-24 08:27:39 -07:00
c4ebbd903d Merge branch 'el-ui' into main (prefer el-ui on conflicts) 2026-04-24 06:06:41 -07:00
e239b28678 Merge branch 'el-ui' of https://gitea.yaltopia.com/Yimaru/Yimaru-Admin into el-ui
Made-with: Cursor

# Conflicts:
#	src/api/courses.api.ts
#	src/app/AppRoutes.tsx
#	src/pages/content-management/AddNewPracticePage.tsx
2026-04-24 06:06:32 -07:00
dc07ab72d2 Merge branch 'el-ui' into main (prefer el-ui on conflicts) 2026-04-24 05:51:37 -07:00
d4d61bfed2 course 2026-04-24 15:20:51 +03:00
1480eefbe6 yes 2026-04-22 17:10:43 +03:00
73f11ea1a0 Content admin: course hierarchy, sub-categories API, and stability fixes
- Sub-categories: load from GET categories/:id/sub-categories; SubCategoryCoursesPage
- Course structure: levels/modules/sub-modules APIs; SubCoursesPage hierarchy browser
- Sub-module detail: HumanLanguageSubModulePage for category routes; resolveSubModuleForCourse
- Types and courses API: module sub-modules endpoint, hierarchy array guard
- Misc: AppLayout/IssuesPage fixes, CoursesPage refactor, Human Language hierarchy page

Made-with: Cursor
2026-04-20 10:30:28 -07:00
f6344c19f9 Fallback edit lesson detail when missing
If /sub-module-lessons/:id returns not found, load the edit form from the linked question set instead.

Made-with: Cursor
2026-04-16 06:31:27 -07:00
5ee897cfad Add lesson detail fallback for new lessons
Handle environments where sub-module lesson detail is missing by falling back to question-set detail, and keep lesson form/status typing safe.

Made-with: Cursor
2026-04-16 06:25:09 -07:00
3ad0f0a63d Hide Step 3 hints for lesson questions
Made-with: Cursor
2026-04-16 05:21:22 -07:00
71ba71476a edit lesson form UI adjustment 2026-04-16 05:16:30 -07:00
5a2c36e276 Refresh lesson card after edit
Made-with: Cursor
2026-04-16 05:07:09 -07:00
beb0e32dde Fix auth header on edit lesson cache bust
Made-with: Cursor
2026-04-16 05:00:04 -07:00
3607e4491b Prevent stale edit lesson form
Made-with: Cursor
2026-04-16 04:54:33 -07:00
b5946b9da3 Fix stale edit-lesson form after save
Made-with: Cursor
2026-04-16 04:44:32 -07:00
7c3f2192ef Fix edit-lesson question editing UI
Embed lesson question editor inside the 'Edit lesson' dialog, remove extra inline lesson question panel, and fix lesson card question counts.

Made-with: Cursor
2026-04-16 04:29:54 -07:00
bebab7ba1e Add lesson question bank editing
For lessons, fetch related questions by lesson question_set_id and render a styled question bank panel (same UX as practice), including add/edit/delete with proper refresh.

Made-with: Cursor
2026-04-16 04:03:12 -07:00
78e1e2e0ef fix stale lesson detail counts in human language page
Fetch selected lesson details from the sub-module lesson endpoint so the inline detail panel shows the latest question count and lesson metadata.

Made-with: Cursor
2026-04-16 03:11:42 -07:00
dc9b7f9d12 use lesson detail endpoint for human language edits
Load human language lesson edit data from the dedicated sub-module lesson detail API so lesson metadata stays aligned with the backend response shape.

Made-with: Cursor
2026-04-16 02:59:45 -07:00
bf76f729aa Fix role list refresh after deletion
Made-with: Cursor
2026-04-16 01:34:04 -07:00
28af7994f8 Integrate role deletion response shape
Ensures the role delete API returns the standardized `{ message, success, status_code }` success payload.

Made-with: Cursor
2026-04-16 01:26:58 -07:00
23d100cdde fix sticky filter stacking under global topbar
Raise topbar z-index and lower the Human Language filters panel stack so sticky filters cannot render above top navigation controls.

Made-with: Cursor
2026-04-15 04:42:17 -07:00
97a65ae01e fix human language filters overlap with topbar
Move the sticky filters panel below the admin topbar and lower its stacking order so it no longer renders above global navigation.

Made-with: Cursor
2026-04-15 04:37:02 -07:00
df8dae047f improve human language scroll restore on refresh
Retry scroll restoration until the page is tall enough so refreshes restore to the saved position smoothly, while keeping reduced-motion fallback.

Made-with: Cursor
2026-04-15 04:34:34 -07:00
1f0046a8ee standardize loading indicators with shared spinner asset
Replace ad-hoc Loader2 loading indicators with SpinnerIcon so loading states across content and notifications pages use the same Circular-indeterminate progress indicator.

Made-with: Cursor
2026-04-15 04:30:07 -07:00