Favorites is an in-development, one might say kind of radical feature. It is being developed out loud and in public (mostly) on feature branches. Adopters of uPortal 4.1 / Respondr will not be required to use this feature.
This feature is being developed (primarily?) by UW-Madison for use in the redesigned UW-Madison portal.
Favorites is a different way of interacting with layout.
Instead of thinking about tabs and organization of portlets within columns on tabs (a dashboard-centric view), favorites thinks about favoriting individual portlets and collections of portlets (a one-portlet-at-a-time-maximized-centric view).
Instead of adding portlets to one's layout, with Favorites, users add a portlet to their favorites.
Talk is cheap, where's the code?
Feature branch for favorites portlet: https://github.com/Jasig/uPortal/tree/UP-3896
Feature branch off of the favorites branch, implementing un-favoriting: https://github.com/Jasig/uPortal/tree/unfavorite_from_favorites_portlet , yielding this lovely pull request: https://github.com/Jasig/uPortal/pull/203
Got mockups / screenshots?
There are no images attached to this page. |
Design
Where are favorites stored?
Favorites are stored in a DLM fragment of type="favorites". Since it's a goofy non-regular type, it won't be rendered in traditional spots in the layout (it's not a tab).
Viewing
VIEW mode UI lists favorites. Users can click favorited portlets to launch that portlet by fname with MAXIMIZED window state. Users can click Collections of favorites and something not yet fully determined happens. (Maybe that lists the collected portlets so they can be individually launched in maximized window state? Maybe that launches rendering of that tab as a respondr-styled tab? Unclear.)
Editing
Edit UI lists all favorites, collections first then portlets.
Items with deleteAllowed=true (DLM) are hyperlinks to ActionUrls deleting the node. Trash glyph.
Items with deleteAllowed=false (DLM) are not hyperlinks and have tool tips explaining they are not deleteable. Lock glyph.
Edit controller checks if signaled nodeId is deletable. Adds errorMessage render parameter if needed. Adds successMessage render parameter if success.