On Thu, May 3, 2018 at 1:44 PM, Vincent Massol <vincent(a)massol.net> wrote:
On 3 May 2018, at 12:32, Marius Dumitru Florea
<
mariusdumitru.florea(a)xwiki.com> wrote:
On Thu, May 3, 2018 at 11:58 AM, Ecaterina Moraru (Valica) <
valicac(a)gmail.com> wrote:
> On Wed, May 2, 2018 at 7:02 PM, Marius Dumitru Florea <
> mariusdumitru.florea(a)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.
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.
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. And what about the hidden pages? Don't
you find it hard to manage a blacklist of 28+ excludes? Solution 4 doesn't
require maintenance from an administrator. When you install an app it's top
level pages are excluded automatically. When you create a top level page,
it's shown automatically in the tree.
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