Hi devs, As part of the process of integrating the Workspaces feature into XEM, I have identified certain problematic integration points.
== Context== For those that don't know about the Workspaces feature, here's an initial design page that can still be considered relevant with respect to the current prototype http://dev.xwiki.org/xwiki/bin/view/Design/Workspaces Technically, workspaces are subwikis that can be created by any user (not just admins), that handle only global users (don`t allow local users) and that manage 3 types of workspace/subwiki membership (1. open, 2. on request with admin validation and 3. only on invite). The main wiki contains the workspaces application and is the entry-point from where you can create/browse workspaces. Of course, since it's part of the Wiki3.0 research project ( https://wiki30.xwikisas.com ), the main focus is the user and social interactions. The current prototype ( https://github.com/xwiki-contrib/wiki30 and issue tracker http://jira.xwiki.org/jira/browse/WIKITHREEDOTO ) was built as a forked XEM distribution that comes with 2 features (workspaces and real-time editor). == Issues == For the integration of the Workspaces feature (as a XEM extension), the following problems restrict the Workspace feature from overriding certain XWiki elements while extending them: I) Main Wiki level (for the Workspace Manager Application) 1) Extend XWiki.GroupSheet and templates/getgroupmembers.vm - Add 'follow' action to the group's livetable - Add 'comment'(About) and 'tags' columns to the group's livetable 2) Extend XWiki.XWikiUserSheet - Add 'Workspaces' tab with list of joined workspaces and possibility to list their activity. 3) Extend XWiki.SearchSuggestConfig - Show Workspaces in search suggestions without affecting existing ones. 4) Extend menuview.vm - Show 'Workspace' entry in the 'Add' menu - Show 'Workspace Directory' entry in the 'Wiki' menu - Show 'Main Wiki' entry in the 'Wiki' menu II) Workspace level (for the workspace template) 1) Extend Main.Dashboard - Add new widgets(Workspace Information, Top active users, List of available Apps) without affecting the existing ones. -- There should be a clear difference between Gadgets (contain just the code and are reusable), Dashboard descriptor (for taking care of which gadgets to include and how to do the layout) and the Dashboard macro. To add some gadgets in a dashboard from an application, you should only have to override the dashboard descriptor but not also the existing gadgets. 2) Extend XWiki.AdminSheet - Add 'Workspace' sections in the 'Configuration' category - Replace the section 'Users' from 'Users & Groups' category with a 'Workspace Users' section 3) Customize templates/rightsUI.vm - Hide scope selector for Users in rights UI and use global users as default There is always the option of doing all of the above trough JSX, but that is a far from perfect solution. The general topic of these issues is that applications should be allowed to better extend XWiki and should not be confined to only the "content" section of a wiki page. In particular, almost all of these issues require their own thread and can be considered part of bigger problems, but I think it's a good start to list them here and see what discussions come out of them. The goal is to be able to install Workspace Manager on top of XEM without partially overriding certain pages or touching templates so that the upgrade of the underlying XEM is not affected. Any feedback on these issues is greatly appreciated. Thanks, Eduard _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

