Hi all,

Over time more and more plugins will get installed into a WebConsole to extend 
system administration functionality. Each added plugin adds a button to the top 
navigation which leads to clutter once the number of plugins (buttons) grow. 
For example the current Apache Sling Launchpad setup of the Web Console has 21 
plugins and our commercial application even has 31 buttons (with a growing 
tendency).

So, I propose we do something about this ;-)

Lets add plugin categories: This allows us to create a tree structure of links 
to the plugins. As for GUI we replace the current button list at the top of the 
display with a tree navigation to the left. The categories are the nodes of the 
tree and the plugins are the leafs of the tree.

To implement we could do the following:

* Plugins registered as services may have a "felix.webconsole.category" 
property indicating the category. Plugins not registering this property will be 
placed in the default category
* AbstractWebConsolePlugin is ammended with a getCategory() method, which may 
overwritten by implementations. The default implementation in the 
AbstractWebConsolePlugin class returns the default category
* A default category can be configured
* Categories are simple strings such as "OSGi" or relative paths such as 
"Sling/Main". Relative paths define multi-level trees. I think in general a 
single level is probably enough. Maybe we can start with just supporting a 
single level (so just plain strings).
* Translation of categories is such that each segment in the path (or the 
complete string if there is no sub-categories) is converted into a translation 
label by prefixing with "category.". So the translation for the "OSGi" category 
would be found with the translation string "category.OSGi".
* The plugin navigation is refactored to move it to the left and render it as a 
tree structure (I assume we can use the JQuery treetable plugin).

WDYT ?

Regards
Felix

Reply via email to