On Mon, Jul 9, 2012 at 6:43 PM, Jean-Vincent Drean <[email protected]> wrote: > Hi devs, > > in order to implement XWIKI-7927, "Create an entry point for all > available applications inside the wiki" which I plan to commit before > 4.2M2 we need to agree on a strategy. > > The discussions point to a panel in the right column called > "Applications" which would list all the applications. Here are my > current thoughts about it. We can: > > 1) Rely solely on application descriptors and list all those > applications in the panel. > > - we don't have such a descriptor yet, the main reason is that what > should goes in it can be discussed over and over, even by a single > person. Thomas ? :) > - it would require an additional mechanism if we wish to be able to > edit (ordering, removal) the panel entries; and I think we will want > that > > 2) Implement a menu component that would allow to build dynamic menus. > > I think applications should be able to plug themselves in the user UI > in a manner similar to the way they plug themselves in the > administration (ConfigurableClass). > It would: > - Be generic, we could re-use this mechanism to build both the > applications panel and the other XWiki menus (top menu, content menu) > - Allow to separate the presence of an application in the wiki with > it's presence in the user UI > - Allow applications to add entries to top and content menus > > It could look like this: > > XWiki.MenuEntryClass > - id: String. Technical ID of the entry > - menuId: String. ID of the menu the entry is part of > - parentMenuEntryId: String. ID of a parent menu entry (optional). > Allows to build submenus (example: top menu). > - scope: Static list. List of actions the entry should appear for: > view/edit/admin/preview. > - position: Int. Position in the menu, we could use 0 as undefined > (bottom) and order from 1 to n. Also used to position items in > submenus. > - label: String. Label of the entry. Would be evaluated (velocity ? > wiki syntax ?) to allow i18n > - target: String. Fullname of the wiki page to point to > - enabled: Boolean. Allow to remove an entry from the menu without > actual deletion > - iconAttachment: String. Name of the attachment to use as the entry > icon (optional) > > Notes:
> - Objects from this class would be stored in preferences documents > since they'll hold configured positions and the enabled state You mean Space.WebPreferences? I suppose this configuration will be packaged with the application pages, so the (top) menu configuration will be spread across multiple (application) spaces. Thanks, Marius > - 'separator' could be a reserved entry ID > > XWiki.MenuClass > - id: String. Technical ID of the menu > > This class would be associated with a XWiki.MenuSheet and would > display the menu editor, which could be simple for a first version (no > drag & drop). > > You might have guessed I'm more in favor of 2) even if I can't > refactor the top and content menus for the moment. > > WDYT ? > > Thanks, > JV. > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

