On Thu, May 3, 2018 at 12:07 PM, Vincent Massol <vinc...@massol.net> wrote:
> > > > On 3 May 2018, at 10:58, Ecaterina Moraru (Valica) <vali...@gmail.com> > wrote: > > > > On Wed, May 2, 2018 at 7:02 PM, Marius Dumitru Florea < > > mariusdumitru.flo...@xwiki.com> 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. > > -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 > > What you’re saying is that users will always want to show the full tree in > the Navigation panel and that there are no use cases where they’ll want to > hide some parts (that they have created). I believe that this use case > exists. > If they want to hide something, they have the Hidden pages mechanism. > > This is why we need to agree about the use cases first before even > discussing solutions! > > And this is why in my previous reply I’ve put what I consider to be the > use cases we need to implement. Pasting it again here: > > “ > * I believe we need to satisfy **all** the following generic use cases > (with the whitelist taking precedence for example): > ** Be able for the admin user to black list some nodes and children > ** Be able for the admin user to white list some nodes and children > “ > > So first let’s agree or disagree that these are real use cases we need to > satisfy for a generic platform such as XWiki :) > > WDYT? > > Thanks > -Vincent > > > > >> > >> 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. Also they might create their own apps and they will want > > those to be part of the navigation. 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 > >