On Thu, Sep 22, 2011 at 12:08 PM, Vincent Massol <[email protected]> wrote:
> > On Sep 22, 2011, at 11:46 AM, Guillaume Lerouge wrote: > > > Hi, > > > > On Thu, Sep 22, 2011 at 1:45 AM, Sergiu Dumitriu <[email protected]> > wrote: > > > >> On 09/21/2011 03:41 PM, Vincent Massol wrote: > >>> Hi Eddy and all, > >>> > >>> On Sep 21, 2011, at 6:43 PM, Eduard Moraru wrote: > >>> > >>>> Hi devs, > >>>> > >>>> As part for the 3.2 Roadmap, the plan for the workspaces feature was > to > >> add > >>>> some hooks into the platform that could accept a workspaces extension > if > >> an > >>>> admin decided to install it. > >>>> > >>>> Without adding these hooks, there currently isn`t any mechanism (like > >>>> Interface Extensions, but not limited to that) that allows a simple > >>>> application to modify whatever it wishes (like user profile sections, > >>>> administration sections, top menu, etc.) so I went ahead and added > some > >> code > >>>> into the platform that executes only when the workspaces extension > (wiki > >>>> pages and component/service) is installed. > >>> > >>> I don't like this too much for 2 reasons: > >>> 1) the workspaces app is not part of the platform ATM. It would be like > >> someone we don't know coding an application and sending us a patch to > modify > >> the platform code to test if his own personal app is installed or not > >>> 2) it keeps adding kludges instead of finding a real solution > >>> > >>> To help with point 1), we could vote the fact that we're ok to have > >> workspaces in the platform but that doesn't solve 2). > >>> > >>> We could look at it point by point and find a solution for each point. > >>> > >>> IMO ATM you should use jsx to add those entries so that no change is > >> required in the platform. I know some of you don't like this solution > but > >> IMO the best right now when the application is not part of the platform. > >>> > >>> Then we need to open a discussion for adding extension points for each > >> location where you need it. > >>> > >>> One solution would be to use XClasses to provide extension points. > >>> > >>> Point 1: Ability to add User tabs. There are several ways in which this > >> can be achieved. > >>> Example solution: Introduce a UserTabClass and add as many tabs as > there > >> are UseTabClass objects in the wiki > >>> > >>> Point 2: Ability to add menu entries in the top level menu. > >>> Example solution: Have a MenuEntryClass and a MenuItemEntryClass, each > >> having 2 fields: one field for the menu entry name and one for the > position. > >> The construct the menu dynamically > >>> > >>> The issue with these solutions is performance. A solution would be to > add > >> a module and have java listener listening to object changes + an API to > >> return the data. However this maybe slightly too complex. BTW it could > be > >> interesting to offer a generic script service to do this (the idea > would be > >> to offer an active cache that would refresh when an XObject is updated). > >>> > >>> Of course another solution would simply be to bite the bullet and start > >> implementing IX… ;) (I need to read again Sergiu's design doc about it > since > >> I have forgotten how Sergiu planned to implement it) > >> > >> The major blocker for me is the raw velocity parsing done on the .vm > >> templates. One step forward would be to implement support for any kind > >> of templates for generating the response, using the full power of the > >> rendering engine. But that's something for another thread. > >> > >>> Any other idea? > >> > >> Accept Edy's patches as a temporary solution, pushing for a proper > >> cleanup in the next releases. > >> > >> I don't know how urgent these changes are, we should decide together if > >> it's OK to skip these changes for 3.2 and instead work on a more > >> flexible way of integrating them in 3.3. > >> > > > > Feature-wise, the work proposed by Edy is very good. In short, it turns > XEM > > into a tool that can be used to easily manage wiki-based communities, > which > > is a feature that I see users requesting a lot these days. People I talk > > with keep asking me about social and communities in XWiki and I've seen > > several workaround implementations on projects I'm involved with already. > > > > Thus I'm very much in favor of making them available in XE 3.2, > especially > > given that Edy spent a lot of time working on them to have them ready for > > the release. > > > > I agree that his solution is far from clean, but we're still waiting for > a > > clean IX mechanism that I do not believe will be ready for 3.3. Thus this > > means that waiting for the IX mechanism to make the Workspaces feature > > available would delay it by about 6 months. I'm not in favor of this > > solution. > > Using jsx doesn't require any change in the platform. This means that XE > right now is compatible with the workspaces application. That's the point > and how extensions should be: independent of the platform (no hard links). > > So there's no issue of timeframe if Eddy is ok to use JSX. > > JSX is currently our clean solution for IX. There's no other way ATM. This > is how anyone adds UI elements cleanly to an existing XE (apart from > modifying templates/pages but that's not clean since an upgrade will > overwrite those changes or at the very minimum you'll need to do a merge). > > ATM I'm very strongly in favor of using JSX for this kind of integration > (for extensions) till we propose a better IX solution. > I'm -0 tending to -1 to advertise this as the clean way of integrating such feature. When you say this, the message I read is "you can do it if you want but your code will be awkward". Until we have IX, I prefer we accept to introduce hooks the way the "forgot username/reset password application" is built upon. At least the awkwardness is shared between the platform and the feature. Jerome > Thanks > -Vincent > > > Guillaume > > > >> Thanks > >>> -Vincent > >>> > >>>> > >>>> I`ve created http://jira.xwiki.org/browse/XWIKI-6991 with some > details > >> about > >>>> what I have done and made a pull request at > >>>> https://github.com/xwiki/xwiki-platform/pull/24 since I did not want > to > >> rush > >>>> at applying the changes without running them by you guys. > >>>> > >>>> I`ve broken the issue down to subtasks with separate commits to make > the > >>>> review easier. > >>>> > >>>> There currently is a demo server for the workspaces feature at > >>>> http://wiki30-demo.xwiki.com but I will have to update it tomorrow > with > >> the > >>>> latest version. Not much changed, you can see the visible changes in > the > >>>> specific jira subtasks (screenshots). > >>>> > >>>> The goal would be for this to make it into 3.2 so that people could > then > >>>> install (the soon to be released) workspaces extension and try it out. > >>>> > >>>> Please take some time, if possible, to look over the proposed changes > >> and > >>>> spot any problems. > >>>> > >>>> Thanks, > >>>> Eduard > >> > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > -- Jérôme Velociter Winesquare http://www.winesquare.net/ _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

