Commit Graph

154 Commits

Author SHA1 Message Date
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
d33bacf628 fix human language navigation and practice fetch guards
Route published lesson success back to the Human Language page so prior scroll position is restored, and explicitly guard practice question rendering by fetch status.

Made-with: Cursor
2026-04-15 04:11:29 -07:00
814a6a54e8 stabilize flows course selection by strict category match
Filter course options by exact selected category_id in flows to prevent first-load course mismatch that changed module counts after refresh.

Made-with: Cursor
2026-04-14 10:13:59 -07:00
5b1d3903e0 align flows tab data sources with unified sub-module hierarchy
Switch flows detail loading from legacy learning-path assumptions to unified course hierarchy APIs (sub-modules, sub-module videos, and SUB_MODULE-owned practice sets).

Made-with: Cursor
2026-04-14 09:55:28 -07:00
416b18794c fix lesson review to count default question card
Show default Question 1 in step-3 review count/list even before text is filled, so publish review matches the active question cards.

Made-with: Cursor
2026-04-14 09:31:25 -07:00
5059e6db14 add background retries while human language tab is active
Keep retrying hierarchy fetch for a short period when the tab is active and still empty, so data appears automatically without manual refresh.

Made-with: Cursor
2026-04-14 09:13:49 -07:00
967339a400 load human language data on tab route activation
Trigger hierarchy fetch whenever the Human Language route is selected so data appears immediately when switching tabs from Content Management.

Made-with: Cursor
2026-04-14 09:10:00 -07:00
60a29816fb harden human language initial load with staged retries
Run multiple delayed hierarchy retries on first tab navigation to prevent empty-state flicker and avoid requiring manual page refresh.

Made-with: Cursor
2026-04-14 09:06:26 -07:00
a8e4ef76e9 fix human language tab empty state on first navigation
Retry hierarchy loading once when initial tab navigation returns empty, so content appears immediately without manual page refresh.

Made-with: Cursor
2026-04-14 09:03:01 -07:00
a006aa5c85 add route-aware scroll restoration across app pages
Persist and restore per-route scroll positions in the main layout container so page position is remembered after refresh and navigation.

Made-with: Cursor
2026-04-14 08:58:14 -07:00
981780536e style lesson review/success pages and stabilize first-load content fetch
Match lesson review and success screens to the practice-style UI and add a single retry for initial hierarchy fetches so content management data appears immediately after login.

Made-with: Cursor
2026-04-14 08:54:40 -07:00
700080f001 fix duplicate subcategory error on quick path recreate
Make human-language quick path creation idempotent by reusing existing subcategories/courses when names already exist, avoiding unique-constraint failures.

Made-with: Cursor
2026-04-14 08:45:45 -07:00
ea73323fce fix lesson intro video flow and polish review layout
Auto-process intro video URLs on blur with preview support, improve local upload reliability, and refine Step 1 + Review styling for the lesson creation wizard.

Made-with: Cursor
2026-04-14 08:06:48 -07:00
558cf11abc fix lesson stepper visibility and state styling
Restore a stable practice-style step indicator in Add New Lesson so active and completed steps are clearly visible and connectors render correctly.

Made-with: Cursor
2026-04-14 08:00:26 -07:00
a3f31e92c1 refine lesson creation form styling and soften lesson tab contrast
Restyle the lesson creation flow to match the polished practice experience with cleaner step visuals and section layouts, and reduce high-contrast accents in the lessons panel for a calmer UI.

Made-with: Cursor
2026-04-14 07:56:37 -07:00
eee5771957 add bulk lesson delete and preserve scroll position
Enable selecting and deleting multiple lessons at once in the human language panel, and persist page scroll so users return to their previous position after reload.

Made-with: Cursor
2026-04-14 07:48:36 -07:00
fe3f235fcd add lesson edit/delete controls and soften lesson card contrast
Introduce lesson edit and delete actions in the human language list using question set updates/deletes, and refine lesson card/status styling for lower visual contrast with richer detail presentation.

Made-with: Cursor
2026-04-14 07:42:36 -07:00
997043fac9 show created lessons in human language list with richer cards
Load sub-module QUIZ question sets into lesson rows so newly created lessons appear immediately, and upgrade lesson cards/detail panel styling to show status, question counts, and intro video previews.

Made-with: Cursor
2026-04-14 07:36:25 -07:00
8c2971f217 clarify intro video URL import button label
Replace technical API wording in the lesson intro video action with user-friendly text while keeping the same /files/upload behavior.

Made-with: Cursor
2026-04-14 07:27:50 -07:00
38c5c16824 align lesson wizard UI with lesson schema flow
Remove practice-specific fields from the lesson page and keep the flow focused on question_sets + sub_module_lessons while preserving intro video upload/import and preview behavior.

Made-with: Cursor
2026-04-14 07:25:07 -07:00
0cc2e4ce4e add files-upload URL import and intro video preview for lessons
Update the lesson wizard intro video section to support both file upload and general URL import via /files/upload, with Vimeo-safe normalization and inline video preview.

Made-with: Cursor
2026-04-14 07:08:38 -07:00
5ddfed8d28 add full-page lesson creation wizard flow
Introduce a practice-style Add New Lesson page routed from human language sub-modules, wire it to sub_module_lessons-compatible save logic, and remove the temporary lesson modal path.

Made-with: Cursor
2026-04-14 07:04:02 -07:00
177d10de15 replace lesson quick-create with structured lesson form
Add a Create Lesson dialog in the human language panel so lesson creation mirrors the practice UX while targeting sub_module_lessons data requirements.

Made-with: Cursor
2026-04-14 06:50:25 -07:00
6df388fb98 switch lesson creation to sub_module_lessons flow
Create lessons via question-set + sub-module-lesson attachment instead of video-only handling, and update new-level creation to reuse existing CEFR levels when present.

Made-with: Cursor
2026-04-14 06:39:39 -07:00
06a0daedfe refine role management cards with richer metadata
Improve role card visual hierarchy and add clearer metadata (role type, id, created date, description preview) so the list feels less sparse and more informative.

Made-with: Cursor
2026-04-14 06:27:30 -07:00
e5d1ba9b8d add category delete UI and streamline module creation loading
Add deletion controls for course categories and avoid full-page loading overlay during module/sub-module creation so button-level spinners remain the only loading indicator.

Made-with: Cursor
2026-04-14 06:22:36 -07:00
51ac1ad81d add new lesson quick action in human language panel
Show a New lesson button in the lessons tab alongside the practice action so lesson creation is directly accessible from each sub-module panel.

Made-with: Cursor
2026-04-14 06:11:37 -07:00
fe3f254dfc fix level/module removal behavior and reduce creation popups
Use module delete operations for level/module removal so removed levels disappear correctly, and suppress success toasts for module/sub-module creation to keep the flow cleaner and faster.

Made-with: Cursor
2026-04-14 05:58:51 -07:00
909a2f42bc fix second module creation in human language paths
Create additional modules/sub-modules directly under existing level and module IDs instead of re-running the lesson bootstrap flow, which prevented adding a second module.

Made-with: Cursor
2026-04-14 05:51:55 -07:00
bfbdf0fc19 add sub-category and course delete controls in human language page
Wire delete actions and confirmation dialogs for selected sub-categories and courses, backed by the new sub-category delete API route.

Made-with: Cursor
2026-04-14 05:45:35 -07:00
78111f161f fix category and course loading with duplicate names
Normalize duplicate category names in hierarchy responses and aggregate courses across same-name category IDs so Human Language and Courses tabs consistently show data.

Made-with: Cursor
2026-04-14 05:36:54 -07:00
da6754e6f5 fix human language category selection when duplicates exist
Prefer the most populated Human Language category (then latest id fallback) so sub-categories and courses render correctly when multiple same-name categories are present.

Made-with: Cursor
2026-04-14 05:31:57 -07:00
5206fb2e1a fix human language quick-create path creation
Create a real sub-category under Human Language and pass sub_category_id when creating the course so the new path renders immediately in the hierarchy panel.

Made-with: Cursor
2026-04-14 05:23:44 -07:00