Hi Marius, See below
> On 3 May 2018, at 13:24, Marius Dumitru Florea > <[email protected]> wrote: > > On Thu, May 3, 2018 at 1:44 PM, Vincent Massol <[email protected]> wrote: > >> >> >>> On 3 May 2018, at 12:32, Marius Dumitru Florea < >> [email protected]> wrote: >>> >>> On Thu, May 3, 2018 at 11:58 AM, Ecaterina Moraru (Valica) < >>> [email protected]> wrote: >>> >>>> On Wed, May 2, 2018 at 7:02 PM, Marius Dumitru Florea < >>>> [email protected]> wrote: >>>> >>>>> Hi devs, >>>>> >>>>> Some users have complained that the navigation panel shows top level >>>> pages >>>>> that they don't need/want to navigate to, most importantly the XWiki >>>> page. >>>>> >>>>> There are multiple ways in which we can fix this. >>>>> >>>>> Solution 1: Content Page >>>>> >>>>> Create a top level "Content" page for user content and configure the >>>>> navigation panel to show the contents of this page. >>>>> >>>>> Pros: >>>>> * Namespace isolation (no conflicts between user pages and application >>>>> pages) >>>>> >>>>> Cons: >>>>> * The user may want to navigate to a top level application page >> (although >>>>> it's better to use the application panel for this instead) >>>>> * All the paths / references used to access the user content will start >>>>> with this "Content" page >>>>> >>>>> >>>> >>> >>> >>>> S1: This solution is good if users would work in isolation or in the >>>> evaluation period, but for team and multiple people sharing spaces, I >> don't >>>> see this as a valid solution. >>>> >>> >>> The Content space is for all users, shared. This is not about having a >>> separate space for each user. >>> >>> >>>> -0 >>>> >>>> >>>>> >>>>> Solution 2: Blacklisting >>>>> >>>>> Add support for specifying a list of (top level) pages to exclude from >>>> the >>>>> navigation panel. >>>>> >>>>> Pros: >>>>> * The user (top level) pages created later on will be visible in the >>>>> navigation panel >>>>> * The blacklist could be used to filter not only top level pages but >> also >>>>> any nested page from the navigation panel. >>>>> >>>>> Cons: >>>>> * The blacklist depends on the installed apps. The administrator may >> have >>>>> to update the blacklist when new applications are installed >>>>> * The blacklist depends on whether you view hidden pages or not. If you >>>>> don't view hidden pages then the blacklist probably contains 4 pages: >>>> Help, >>>>> Menu, Sandbox, XWiki (there is an application panel entry for each of >>>> them >>>>> except XWiki), which is manageable. If you view hidden pages then you >>>> need >>>>> to black list 28+ pages which is hard to manage and maintain. >>>>> * The filtering needs to happen on the database (otherwise we break the >>>>> pagination) so the database queries will become a bit more complex, >> which >>>>> could led to some performance penalty, depending on how long the >>>> blacklist >>>>> is. >>>>> >>>>> >>>> S2: I see the blacklist solution more as a hack for things in XWiki that >>>> should be fixed (have users outside XWiki space, move Sandbox into Help >>>> space, hide Help pages and provide a dedicated Help entry in the User >> menu, >>>> etc.) but we don't have the time to do it. >>>> -0 in an ideal state >>>> >>>> >>>>> >>>>> Solution 3: Whitelisting >>>>> >>>>> Add support for controlling the list of top level pages that are >>>> displayed >>>>> in the navigation panel. >>>>> >>>>> Pros: >>>>> * the whitelist doesn't depend on the installed extensions or hidden >>>> pages >>>>> so it's easier to maintain. >>>>> * the whitelist can be used to order the top level pages visible in the >>>>> navigation panel. >>>>> * the whitelist can be used to show at the top level (for navigation >>>>> purpose) a page that is not really a top level page >>>>> * No performance penalty >>>>> >>>>> Cons: >>>>> * The user (top level) pages created later on will not be visible in >> the >>>>> navigation panel. The administrator will have to add them to the >>>> whitelist >>>>> if they are useful for the navigation. Although creating top level >> pages >>>>> should happen less often than creating nested pages under the existing >>>> top >>>>> level pages. >>>>> * the whitelist controls only the first level in the tree. The next >>>> levels >>>>> will be dynamic (database queries) and with the default order. >>>>> >>>> >>>> S3: I prefer this solution, but with the ability to also display some >>>> dynamic pattern, something like: display X, Y and all children of Z, or >>>> all pages starting with A, or all pages created by group N :) (they are >>>> just ideas, I know some are very hard to implement). >>>> +1 >>>> >>>> >>>>> >>>>> >>>>> Solution 4: Exclude extension pages >>>>> >>>>> Exclude from the navigation panel the top level pages that belong to an >>>>> installed extension, allowing the administrator to make some exceptions >>>>> (e.g. keep the home page). The rationale is that if an installed >>>> extension >>>>> has a top level page then that page is most probably the application >> home >>>>> page which should be accessible from the application panel. This can be >>>>> implemented on top of solution 3 (the whitelist is basically dynamic: >> we >>>>> collect the top level pages that don't belong to an extension). >>>>> >>>>> Pros: >>>>> * It does a clear separation between applications (accessible from the >>>>> application panel) and content (accessible from the navigation panel). >>>> The >>>>> navigation panel is currently mixing application pages and (user) >> content >>>>> pages. >>>>> * The administrator doesn't need to update the navigation panel >>>>> configuration to exclude a top level application home page each time an >>>>> application is installed >>>>> * The hidden top level extension code pages are not shown even when >> "show >>>>> hidden pages" is set to true >>>>> * The user top level pages created later on appear in the tree >>>>> automatically >>>>> >>>>> Cons: >>>>> * The user won't be able to navigate easily to an application home >> page: >>>>> ** if the application panel is not shown >>>>> ** or if the application doesn't provide an application panel entry >>>>> ** or if the administrator has removed the entry from the application >>>> panel >>>>> >>>>> >>>> >>> >>> >>>> S4: I don't know if for our users this separation between apps and >> content >>>> is very clear. >>> >>> >>> I think our users (or their administrators at least) want to separate the >>> applications from the content. So I think it would be good to have >>> something dedicated to applications, the application panel, and something >>> dedicated to content, the navigation panel. >> >> > >> I’m seeing this a bit as a “hack" since the separation would exist in the >> Nav panel but not elsewhere (AllDocs, other trees such as the Rename/Copy >> ones, etc). >> > > I don't get it. The blacklist / whitelist would be applied *only* to the > navigation panel also so what you propose is not consistent either. In the end it boils down to how you view the Navigation panel I think. I view it as something that can be controlled by the user to decide what to see/not see. Deciding to see or not the apps is a choice. > >> I think if we want that separation we need to think about it more >> globally. AFAIR we had some discussions about this separation already and >> the proposed solution were different than the one proposed here. So if you >> want to go in this direction, we need to review the previous proposals and >> think more globally which IMO is going to take a lot of time. >> >> > >> I’m still thinking that we should allow users to define a white list and a >> black list and that’s all. That will cover all use cases that a generic >> platform requires. >> > > Did you read the cons? Having to manually update the blacklist whenever you > install an application is a pain. Only if you don’t want to see the app you added in the nav panel :) BTW I said that I find it ok to have this “app filter” but as one of the white list filters that can be applied. So I’m not against it if it’s configurable. > And what about the hidden pages? You mean the blacklisted pages? > Don't > you find it hard to manage a blacklist of 28+ excludes? Sure. And again I said I’m fine with with having this whitelist filter ;) > Solution 4 doesn't > require maintenance from an administrator. When you install an app it's top > level pages are excluded automatically. BTW I’m not sure that’s enough. For example several apps have subspaces such as a Data space and a Code space. This means that the Data space would be displayed and thus the app will be displayed in the nav panel, no? Another note: I’m probably not understanding something because I don’t see the point of hiding, say, ReleaseNotes.Archives when we’ll display ReleaseNotes.Data.*. It could even be seen as a regression (I’m assuming in this example that ReleaseNotes.Archives is a page of the ReleaseNotes app, which it isn’t FTM). I also fail to see how this will remove XWiki and Home from the Nav menu since they’re not apps/extensions… Last point: when you say “top level pages are excluded” you mean default extension pages, not top level pages created by the app when it’s used, right? > When you create a top level page, > it's shown automatically in the tree. Thanks -Vincent > > >> >> Then we can work on optimizing this later on when we decide how we do the >> separation between Content and apps and it’ll depend a lot on how we do it. >> >> If we don’t fo this we risk rushing into a suboptimal solution. >> >> WDYT? >> >> Thanks >> -Vincent >> >>> >>>> Also they might create their own apps and they will want >>>> those to be part of the navigation. >>> >>> >>> They would want to have an entry in the application panel like the rest >> of >>> the apps I think. >>> >>> >>>> The ideal navigation should be able to >>>> state some important pages to be shown (static aspect), order that list >> in >>>> terms of priority, and later contain and navigate to pages created by >> the >>>> user or team (dynamic aspect). Adding metadatas to pages and creating >> apps >>>> on top of content is a major feature of XWiki and I don't want to remove >>>> these pages from the navigation. >>>> -0 >>>> >>>> I prefer solution 3, but with the ability to sort and also to include >> some >>>> dynamic parts :) is this possible? >>>> >>>> Thanks, >>>> Caty >>>> >>>> >>>>> >>>>> I prefer solution 4. >>>>> >>>>> WDYT? >>>>> >>>>> Thanks, >>>>> Marius

