To render the informational message when no items match the filter criteria, we introduced a new web component called Alert. The new component can be reused in other parts of the TYPO3 codebase. Currently, such alerts are rendered by duplicating HTML code. I have also suggested that the TYPO3 Core Team unify other components/elements with similar structures and styling, such as Notification, Infobox (Callout), and Flash Message.
Help and Support From
- Andreas Kienast
- Oliver Bartsch
- Simon Schaufelberger
- Garvin Hicking.
Related Patches
Change Table Restrictions UI to Combine Read and Write Permissions
Moving forward with the planned improvements, we started to simplify the configuration of read and write permissions for database tables. Previously, these permissions were managed through two separate fields: Tables (listing) and Tables (modify). This task went through several iterations of changes and improvements before it was accepted by the core mergers. Let me describe this process in more detail.
Before our work started, a related patch had already been merged. It combined the two fields into a single palette, rendering them side-by-side. We changed it even further, to render as a combined view where it is possible to manage both read and write permissions for database tables.
Our approach was to create a dedicated render type for the select field that renders the tables_modify field and hides the tables_select field. The new view for the tables_modify field contains two columns of checkboxes. The checkboxes in the first column grants read permissions and those in the second column grants write permissions. This may sound simple, but there were three concerns:
- Should we check and disable the read permission checkbox when the corresponding write checkbox is checked?
- Should we use three checkboxes or radio buttons to represent three states of permissions (none, read, and write)?
- How do we best organize these form fields to fulfill the accessibility team's requirements?
In the meantime, other core changes were merged that also related to tables with checkboxes and their controls (Toggle all, Revert selection, etc.), so we had to adapt the code to those changes as well.
At one stage, it looked like we had the whole patch shaped up, with positive reviews and pretty much ready to merge. Then, after more reviews, the decision was made to change the implementation to use a dedicated TCA type, rather than a new render type for the select field. This would make the patch a solid basis for future changes, where table read and write permissions could be handled by a single JSON field in the database. So we modified the code again. We had a lot of feedback and code improvements from Oliver Bartsch and Ayke Halder. Finally, when we were close to the end of the quarter, we had a solid, nicely working solution.