Description
The Studio Advanced Settings page presents roughly 82 course settings as a flat, alphabetical list of raw JSON fields. There is no grouping, no search, and every value is edited as text regardless of its actual type, so a boolean is typed as true, an enum is typed as a bare string, and a malformed entry is only caught on save. The page is hard to navigate and easy to get wrong, especially for non-technical course authors.
This issue tracks the redesign of that page. Settings are grouped into collapsible sections by functional category (General Setting, Content Blocks, Grading, Schedule, Certificates, Enrollment Page, Pages & Resources, Special Exams, Mobile, Instructors, Legacy Discussion, Libraries, Other), with a filter bar offering search across all sections, collapse/expand all, and a toggle to hide deprecated settings. The single generic textarea is replaced by type-aware inputs: toggles for booleans, number fields, dropdowns for enums, plain text inputs for strings, and a CodeMirror editor for the settings that really are JSON. Course display overrides get dedicated UI with an enable/disable toggle and messaging for the blocked state.
The input type and the enum choices come from the type and options fields returned by the Advanced Settings API rather than being hardcoded in the frontend, so field metadata cannot drift from the platform as settings change. As a safeguard, an enum input surfaces the current value as a selectable option even when the backend no longer lists it, so saving never silently drops a value a course already has. Grouping is the only thing the frontend defines, and it is purely presentational. The Redux store, API layer, thunks, selectors, and routing are untouched.
This is deliberately scoped as a usability improvement to the page as it exists today, not the larger migration of individual settings into clearer homes across Studio. That broader relocation remains the long-term direction and can proceed incrementally on top of this work.
Frontend: #3019
Backend (adds type and options to the Advanced Settings API response): openedx/openedx-platform#38784
Roadmap issue: openedx/platform-roadmap#514
Discourse discussion: https://discuss.openedx.org/t/modernize-ui-options-for-advanced-settings/17269
Description
The Studio Advanced Settings page presents roughly 82 course settings as a flat, alphabetical list of raw JSON fields. There is no grouping, no search, and every value is edited as text regardless of its actual type, so a boolean is typed as
true, an enum is typed as a bare string, and a malformed entry is only caught on save. The page is hard to navigate and easy to get wrong, especially for non-technical course authors.This issue tracks the redesign of that page. Settings are grouped into collapsible sections by functional category (General Setting, Content Blocks, Grading, Schedule, Certificates, Enrollment Page, Pages & Resources, Special Exams, Mobile, Instructors, Legacy Discussion, Libraries, Other), with a filter bar offering search across all sections, collapse/expand all, and a toggle to hide deprecated settings. The single generic textarea is replaced by type-aware inputs: toggles for booleans, number fields, dropdowns for enums, plain text inputs for strings, and a CodeMirror editor for the settings that really are JSON. Course display overrides get dedicated UI with an enable/disable toggle and messaging for the blocked state.
The input type and the enum choices come from the
typeandoptionsfields returned by the Advanced Settings API rather than being hardcoded in the frontend, so field metadata cannot drift from the platform as settings change. As a safeguard, an enum input surfaces the current value as a selectable option even when the backend no longer lists it, so saving never silently drops a value a course already has. Grouping is the only thing the frontend defines, and it is purely presentational. The Redux store, API layer, thunks, selectors, and routing are untouched.This is deliberately scoped as a usability improvement to the page as it exists today, not the larger migration of individual settings into clearer homes across Studio. That broader relocation remains the long-term direction and can proceed incrementally on top of this work.
Frontend: #3019
Backend (adds
typeandoptionsto the Advanced Settings API response): openedx/openedx-platform#38784Roadmap issue: openedx/platform-roadmap#514
Discourse discussion: https://discuss.openedx.org/t/modernize-ui-options-for-advanced-settings/17269