Ticket #9545 (closed PLIP: fixed)
Folder Contents interface improvements
Reported by: | dukebody | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | 4.0 |
Component: | Unknown | Version: | |
Keywords: | Cc: |
Description
http://plone.org/products/plone/roadmap/117
The Folder Contents interface needs to be smarter and more efficient to work with when ordering and manipulating items.
Proposed by
Alexander Limi
Proposal type
User interface
State
being-discussed
Motivation
There are some use cases that people resort to creating special views for that should really be supported by the default mechanisms in Plone.
The two areas where Plone is less-than-pleasant to use at the moment is when you want:
- Explicit, sticky sorting (latest item on top always, for example) in a folder
- Need to re-order items — clicking the up/down arrows quickly drives you crazy when manipulating a lot of elements
In addition there are a few convenience functions for selection and displaying what is currently selected that could be improved. Assumptions
A common complaint about this approach is "I don't want the ordering to be sticky! I just want it to work like that right now!"
This is a valid complaint, but is not a folder contents use case. I agree that we can support the non-sticky sorting in the view interface, but when you make changes in ordering in the folder contents screen, they should be persistent.
Having more intelligent ordering in the view of a folder with a table (especially when doing batch views) would be nice, but is intentionally left out of scope for this particular PLIP.
Proposal
- Ordinary folders should support sticky explicit ordering (click the size header to order by size, this stores that this particular folder should be sorted by size on display no matter how many new elements are added afterwards)
- Ordinary folders should support drag/drop reordering
- Explicit per-item ordering undoes the sticky sorting
- Selected items should be visibly selected by a color change to their background
- Shift-click acts as multiselect (click first item, shift-click last item, all items between are selected)
Implementation
Anders Pearson has already provided us with nice code to do the drag and drop support for ordering.
There is already code in the ATCT folders to support the "sticky" ordering attribute - ascending and descending ordering support for any of the fields. What remains to be implemented is mainly presentational and the integration work to make it effective.
To provide another example of how the behaviour should be: clicking on a header stores value on folder, dragging an item saves the current order - everything is persistent.
Risks
- The code needs to be well-tested in all major browsers, and we also need to provide fallback links under the ordering interface to support non-JS capable browsers and for accessibility.
- My specification of the behaviour may be a bit brief since I'm comfortable with the concept, if anything is unclear, please ask questions. :)
Progress log
Work on folder contents improvements can't really start until a decision has been made on the AJAX framework. Thus, a bundle will not be ready in time for the review bundle deadline.
Most of this has been implemented. Closing (since it's my own PLIP from ages ago ;)