...
UI could default to whichever default option was chosen by the administrator - this could easily be determined by the order of storage backends in the config, or by adding another (more explicit) config option.
This seems to be the most flexible, since we could configure (for example) the buckets, disk storage, and a mongo collection.
...
- Can Clowder/Play configuration support an array of objects? I know they support maps, but have yet to see an array of objects
- Is there any concern with only uploading particular files to particular places?
- Can we somehow limit which users can upload where using permissions?
UI Mockups
Open Questions:
- Would allowing the user to choose a default location per upload-set suffice? Do we really need to allow overriding this destination at the individual level?
- Should we allow users to override the admin's default selection for the storage backend at the dataset/space level?
Possibilities:
- Add a single dropdown at the top of the page to choose destination for all uploads?
- Add a dropdown for each item? This seems tedious and not super user-friendly if (for example) you want to upload 50 files to somewhere other than the default.
- Show a vertical group for each possible storage backend, and allow dragging between groups?
1. Single Dropdown
The easiest solution would be to offer the user a single dropdown at the top of the page to select the destination for all of their uploads:
Wireframe | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
2. Multiple Dropdowns
Making only minor adjustments to the page, we could also add a dropdown beside each pending upload:
Wireframe | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Alternatively, we could restyle a bit more of the page to produce something like this:
Wireframe | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
3. Vertical Drag + Drop Groups
By adjusting the upload view to show a vertical group for each possible destination, the user could drag + drop their staged uploads to the destination of their choice before clicking "Upload":
Wireframe | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
...