uPortal Layout Management - Requirements
Current DLM Features
- Per node permissions
Planning
Profile Template Organization
Structure
- Name (e.g. myUW Desktop)
- Layout key (e.g. mobile)
- Structure (e.g. columns.xsl)
- Structure parameter overrides
- Theme (e.g. universality.xsl)
- Theme parameter overrides
Additional Notes and Requirements
- Multiple profiles may (or may not) map to a shared layout.
- A user should be allowed to have more than one layout.
- Profiles should only be created from templates as needed (when a user actually has changes).
- A profile selection API should exist to allow setting default profiles by user agent, person attribute, etc.
- Profile selection should be able to be overridden by some extent by end users - for example, a user selecting between mobile and desktop profiles.
- May need to indicate whether a parameter can be overridden in order to force updates
DLM Requirements
- Preserve all current features
- Remove concept of default template user
- Allow arbitrary levels of nested tabs
- Represent subscribed tabs as a node type
- Add subscribed tabs to specific spot in layout (perhaps as a sub-tab)
- Add a subscribed tab more than once and configure each instance separately
- Ability to restore removed fragments
- Merge entire layouts (merging in header and footer)
- Cascading DLM restrictions
- Make it easier to lock down an entire tab
- Maybe just in UI rather than data model
Layout Data Model
- Drop current relational row model and store as JSON clob
- Reference portlets by fname to avoid presence of synthetic keys without foreign keys
- Node fnames?
- Existing permissions probably sufficient, but worth reviewing relationship to uPortal permission system