Commit Graph

91 Commits

Author SHA1 Message Date
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
24b5a0d7ee fix human language hierarchy rendering after create
Normalize flat hierarchy rows from backend into the nested shape expected by the content-management page so new sub-categories and courses show immediately.

Made-with: Cursor
2026-04-14 05:11:34 -07:00
53c8542a6a content management integration fixes 2026-04-14 05:05:14 -07:00
7ea8e15266 create subcategory error fix 2026-04-14 04:00:04 -07:00
d308719d18 analytics page styling 2026-04-14 01:47:00 -07:00
e46e0314ed hierarchy cleanup 2026-04-10 03:20:53 -07:00
dd6fe3a9c8 new course management hierarchy integration 2026-04-10 03:05:29 -07:00
26e1b0a7d5 human language UI adjustment 2026-04-09 01:52:03 -07:00
189077e946 module and sub,odule creation fix 2026-04-09 00:39:20 -07:00
d4b1bf0813 show intro video preview in review step
Render intro video preview in Step 4 Review & publish so users can verify Vimeo/file playback before publishing instead of seeing only the URL text.

Made-with: Cursor
2026-04-08 02:18:15 -07:00
42bb74c15c handle Vimeo intro URLs without import failure
Normalize Vimeo page URLs to embed URLs for intro video fields instead of forcing /files/upload URL import that can fail behind verification gates.

Made-with: Cursor
2026-04-08 02:11:34 -07:00
cb2a6843a3 fix human language practice deletion endpoint
Use deleteQuestionSet for practice deletion in HumanLanguagePage so practice cards remove correctly in the question-set based flow.

Made-with: Cursor
2026-04-08 01:59:07 -07:00
06af3a97f2 enhance human language practice editing and collapsible hierarchy
Expand edit-practice modal to include full question-set metadata fields, raise recorder modal overlay, and add module/sub-module collapse toggles to match path and level expand/collapse behavior.

Made-with: Cursor
2026-04-08 01:53:48 -07:00
0dc7aa81ba fix practice review rendering and playable audio previews
Improve Step 4 Basic Information description rendering with formatted-text preview, and resolve media object keys so practice audio prompts are playable in Human Language question cards while showing sample answer text.

Made-with: Cursor
2026-04-08 01:33:52 -07:00
265d94999a improve intro video upload and preview in practice creation
Import intro video URLs through /files/upload, keep Vimeo-friendly URL handling, and render inline video preview for uploaded/imported links in Step 1 context.

Made-with: Cursor
2026-04-08 01:11:17 -07:00
3c864fe8ec route human language new-practice to full create flow
Use the dedicated add-practice route from Human Language so question-set creation uses the richer speaking-style multi-step UI instead of the inline create modal.

Made-with: Cursor
2026-04-08 01:00:54 -07:00
79da9014de polish human language page styling
Improve visual hierarchy across header, filters, and nested content cards to make the Human Language management view cleaner and easier to scan.

Made-with: Cursor
2026-04-08 00:47:54 -07:00
d1842579e9 media preview fix 2026-04-07 10:59:40 -07:00
4210a05ba9 feat(admin): shared practice question editor for Human Language and Add Practice
- Add PracticeQuestionEditorFields for Step-3-style MCQ/T-F/short/audio UI
- Wire Human Language question dialog to shared editor and fix dialog padding
- Refactor AddNewPracticePage step 3 to reuse the same component

Made-with: Cursor
2026-04-07 10:41:43 -07:00
cd7d330261 Align Human Language edit-question UI with create flow
Defer opening the dialog until details load; improve API mapping for true/false and types; add audio answer field; show edit loading on the row action.

Made-with: Cursor
2026-04-07 10:29:20 -07:00
53d16d9f93 Human Language page: practice/question CRUD and form validation
Support creating, editing, and deleting practices and questions inline; add client-side validation with disabled save and inline field feedback.

Made-with: Cursor
2026-04-07 10:23:14 -07:00
4166fe0807 polish human language practice detail UI
Improve question-bank presentation with clearer hierarchy, richer badges/callouts, and labeled media previews for lesson/practice content.

Made-with: Cursor
2026-04-07 09:49:28 -07:00
51a14ad975 practice questions fix 2026-04-07 09:35:14 -07:00
1a3f974e6a more UI adjustment 2026-04-07 09:31:22 -07:00
3c4b0c4cd3 more UI adjustment 2026-04-07 09:23:05 -07:00
449b595df0 more UI adjustment 2026-04-07 09:12:57 -07:00
45c385e5fa Add Human Language sub-module page with Lesson/Practice tabs.
Dedicated routes under /content/human-language/.../sub-module/:id for lesson videos and practice cards (aligned with existing sub-course styling); confirm removals via Dialog on hierarchy page; wire add-practice and questions back navigation for HL paths.

Made-with: Cursor
2026-04-07 09:01:59 -07:00
679568e51c Human Language: per-path CEFR actions and collapsible paths.
Move Add next CEFR level and detailed management into each course path header; add expand/collapse for path bodies; drop global resolved-course controls.

Made-with: Cursor
2026-04-07 08:09:59 -07:00
7f59ce4b2f Restructure Human Language hierarchy: path parent, levels nested.
Render each course path (e.g. English - Speaking) as the top card with CEFR levels, modules, and sub-modules nested inside; use per-path collapse keys for level rows.

Made-with: Cursor
2026-04-07 08:05:15 -07:00
c664c3ad67 Improve Human Language CEFR level UX and add-level targeting.
Resolve course id when filters imply a single course so Add next CEFR level works without forcing Course selection; show incremental CEFR sections; tighten remove actions; use optional chaining on module lists.

Made-with: Cursor
2026-04-07 07:47:24 -07:00
e4109a26a9 UI adjustment 2026-04-07 07:41:37 -07:00
767637a5ef Fix Human Language level actions visibility and CEFR add-level guidance.
Avoid nested button markup so remove-level controls render reliably, keep level rows visible for all CEFR levels, and add clearer guidance/labeling for incremental level creation starting from A1.

Made-with: Cursor
2026-04-07 07:29:54 -07:00
bf0dabbf05 Support audio practice creation from Human Language flow.
Add AUDIO question support to the shared practice creation page and preserve human-language navigation context so back/cancel returns to the Human Language page.

Made-with: Cursor
2026-04-07 07:22:13 -07:00
383886156c refine empty-state layout and enable first path creation
Adopt a structured empty-state layout similar to sub-category management screens, auto-create the Human Language category when missing, hide level listing until a path exists, and surface first-path creation clearly.

Made-with: Cursor
2026-04-07 07:04:24 -07:00
e6adf2850e add quick-create path on empty human language view
Allow creating the initial subcategory/course path directly from the Human Language page empty state so module and sub-module creation can start immediately.

Made-with: Cursor
2026-04-07 06:50:35 -07:00
ee2dbc5792 human language learn module management adjustment 2026-04-07 06:43:50 -07:00
547e2c7970 show module actions on empty level rows
Keep course rows visible even when module count is zero so Add Module is accessible immediately, and show a clear empty-state hint before first module creation.

Made-with: Cursor
2026-04-07 06:39:01 -07:00
6cba475145 add module and sub-module creation actions in human language UI
Provide incremental Module-N and Module-N.M creation buttons, plus direct sub-module actions to manage lesson media and practice/audio question creation.

Made-with: Cursor
2026-04-07 06:31:21 -07:00
0763b77d66 render human language hierarchy in admin page
Integrate the admin Human Language page with the new hierarchy API and present subcategory/course/level/module/sub-module tree including videos and practices.

Made-with: Cursor
2026-04-07 06:13:21 -07:00
882db5444d remove speaking tab and align human language filters
Hide Speaking from content tabs and update Human Language filters to subcategory and course-focused selection for the single descriptive language category flow.

Made-with: Cursor
2026-04-07 05:55:21 -07:00
e477595578 integrate human language page with dedicated backend API
Switch the Human Language admin page to use CEFR-filtered backend endpoints and add typed API contracts for human language lessons.

Made-with: Cursor
2026-04-07 05:40:29 -07:00
53a72bef2d human language learn management adjustment 2026-04-07 05:30:23 -07:00
840a64c4e0 remove speaking practice edit controls
Drop the practice-level edit action and modal from the Speaking page while preserving collapsible groups, searchable practice filtering, and question bulk actions.

Made-with: Cursor
2026-04-07 04:58:35 -07:00
fd0790fe7f add collapsible speaking groups and practice editing
Improve Speaking tab UX with collapsible practice sections, searchable practice filter picker, whole-practice selection controls, and a practice metadata editor wired to the backend practice update API.

Made-with: Cursor
2026-04-07 04:51:50 -07:00
e8fc835d51 add speaking list grouping, search, and bulk actions
Group audio questions under practices on the Speaking tab, add client-side search and image previews, and support multi-select bulk deletion of audio questions.

Made-with: Cursor
2026-04-07 04:37:51 -07:00
c648c6668b refine speaking practice filter to inspect audio rows
Filter speaking practice options using returned AUDIO question rows instead of total_count so unrelated practices are excluded reliably.

Made-with: Cursor
2026-04-07 04:28:22 -07:00
e7e64ad2ed filter speaking practice dropdown to audio-only sets
Limit the Speaking page practice filter options to sets that contain AUDIO questions and clear stale selected filter values when unavailable.

Made-with: Cursor
2026-04-07 04:23:19 -07:00
2fcf2b47b0 add intro video preview in speaking create form
Show a live intro video preview from the entered URL, using Vimeo embed playback when applicable and HTML5 video fallback for direct links.

Made-with: Cursor
2026-04-07 03:57:30 -07:00
85df446a66 create speaking set before question step
Ensure the speaking question set is created when moving from setup to questions, rename Set status to Status, and default new set status to PUBLISHED.

Made-with: Cursor
2026-04-07 03:53:13 -07:00