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

Helpful Background Resources