Draft for beta1

second iteration...

Abstract

The UX concept for favorites contains a variety of uses cases for favorites. For beta1 we're aiming to implement the two most basic bookmark related ones. Also see the clickable prototype.

  • store a bookmark to a user's favorites under a certain name
  • navigate to a previously stored bookmark

Remember: a bookmark is just a special favorite stored under the /bookmark node.

Implementation

Storage

Basics
  • favorites will be stored in JCR (per user)
  • as users only operate on their own favorites we drop the user from the API but internally get it from the MgnlContext
  • there's other user related information to be stored later so we
    • create workspace profiles
    • store favorites under /userName/favorites
    • store bookmarks under /userName/favorites/bookmarks
Grouping

Favorites can be grouped in the ui - that's why we go for favorite nodes and favorite group nodes

Bookmark nodes will

  • have node name =  title of the favorite
  • have url stored String property
  • have icon stored String property
  • be stored directly under the bookmark root (ungrouped) or under a bookmark group node
  • be of NodeType: mgnl:favorite

Group nodes will

  • have node name = group name
  • be of NodeType: mgnl:favoriteGroup
BookmarkStore
  • getBookmarkRoot() -> returns root node hosting bookmark for current user

Packaging

  • don't model a proper type - use normal jcr nodes
  • ui will go into admincentral / shell apps
  • make sure to use MVP pattern

Assumptions

  • favoriteGroups can only contain favorites - no other favoriteGroups
    • that's how we'll implement it now, but we won't restrict on a jcr level

Visual design

Questions

  • store hostnam+port/web-app-context as well - might get outdated soon
    • alternatively we could strip that before storing and re-add when navigating there

 

  • No labels