Evelina Slatineanu wrote:
> Hi Guys,
> 
>  
> 
> I am working on XE-14 (the new Administration UI)
> http://dev.xwiki.org/xwiki/bin/view/Design/ImproveWikiAdministration . 
> 
> Since the admin templates will be deleted and replaced by an AdminSheet
> which will be included by default in XwikiPreferences (wiki level) and
> WebPreferences (space level), I need to create the WebPreferences document
> for each space, attach an Xwiki.XwikiPreferences object to it and include
> the AdminSheet.
> 
>  
> 
> To do that, I need to write some java code in the core . So , here's my
> proposal:
> 
>  
> 
> -          At xwiki intitialization create all the WebPreferences for the
> currently existing spaces in the wiki (this should be done for all the
> wikis, if in a multi-wiki).
> 
> -          Then, use a notification system to create the WebPreferences for
> any new space in the wiki in one of two ways:
> 
> a)      When calling the "view" action on AnySpace.WebPreferences, check if
> it exists, if not create it, attach the obj. and include the sheet
> 
> b)      When calling the "save" action on AnySpace.AnyDoc,  check if
> AnySpace.WebPreferences exists, if not, create it etc.
> 

a) should be used, as there will probably be more save calls on ALL 
documents in a space, than view on one administration document. Plus, I 
can view the administration page before saving any document in that 
space, right? And anyway, the check is not that expensive.

> 
> I am for the second one, since the 'view' is much more often performed than
> 'save'.  
> 
> So, my questions: what should I use for the notifications? I found this
> function in the Stats notification system:
> 
>  
> 
> // Adding the rule which will allow this module to be called on each page
> view
> 
>             context.getWiki().getNotificationManager().addGeneralRule(
> 
>                 new XWikiActionRule(this, true, true));
> 
>  
> 
> But Thomas said the method above registers all types of notifs, not only on
> page view. 
> 
> There is also:
> 
>  
> 
> notify(XWikiNotificationRule rule, XWikiDocument doc, String action,
> 
>         XWikiContext context) 
> 
>  
> 
> and I can perform an if(action == "save") to use the notif system for the
> "save" action.
> 
>  
> 
> Thomas Mortagne also told me that this notif system is a little bit outdated
> and would be replaced by the observation component, but I have no idea which
> I should use.
> 

Use the new observation component. The code is in 
trunks/xwiki-platform-core/xwiki-observation, but there's no example yet 
on how to register a new listener. I can help you with that, if you want.

> 
> Also, according to the specifs in the draft above, so far I created the
> Xwiki.AdminSheet, that will display the main categories (General,
> Presentation, Rights, Users, Groups, Import/Export etc). For each section of
> this menu I created a sheet (General - > Xwiki.GeneralSheet etc.) in which I
> can personalize the display. I also created Xwiki.AdminSectionSheet which
> contains the common code to display the fields necessary from the
> Xwiki.XwikiPreferences object and this sheet will be included in the
> sections where is needed (Genera, Presentation etc.) The reason I created
> separated sheets for each section of the menu (which are fixed as number) is
> to keep the code clean and allow the possibility to display something else
> than fields from the xwiki prefs. object (for example for rights, users,
> groups, import/export).
> 

+1 for several distinct sheets. More extensible and modular.

-- 
Sergiu Dumitriu
http://purl.org/net/sergiu/

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to