-
Notifications
You must be signed in to change notification settings - Fork 684
Customizable entry index pages #17779
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
Conversation
|
Yay! Been waiting a long time for this 🙂 Maybe the content icon should change to something else now, to reflect the full spectrum of content types? Maybe something more abstract, similar to the "categories" icon? |
|
The newspaper icon feels pretty generic to me, but open to other suggestions! |
I don't really have a problem with the newspaper and don't really see the big reason to change it – but, it'd throw my hat in the ring for something like Anyway, whatever the icon ends up being, can't wait to give this PR a spin! 🎉 |
|
Yeah, like @mmikkel says, I think the pen nib is too retro. I do prefer For a more broad symbolism I would suggest something like |
|
My main reasoning is that the icon should represent content in the classic sense, but also, equally, globals and categories. It's indeed a little difficult to encompass all these, I know! |
|
Hm, even And.. I'm stopping now, sorry 🙂 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome feature! Here are some notes from an accessibility audit on the modal updates:
- The "New page" button and "New source" disclosure menus should be moved out of the footer. Their current placement in the footer leads to unexpected focus order, since having them in the footer introduces the expectation that they would be located immediately before the "Cancel" button in the focus order. In addition, they are very distant from the columns/lists when zoomed. Recommend either:
- Moving the buttons next to the
h2elements, or - Adding buttons directly after the last
.customize-sources-item, similar to what's done in the Field Layout Editor
- Moving the buttons next to the
-
.customize-sources-itemelements should useliwrapped inol - Keyboard users can’t move the sources to another page. I recommend adding these options to the Actions disclosure menu or opening a modal (similar to the "Move to..." action in the element index footer disclosure menu)
- Instead of adding new translations for "Page actions" and "Source actions", for consistency with other action menus in the UI, you can use
aria-describedbyon the Actions button to reference an ID on each item's.labelelement - Each
.cs-sidebarelement should reference the sidebar heading viaaria-labelledby, so that each navigation landmark has a unique accessible name - When adding a new page or source, the
Craft.cp.announce()method should be called with a success message - The modal should be unusable at a minimum screen size of 320px. I recommend updating the view at small viewport widths to only show a single screen at a time, with the ability to navigate back and forth through the flow. Focus should be managed so that when the screen changes, keyboard focus is moved to an appropriate element in the new screen. (See screenshot below)
(Thanks @brianjhanson for brainstorming ideas!)
|
This is looking really nice. This may not be the right place to discuss this, and it's not clear if this is the "Unified Content View" in its final form or just a step towards it, but how do you see Custom Elements fitting into the unified view, if at all? We've a plugin that adds various Custom Elements to Craft for Event management. In Craft 4, those elements sit under Events in the sidebar, along with "Entries", "Globals", "Categories", "Assets" etc (the same as Commerce). With the move of Globals and Categories to Entries, and now "Content", those Custom Elements are beginning to feel a little out of place, after all, it's all "content". Could/should Custom Elements be able to put themselves in the mix of "Content"? Could a solution here be to hoist those new nested sources to the top level in the sidebar, allowing for a Craft 3 like setup? |
|
I've been playing with this feature (couldn't wait for it to be released 🙂) and I like it a lot! Way to go Brandon & team! 🎉 Some quick suggestions & observations: 1. Can you make the top-level "Content" label configurable? 2. Optional icons for pages. 3. Pages with only one source should not display the sidebar / sources list. 4. Pages with only a single should just display the single's edit form. 5. The default "Entries" page should not be removable, and/or we should have a way to bring back no-longer accessible non-custom sources. Feel free to ignore all of the above 🙂 |
# Conflicts: # src/web/assets/cp/dist/cp.js # src/web/assets/cp/dist/cp.js.map # src/web/assets/cp/dist/css/cp.css # src/web/assets/cp/dist/css/cp.css.map # src/web/assets/garnish/dist/garnish.js # src/web/assets/garnish/dist/garnish.js.map
# Conflicts: # src/templates/_layouts/components/global-sidebar.twig # src/translations/en/app.php # src/web/assets/cp/dist/cp.js # src/web/assets/cp/dist/cp.js.map # src/web/assets/cp/dist/css/cp.css # src/web/assets/cp/dist/css/cp.css.map
|
Anything that gets us closer to Sanity's structure tool and flexibility I'm a fan of 🎉 |
# Conflicts: # src/web/assets/cp/dist/cp.js # src/web/assets/cp/dist/cp.js.map # src/web/assets/garnish/dist/garnish.js # src/web/assets/garnish/dist/garnish.js.map
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Accessibility
- When trying to create a page with an empty page name field, nothing happens. The Page Name field should be marked required and an error should show if the user tries to submit the form with an empty Page Name field.
- The explicit
tabindexattribute can be removed from “Back to…” buttons. - Keyboard focus is dropped when removing a page from the list of Pages. I recommend moving focus to an Action menu button for the previous/next element. (Note: this should be tested in cases where (a) the page is the last one in the nav list, and (b) when there is no previous/next item in the list. In cases where the last item is removed, focus can be moved to the “New page” button.)
General UX feedback
Breadcrumbs
The breadcrumb structure for custom index pages is a bit confusing for me. For example, I created a "Blog Post" index page with only a single source:
One of the entries inside has a breadcrumb structure that I find unexpected based on the "Blog Post" index structure.
Navigation
This issue could potentially introduce WCAG violations, so depending on how we choose to resolve this, @AugustMiller may need to mention it in the Docs.
Description: Admins can create pages that conflict with pre-existing navigation items. For example, you could create a "Settings" page that conflicts with the existing top-level Settings link. They could be slightly differentiated by setting a different icon, but because icons are marked as decorative in the code, they would have identical accessible names and be impossible for AT users to differentiate.
Suggestion: Do not allow the creation of Pages with names that conflict with pre-existing navigation items, or add instructions that warn against doing so.
Drag handles for smaller viewports
Should the drag handles be removed on smaller viewports (i.e., when only a single pane shows at a time)? I accidentally dropped something into the void because there wasn't a drop target. 🤔
# Conflicts: # src/templates/_layouts/elementindex.twig # src/web/assets/cp/dist/cp.js # src/web/assets/cp/dist/cp.js.map
# Conflicts: # src/web/assets/cp/dist/cp.js # src/web/assets/cp/dist/cp.js.map
|
Aaaaand just found another small bug 🐛: Content page list items on the global sidebar get an id in the form of |
|
@thupsi Thanks for reporting those! Fixed now. |
|
Hey @brandonkelly, thanks for the fixes! I found though that now the order of the sources themselves in the sidebar can get stuck. Also, the bug that Lupe reported about the breadcrumbs is still there (don't know if it was fixed and there's been a regression), meaning that sources that belong in index pages other than the current one are visible in the breadcrumbs. |
|
@thupsi Fixed now! |
|
@thupsi That’s fixed now too :) |
|
Almost there 😅! I noticed that disabling a source results in displaying I hereby promise to not report any more bugs until after 5.9 is released 🙂 |
|
@thupsi Thanks, fixed! And please feel free to continue reporting issues if you come across any ❤️ |
I'll take you up on that then 🙂 It's a breadcrumbs bug yet again!
Here are my custom pages,
Observe the
Now I'm in an
However, when I press that That's the bug! 🐛 And now for something else...
Let us examine this humble
When I go to Only I (the mighty dev) can understand why it's like this: The For the editor though it does not make any sense: The The above situation makes me reluctant to distribute singles as appropriate between custom pages, because the breadcrumbs, for some of them, will always appear incorrect. One possible way to resolve this is described in #18090 by yours truly. Thank you for your attention to this matter! (●'◡'●) |
I’m not able to reproduce that. Can you send a database backup and your Composer files into [email protected] so we can look into it?
How exactly are you displaying a specific single as its own source? That’s not possible in the core functionality. |
Done!
It's very possible to do with core functionality 🙂: Custom source that is configured to only show entries from a single section. See screenshot:
As far as I know that's the only way to currently emulate a "Global Set". Sadly, it's a bit of a UI/UX downgrade from a real Global Set, an issue I touch upon in #17760, in my usual long-winded way! |
|
Sorry, of course 🤦🏻 |












Description
Gives entries the ability to divide their sources into multiple index pages, via the Customize Sources modal.
Each page gets its own spot in the global CP navigation.
Additionally, the
entrify/categoriesandentries/tagscommands have been updated to automatically assign newly-created sections in “Categories” and “Tags” entry index pages, respectively.Related issues