-
Notifications
You must be signed in to change notification settings - Fork 3
Description
RFC Start Date
2025-02-27
Target Plan Accepted Date
2025-03-14
Target Transition Unblocked Date
2025-03-14
Earliest Breaking Changes Unblocked Date
2025-06-06
Earliest Open edX Named Release Without This Functionality
Ulmo - 2025-06
Forum post
Rationale
There are currently multiple ways to configure sidebar behavior in the Learning MFE:
- Using Frontend Plugin Framework slots (as of feat: wrap existing sidebars in
frontend-plugin-frameworkPluginSlots frontend-app-learning#1543, to be released in Teak) - Using the following waffle flags:
courseware.enable_navigation_sidebarcourseware.always_open_auxiliary_sidebar
There are downsides to having multiple ways to do one thing:
- Supporting 2 things requires more work from MFE maintainers than supporting 1 thing.
- Having 2 ways to configure something is more complicated for site operators than having 1 way.
There are also downsides to the waffle flags themselves:
- Supporting the waffle flags in the Learning MFE adds more complexity than the Frontend Plugin Framework slots do.
- The waffle flags do not provide as much flexibility in customization as the Frontend Plugin Framework slots do.
Removal
The following waffle flags will be removed:
courseware.enable_navigation_sidebarcourseware.always_open_auxiliary_sidebar
All of the logic surrounding those waffle flags in frontend-app-learning will be removed.
Replacement
Context: All logic surrounding the use of courseware.enable_navigation_sidebar and courseware.always_open_auxiliary_sidebar has already been wrapped in Frontend Plugin Framework slots (as of openedx/frontend-app-learning#1543, to be released in Teak). This means the "default content" of the sidebar slots is where the logic is being used.
The default content of the sidebar slots in the Learning MFE will now always behave as it does currently when courseware.enable_navigation_sidebar is true and courseware.always_open_auxiliary_sidebar is false.
Site operators that wish to replicate any behavior that differs from that default will need to be move that logic into plugins that can be used with the existing sidebar slots.
Deprecation
No response
Migration
No response
Additional Info
No response
Task List
No response
Metadata
Metadata
Labels
Type
Projects
Status