You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

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

Implementation

Storage

Basics
  • favorites will be stored in JCR (per user)
  • as users only operate on their own bookmarks 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 bookmarks under /userName/favorites/bookmarks
Grouping

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

Bookmark nodes will

  • have node name =  title of the bookmark
  • 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: nt:base (see Open Issues)

Group nodes will

  • have node name = group name
  • be of NodeType: mgnl:folder (see Open Issues)
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

Open Issues

  • NodeTypes to be used for bookmark nodes and bookmark groups?
    • favorite -> mgnl:favorite
    • groups -> mgnl:favoriteGroup
  • can Bookmark groups only contain bookmark nodes or again groups (judging from current ui it should only be nodes)?
    • no
  • when re-ordering etc. on client, how to persist
    • as in HierarchicalJcrContainer: use NodeUtil.moveNodeXXX() methods
  • simple persist the adapter structure (AbstractJcrNodeAdapter#getNode())??
  • use ui forms
    • no - too heavy

 

  • No labels