DSpace / dspace-angular

DSpace User Interface built on Angular.io
https://wiki.lyrasis.org/display/DSDOC8x/
BSD 3-Clause "New" or "Revised" License
131 stars 429 forks source link

Ability to reorder Community and Collection lists #2509

Open arvoConsultores opened 1 year ago

arvoConsultores commented 1 year ago

In the same way that authors or files of a bundle can be ordered using drag controls, for some repositories the possibility of setting a display order for communities (and subcommunities of a community and collections within communities...)

Of special interest for

A drag control (with limits to move collections to other part of the structure...) could be suitable. Something similar to author or file ordering when editing items (attached)

Clipboard01

tdonohue commented 1 year ago

I'm not against this idea, but it will require some thought on how to save this order on the backend. As you noted, currently ordering is alphabetical via Name/Title simply because it's return results in alphabetical order.

A few additional notes:

Likely, at a minimum, this would require a new database column for both community and collection to store the ordering in (which is similar to how this is managed for bitstreams in the bitstream_order column).

Ordering would also need to be aware of the parent object at all times (also similar to bitstream). Bitstream ordering is only describing the order of the bitstreams within that single Bundle and doesn't provide an ordering across all bitstreams in an Item. Similarly, it'd likely be easiest to store ordering here based on parent object. So, you could order all top level communities (parent object = Site), or order subcommunities or subcollections within a single Community.

It would become more complex though if you attempted to intermix subcommunties and subcollections in the same ordered list (e.g. Community 1, Collection 2, Community 3, Collection 4)... that design would require much more thought.

arvoConsultores commented 5 months ago

Our idea (in fact we had this feature implemented in some Dspace 5 &6 repositories) is to reorder only communities, subcommunities and collections of the same level or same hierarchy (same parent) In that way you dont have to care about permissions inheritance, etc... as you point out