[FEATURE] UI: Introduce `Footer` sections
Hi folks,
I have picked up @chfsx's proposal for the new MainControls\Footer interface he made in #6458 and incorporated the changes / remarks we have discussed in our meeting on Discord.
The initial proposal talked about a sharing-link-, link-group-, and technical-info-section. After our discussion, we agreed about separating the permanent-link from all other sections, thus introducing a fourth section only for this link. We also talked about links which are represented as an Icon, that could e.g. be used to link social-media accounts. I therefore added this as a fifth section now as well. The factory description lists them in the order I intend to display them - please feel free to weigh in on this. Maybe @yvseiler can provide some insight here?
Let me go over the changes now:
- Section documentation: I have documented the new sections on the
MainControls\Factory::footer()description and improved the definition a bit. I was trying to be as abstract as possible, let me know if something is missing or unclear. Button\Shyrule: to enforce the usage ofLink\Standardcomponents when providing links, I have added a usage rule that restricts usingButton\Shycomponents to only be used as a trigger for opening internal dialogs. We could also check the action inside the implementation in order to be sure.Symbol\Iconaction: the action ofwithAdditionalIcon()is optional because I wanted to enable adding custom icons, such as certificate badges or sponsorships, which do not always require an underlying action.- Deprecation of
withAdditionalModalAndTrigger(): We agreed that we do not want consumers to inject modals into this component. I therefore deprecated this method. If you like, I can create a roadmap entry which describes the problem we have here. Removing the method and usages altogether seemed out of scope for this iteration. selfreturn-type: I have implemented the new methods and refactored the old ones to returnselfnow. I did not usestatichere, because there are currently no different versions of the footer (if there ever will be).- Removal of getters: I removed all getters from the
MainControls\Footerinterface, because they are only for internal use.
I am looking forward to your review!
Kind regards, @thibsy
Hi @thibsy,
please pass this back once changes are included.
Thanks!
Hi @klees,
Thx for your feedback!
- Icons: I have added them to the usage rule 4 as well.
- A11y: I have added a rule among these lines, but I left out the explanation. It does not seem relevant on the factory.
Kind regards. @thibsy
Dear @thibsy Sorry for the late feedback and thanks for your work on this. I think it's good that the icon section is separate and not a combination in a link group with icons and without icons, which could make the footer appear confusing. From my point of view, there is a limited use for such icon links to emphasise links, e.g. for social media links or to replace text for icons that have already been learned (e.g. email, telephone,...).
Regarding the placement of such an icon section (e.g. social media links): These are often more to the right/at the end of a footer, so I agree with you about adding it as a fourth/fifth section.
Best regards Yvonne
Jour Fixe, 16 SEP 2024: We highly appreciate this suggestion and accept the PR for ILIAS 10.
Hi @Amstutz and @klees, this should ready for technical review now. Once I have your go-ahead, I will amend the failing unit tests and make our pipelines happy.
This would be ready to be merged, however, there seems to be a problem with the CS Fixer:
If resolved, @klees feel free to merge.
@Amstutz Wrong PR for your comment, right? This would be for https://github.com/ILIAS-eLearning/ILIAS/pull/7045?