This UIXP could be useful, but I think that it is too much for my use-case. That would be a shame to try to display it in every page when we only need it in a single one!
2016-06-28 12:05 GMT+02:00 Ecaterina Moraru (Valica) <[email protected]>: > Hi, > > I propose you a third solution: > Implement the "Content Title - After" UIXP, see > http://jira.xwiki.org/browse/XWIKI-13080 > > For your particular use case it's exactly what you need. You can use CSS > then to make sure you display your content right floated and with the width > of your second administration column. > > The after title is a generic UIXP that could be used in multiple cases. > > Thanks, > Caty > > On Tue, Jun 28, 2016 at 12:45 PM, Guillaume Delhumeau < > [email protected]> wrote: > > > Hello developers. > > > > I send this e-mail because I want to talk about the concept of UIX when > it > > comes to inject content in a application that has already a mechanism to > > append content. > > > > Use-case: being able to inject some content in an administration page. > > > > Example: I would like to write an extension that display some > informations > > on the "users" section of the administration. > > See the image: > > http://jira.xwiki.org/secure/attachment/32664/32664_example.png > > > > Currently, the only solution that I have is to overwrite > > XWiki.AdminUsersSheet which generate 2 problems: > > - it's a mess to maintain when XWiki is upgraded. > > - 2 different extensions cannot inject content in the same page (one will > > overwrite the other). > > > > Generally, we implement UI extension for this kind of problems, and that > > was my first intention. > > > > In the commit > > > > > https://github.com/xwiki/xwiki-platform/commit/374903eea354db2d25b6541f8fd7106c45fae29f#diff-0 > > (on a branch), I've introduced a UIX point on the top of the right side > of > > the administration. It can display several ordered extensions. And it can > > be displayed in a particular section, or in all of them. > > > > The UI extension has the following benefits: > > - we can easily create extensions to inject content anywhere. > > - if the UIX is supposed to be injected in a particular section and if > that > > section does not actually exists (for example: if it has a part of an > > optional application that is not installed), the UIX is simply not > > displayed. > > - the mechanism is already used in a lot of places and is well-known. > > > > But in this particular context, this solution has a drawback: it creates > a > > kind of duplication with the ConfigurableClass mechanism that we use to > > display sections in the administration ( > > > > > http://extensions.xwiki.org/xwiki/bin/view/Extension/Administration+Application#HMakingyourapplicationconfigurablewithConfigurableClass > > ). > > > > So I've tried to create a ConfigurableClass object to implement my > > use-case. However, it has several issues: > > - if 2 XObjects define the same section in the administration, both of > them > > are displayed but we cannot select the order. > > - one of the 2 xobjects is automatically added in a form, which is not > what > > I want. > > > > According to the documentation: > > " codeToExecute is executed before the form is begun, however if you > have > > multiple ConfigurableClass objects in the > > same application which are also shown in the same section of the > > administration application (perhaps with different > > headers) then codeToExecute of any ConfigurableClass object after the > > first will be executed inside of the form. " > > > > There is one image to show this: > > http://jira.xwiki.org/secure/attachment/32665/32665_problems.png > > > > The mechanism has also the following limitations: > > - there is no way to inject content in ALL the sections of the > > administration. > > - if you want to inject content in a section only if that section exists, > > you cannot. Because of the presence of your object, the section will be > > displayed all the time. This is bad if you want to inject some content in > > an optional application that might be or not installed. > > > > So I'm front of 2 possible implementations: > > - introduce the UIX anyway, with all it benefits. > > - improve the ConfigurableClass mechanism, with special attention to not > > break the backward compatibility (I think about the "codeToExecute" > > parameter). > > > > The first solution have my preference. Not only because it's easier to > > implement (see my patch), but also because of its benefits. Moreover, the > > use-case is NOT to create a section in the administration. It is only > about > > INJECTING content on an existing section, and this is exactly the purpose > > of UIXs. > > > > I believe this debate exceeds this particular use-case, and that we might > > have the same question for any application that define some custom way to > > be modular. > > > > So I propose this rule: > > > > - it's OK to create a custom mechanism to *structure* a modular > > application. > > - it's OK to add some UIX points in it too when the goal is to be able to > > inject content in an existing section. > > > > But I find this definition quite imprecise. > > > > What do you think about this? > > > > For the record, this is the JIRA issue about this topic: > > http://jira.xwiki.org/browse/XWIKI-13494 > > > > Thanks, > > > > -- > > Guillaume Delhumeau ([email protected]) > > Research & Development Engineer at XWiki SAS > > Committer on the XWiki.org project > > _______________________________________________ > > devs mailing list > > [email protected] > > http://lists.xwiki.org/mailman/listinfo/devs > > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > -- Guillaume Delhumeau ([email protected]) Research & Development Engineer at XWiki SAS Committer on the XWiki.org project _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

