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.
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