> On 19 Oct 2016, at 10:27, Vincent Massol <[email protected]> wrote: > > Hi Guillaume, > >> On 19 Oct 2016, at 09:39, Guillaume Delhumeau >> <[email protected]> wrote: >> >> Hello. >> >> I'm currently working on http://jira.xwiki.org/browse/XWIKI-13075 which is >> on the roadmap for XWiki 8.4. >> >> What I propose, is to save the order of the displayed apps in the page >> "PanelsCode.ApplicationsPanelConfiguration", where the black list is >> currently saved too. >> >> So it won't add an "order" field to the UIX, and the UIX won't be touched >> when the order changes. >> >> In the Panel Application, I must provide this page, because it hold a >> "ConfigurableClass" XObject and a "DocumentSheetBinding" one. >> >> However, I agree that the Panel Application should not decide which >> applications are in the black list by default nor what is the order of the >> apps. In my opinion, in the Panel app, the configuration should be provided >> empty. >> >> Indeed, it's the role of the flavor to provide a different configuration, >> which also allows us to have different configurations according to the >> different flavors. >> >> Is it OK for you to let the flavor *overwrite* the default >> "PanelsCode.ApplicationsPanelConfiguration" page, and let in the Panel >> Application a default "PanelsCode.ApplicationsPanelConfiguration" page with >> the configurable class but no configuration? >> >> Is it OK from the EM point of view? >> >> When I was in charge of a flavor for XWikiSAS, this mechanism used to work >> but I had to commit http://jira.xwiki.org/browse/XWIKI-11777 to make it >> work on the packager plugin too. >> >> Note: the applications that are installed after and that do not have an >> "order" in the configuration will be located *after* the applications that >> have an order set in the configuration. We could decide to not show them by >> default afterwards. > > All this sounds good to me. One idea though: > * Don’t provide a PanelsCode.ApplicationsPanelConfiguration page by default.
Or provide such a page but with no config xobject. Thanks -Vincent > And at execution time, if none exist have the Panel.Applications panel create > one. In general I think that extensions should not provide Config pages and > that they should be created dynamically with default values. The reason is > that the user will configure them and if we change the default value this > generates merge conflicts. So better create the page dynamically at first > usage if it doesn’t exist. > * FTR I already do this in the Mail Sender app. > > WDYT? > > Thanks > -Vincent > >> >> Thanks, >> >> Guillaume >> >> >> 2016-10-07 9:34 GMT+02:00 Vincent Massol <[email protected]>: >> >>> Hi Sergiu, >>> >>>> On 06 Oct 2016, at 17:56, Sergiu Dumitriu <[email protected]> wrote: >>>> >>>> On 10/06/2016 11:36 AM, Vincent Massol wrote: >>>>> Hi Sergiu, >>>>> >>>>>> On 06 Oct 2016, at 17:30, Sergiu Dumitriu <[email protected]> wrote: >>>>>> >>>>>> The way I do this for another similar feature, using UIX objects, is to >>>>>> add two new parameters, "enabled" and "order". When displaying the >>>>>> extensions for a particular point, I request them ordered by the >>> "order" >>>>>> parameter, and then manually skip those for which the "enabled" >>>>>> parameter is set to "false" -- if the parameter is missing, it's >>>>>> considered enabled by default. >>>>>> >>>>>> We can define that the order should have a value between 0 and 100, and >>>>>> each extension can choose it's own relative number, as an expected >>>>>> percentage, with the actual order depending on which other extensions >>>>>> are installed and enabled, and their requested order. >>>>> >>>>> Yes but IMO this wouldn’t work here for this use case because the >>> information as to whether a given app is displayed or not should not come >>> from the UIX itself (the app doesn’t know that info and shouldn’t set >>> this). It should come from the admin or from the flavor for this case at >>> hand. >>>>> >>>>> Also I don’t think that modifying the UIX of an app by the Application >>> Panel admin UI is a good thing. The storage if this info should go in the >>> App Panel config page instead IMO. >>>>> >>>>> WDYT? >>>> >>>> True, I was just presenting another approach, which, by the way, also >>>> has limitations that are making me look for improvements. >>>> >>>> I don't agree that the application shouldn't know whether it's suitable >>>> for being displayed or not. Who knows that an extension is too technical >>>> to be displayed? Certainly not the Panels application, >>> >>> I’ve never said the the app panel should know this. This would be >>> definitely wrong. >>> >>>> and flavors can't >>>> know beforehand all the extensions that may be installed. >>> >>> I think there may be 2 different use cases. The one I was addressing >>> mostly was the **default** list of Apps that are visible in the App Panel. >>> >>> For this I still believe that the Flavor should have the configuration and >>> that the list of apps visible by **default* don’t depend on the app >>> themselves but depend on the flavor. >>> >>>> I think that >>>> the application developers are the ones that should decide if their >>>> application is to be displayed by default or not. >>> >>> I think you’re talking about edge cases where some apps really don’t want >>> to be displayed in the Panel. For me these apps should probably not even be >>> apps. An example is an app providing only a wiki macro. This app shouldn’t >>> register as an app at all. And thus it wouldn’t be displayed in the App >>> Index or App Panel. >>> >>> For all other apps, I’m personally fine that they appear in the App Panel >>> for discoverability. Others will contend that some shouldn’t appear. For >>> example the Scheduler app is an app that I had configured to appear in the >>> App panel for Admins only. Caty didn't agree for XE. But I’m sure she’d >>> have agreed for a technical flavor where the Scheduler app is key. >>> >>>> And these are just initial hints, the admins can then choose to change >>>> the default and manually hide/show/reorder applications. >>>> >>>> Now, for the fact that the parameters are stored *only* in the >>>> extension, that does indeed cause several problems: >>>> >>>> - modifying them may cause extension upgrade conflicts >>>> - only one global setting, no user or space settings >>>> - flavors can't override these settings >>>> >>>> How about this: we define a way of overriding extension parameters using >>>> custom objects: >>>> >>>> XWiki.UIExtensionParameterOverridesClass >>>> - extensionPointId >>>> - name >>>> - parameters >>>> >>>> extensionPointId and name must match an UIX, and parameters override the >>>> extension's parameters. >>>> >>>> Depending on where the object it placed, it can be valid for: >>>> - the whole wiki if placed in XWiki.XWikiPreferences >>>> - a space if placed in <Space>.WebPreferences >>>> - a certain user if placed in XWiki.<UserProfile> >>>> - any other page, and have a way of telling the uix manager that we want >>>> to apply the parameter overrides in that page >>>> - not sure what to do for flavors, is XWiki.XWikiPreferences good, or is >>>> there a flavor-specific configuration page? >>>> >>>> How does that sound? >>> >>> At first sight, sounds complex to me. I don’t think we need this right >>> now. For me we only need an App Panel-level configuration that’s taken from >>> the flavor. >>> >>> FTR I’m also open to not adding new apps by default to the App Panel (Edy >>> is also ok with this) since for me that’s the role of the App Index. Now, I >>> think the App Index could be more visible (i.e I think we need to make it >>> easier to navigate to various apps without having to open the drawer, click >>> on Apps Index and then find the app). I can think of several ways: >>> * Add the link to the App Index from “More Applications”. Maybe a “All >>> Applications” label >>> * Rework the “More Applicatios” even more so that without clicking on “All >>> Applications” (just by moving the mouse over it) it opens a lightbox >>> displaying all the apps. >>> * I’d also like to rework the Goto Page (Ctrl+G) to also add the ability >>> to navigate to apps more easily. Note that this one is not enough since >>> it’s harder to discover. >>> >>> Now I also agree that a whitelist is interesting (in addition to a >>> blacklist) and that we should offer the 2 configuration possibilities to >>> users. >>> >>> Thanks >>> -Vincent >>>> >>>>> Thanks >>>>> -Vincent >>>>> >>>>>> As a more advanced feature, in PhenoTips we also have a wizard that >>>>>> allows enabling/disabling and manually reordering extensions, by >>>>>> modifying the extension parameters. >>>>>> >>>>>> I didn't have time for this yet, but in the future I'd like to add >>>>>> support for ordering and enable/disable flags in the core UIX module, >>> so >>>>>> that extensions are automatically filtered and ordered. >>>>>> >>>>>> On 10/05/2016 05:37 AM, Vincent Massol wrote: >>>>>>> Hi devs, >>>>>>> >>>>>>> With the recent introduction of the Applications Index (see >>> http://extensions.xwiki.org/xwiki/bin/view/Extension/ >>> Application+Index+Application/) we need to agree on a few things. >>>>>>> >>>>>>> In the past we had: >>>>>>> * We wanted all new app that you installed to automatically be >>> visible in the Applications Panel >>>>>>> * This is why the Applications Panel config had a blacklist (and not >>> a white list) >>>>>>> >>>>>>> What we’ve done: >>>>>>> * We add the Applications Index >>>>>>> * We removed some apps from the Applications Panel. Namely: >>> Invitation, Panels, Scheduler, User Directory and Tour applications. this >>> was done using hardcoded blacklist xobjects in PanelsCode. >>> ApplicationsPanelConfiguration. >>>>>>> >>>>>>> The need: >>>>>>> * We need to remove this hack. It’s not normal for the Panels module >>> to know all the apps that shouldn’t be listed in it! >>>>>>> >>>>>>> Proposal: >>>>>>> * Replace the blacklist configuration of the Applications Panel by a >>> whitelist one >>>>>>> * When a new app is installed, list it in the Applications Index but >>> don’t add it to the Applications Panel >>>>>>> * If an admin wants to add this new for his users, he’ll need to add >>> it in the Admin UI for the Applications Panel. >>>>>>> >>>>>>> WDYT? >>>>>>> >>>>>>> Thanks >>>>>>> -Vincent > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

