On Thu, Feb 28, 2013 at 1:01 PM, Vincent Massol <vincent(a)massol.net> wrote:
Hi,
On Feb 28, 2013, at 12:47 PM, Jean-Vincent Drean <jv(a)xwiki.com> wrote:
Hi,
in 4.x we introduced UI Extensions (UIX) and "Extension Points", it
allows applications to come and plug their bits of UI where it is
possible [1]. 5.x is a good time to provide a list of useful Extension
Points (UIXP) in our velocity templates, allowing applications to plug
themselves in, for example : the header, before the content, the
footer, etc.
To allow this I can think of 2 strategies:
== 1) Manually add UIXPs ==
Actions:
* Discuss where are the common places where applications would like to
plug (in our opinion)
* Make a lengthy list
* Vote it
* Introduce an API call (services.uix.getExtensions()) for each item in the list
* Commit it
Pros:
* We can carefully build the UI API
Cons:
* We can't think of everything
* Long process
* Overridden templates won't display the extensions
== 2) Instrument our templating mechanism with UIXPs ==
Actions:
* Modify the #template macro so that it create UIXPs before and after
the parseTemplate call. Calling #template.vm would create the
following UIXP:
** platform.template.global.before (or:
platform.template.global.above, platform.template.global.top)
** platform.template.global.after (or: platform.template.global.below,
platform.template.global.bottom)
* Commit it
Pros:
* A lot of available UIXPs
* We've worked on our template architecture for a long time, UIXP
would benefit from that
I don't think this is quite true. We've been wanting to clean up our templates
for a long time now. I'm not sure that considering it as our next API without careful
review of each template is a good thing.
There was a need to exclude non-visual templates (*vars.vm for
example), I went a bit further and worked with the following list of
excludes:
#set($uixTemplateExcludes = ['analytics.vm', 'colorThemeInit.vm',
'deprecatedVars.vm', 'editmodes.vm', 'editpanelsvars.vm',
'endpage.vm', 'frequentlyUsedDocs.vm', 'global.vm',
'htmlfooter.vm',
'htmlheader.vm', 'javascript.vm', 'layoutvars.vm',
'layoutExtraVars.vm', 'startpage.vm', 'stylesheets.vm',
'titlevars.vm', 'xwikivars.vm' ])
Here's the list of resulting UIXPs
view:
platform.template.menuview.top
platform.template.menuview.bottom
platform.template.header.top
platform.template.header.bottom
platform.template.contentmenu.top
platform.template.contentmenu.bottom
platform.template.hierarchy.top
platform.template.hierarchy.bottom
platform.template.contentview.top
platform.template.shortcuts.top
platform.template.shortcuts.bottom
platform.template.contentview.bottom
platform.template.docextra.top
platform.template.documentTags.top
platform.template.documentTags.bottom
platform.template.docextra.bottom
platform.template.endpage.top
platform.template.leftpanels.top
platform.template.leftpanels.bottom
platform.template.rightpanels.top
platform.template.rightpanels.bottom
platform.template.footer.top
platform.template.footer.bottom
platform.template.endpage.bottom
platform.template.commentsinline.top
platform.template.commentsinline.bottom
edit:
platform.template.menuview.top
platform.template.menuview.bottom
platform.template.header.top
platform.template.header.bottom
platform.template.editmenu.top
platform.template.editmenu.bottom
platform.template.hierarchy.top
platform.template.hierarchy.bottom
platform.template.editmeta.top
platform.template.editmeta.bottom
platform.template.editwiki.top
platform.template.simpleedittoolbar.top
platform.template.simpleedittoolbar.bottom
platform.template.editactions.top
platform.template.editactions.bottom
platform.template.editwiki.bottom
platform.template.editpanels.top
platform.template.editpanels.bottom
platform.template.footer.top
platform.template.footer.bottom
admin:
platform.template.menuview.top
platform.template.menuview.bottom
platform.template.header.top
platform.template.header.bottom
platform.template.leftpanels.top
platform.template.leftpanels.bottom
platform.template.rightpanels.top
platform.template.rightpanels.bottom
platform.template.footer.top
platform.template.footer.bottom
So I guess the question is, do we think we can live with those forever.