Skip to content

Redesign the Studio Advanced Settings page for course authors #3187

Description

@arbrandes

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions