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 - '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

