-
Notifications
You must be signed in to change notification settings - Fork 127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow Header Customization via Frontend Plugin Framework #521
Comments
I'd like to clarify here that we still need to support the current forking/ This will likely impact how we need to think about
|
There might still be an opportunity for |
I think noting how headers are being used in the default enabled MFEs in tutor are using will be helpful for figuring this out: Overview (Table)DetailsAuthnNo header AccountImportimport Header from '@edx/frontend-component-header'; Use<Header /> CommunicationsImportimport { LearningHeader as Header } from '@edx/frontend-component-header'; Use<Header
className="learning-header"
courseOrg={courseMetadata.org}
courseNumber={courseMetadata.number}
courseTitle={courseMetadata.title}
/> Course AuthoringImportimport { StudioHeader } from '@edx/frontend-component-header'; Use<StudioHeader
org={org}
number={number}
title={title}
isHiddenMainMenu={isHiddenMainMenu}
mainMenuDropdowns={mainMenuDropdowns}
outlineLink={outlineLink}
searchButtonAction={meiliSearchEnabled ? openSearchModal : undefined}
/> DiscussionsImportimport { LearningHeader as Header } from '@edx/frontend-component-header'; Use{!enableInContextSidebar && (<Header courseOrg={org} courseNumber={courseNumber} courseTitle={courseTitle} />)} GradebookImportimport Header from '@edx/frontend-component-header'; Use<Header /> Learner DashboardImportant Assuming openedx/frontend-app-learner-dashboard#327 lands Importimport Header from '@edx/frontend-component-header'; Use<Header
mainMenuItems={learnerHomeHeaderMenu.mainMenu}
secondaryMenuItems={learnerHomeHeaderMenu.secondaryMenu}
userMenuItems={learnerHomeHeaderMenu.userMenu}
/> LearningImport (CourseAccessErrorPage)import { LearningHeader as Header } from '@edx/frontend-component-header'; Use (CourseAccessErrorPage)<Header /> Import (TabPage)import { LearningHeader as Header } from '@edx/frontend-component-header'; Use (TabPage)<Header courseOrg={org} courseNumber={number} courseTitle={title} /> Import (GoalUnsubscribe)import { LearningHeader as Header } from '@edx/frontend-component-header'; Use (GoalUnsubscribe)<Header showUserDropdown={false} /> ORA GradingImportimport { LearningHeader as Header } from '@edx/frontend-component-header'; Use<Header
courseTitle={courseMetadata.title}
courseNumber={courseMetadata.number}
courseOrg={courseMetadata.org}
data-testid="header"
/> ProfileImportimport Header from '@edx/frontend-component-header'; Use<Header /> |
Adding screenshots to aid in visual discussionsAuthnNo header AccountCommunicationsCourse AuthoringDiscussionsGradebookLearner DashboardImportant These screenshots are from before openedx/frontend-app-learner-dashboard#327 landed LearningCourseAccessErrorPage
TabPageGoalUnsubscribe
ORA GradingProfile |
It would be really great to simply be able to add/remove/modify links in the main navigation and user menus without having to maintain an entire header component. |
@asadali145 I'd love to hear your thoughts on this! In openedx/platform-roadmap#349 you noted wanting to be able to customize the URLs for the links in the user dropdown menu - are there any other header customizations you were hoping to be able to do without forking? |
Product Requirements defined here - please provide input in the wiki! https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4412243977/Proposal+Customizable+Header+for+LMS |
Hi @brian-smith-tcril, We are using a few customization options already provided by the header and have forked the header to add a few more customizations. Here is the complete list:
This issue sums up things nicely and identifies all our pain points. @jmakowski1123 has added all of the customizations that we look for in the proposal. I have left a comment with a couple more suggestions. CC: @pdpinch |
@brian-smith-tcril Thank you so much for all the work around the header improvements and for allowing the customizations through the configurations. I tried out header PluginSlots in Sumac, and it works great overall. It covers most cases, but we missed a case, allowing customization to display the full name instead of the username. It was mentioned in the initial proposal and I mentioned it in the last comment on this issue. Please let me know if there is a way to do that OR if it is still in progress. Thank you! CC: @pdpinch |
Thanks for reminding me about username replacement @asadali145! As to the "is there a way to do this or is it still in progress" question, my answer is "both." It is currently possible only via fully replacing the header (using a I should be able to get PRs adding those new slots out to |
It is important for site operators to be able to customize the Header. This is currently supported by having site operators fork this repository and
npm install
from their fork, however, that is a lot to ask of a site operator that just wants to make a few small changes.Now that
frontend-plugin-framework
exists, we have an opportunity to make the header customization story a better one!In this issue I would like to discuss:
npm install
strategy move to using the frontend plugin framework plugin slot strategy?LearningHeader
vsStudioHeader
vsDesktopHeader
vsMobileHeader
situation? Is there a clear path forward for consolidating those? Is consolidating those required to provide a good site operator experience for using plugin slots?PRs
LogoSlot
#528frontend-plugin-framework
slots #545frontend-plugin-framework
header slot frontend-app-learning#1504package-lock.json
frontend-app-payment#888The text was updated successfully, but these errors were encountered: