On Wed, Jun 10, 2015 at 6:36 PM, Ecaterina Moraru (Valica)
<[email protected]> wrote:
> Hi,
>
> Since we discussed so many things lately and there are many technical
> constrain that we are facing, I'm going to try to get some conclusions from
> the UI perspective:
>
> First of all there was the discussion about the usability tests. It's true
> that users are confused that we provide 2 levels of hierarchy
> (wiki/space/page and parent/child). If we can switch to just one it would
> be great since it will simplify the user's mental model. Another problem
> they had was with the naming, since wiki/space/page does not ring any
> folder/page bell, even with the icon usage. That's why I like the concept
> of nodes and only one type of entities that can have children. Since we are
> on the Web, I think the most likely entity name we could use is 'page',
> similar to content-page, web-page, wiki-page (even if technically is a
> space or a document).
>
> Having only one type of entity, I agree to the fact that we should remove
> the space notion. We still have complexity, since we will have main-wiki,
> wikis*, pages* (child-pages).
>
> I also agree to remove the notion of 'WebHome' from UI. We can still use it
> technically to differentiate old spaces from pages, but for the user
> doesn't mean anything, except looking technical.
>
> Regarding the global-menu, we need to remove the wiki>space>page+actions
> display since it is not scalable. This means that the current breadcrumb
> zone will display the hierarchy. This is perfectly normal with the current
> navigation patterns used all over the Web. Note that classical breadcrumb
> do not display entity-type or actions. We shouldn't either. This means (as
> stated on http://design.xwiki.org/xwiki/bin/view/Proposal/ExtendedBreadcrumb)
> that we need to provide a Drawer + Move actions inside the content-menu.
>
> Regarding actions, since we will have just one entity-type (not sure what
> we do with the wikis) we will need to standardize the entity actions.
> Currently we provide just 'Delete' for spaces, but if we don't display
> Spaces differently and they are just nodes, this means that we will need to
> implement or normalize the available actions. No matter what type it is
> technically, the user should be able to: Add (child), Edit, Delete, View,
> Administer, Copy, Rename, Move, Export, Watch, View History, View
> Informations, View Attachments, View Comments, View Rights, View Objects,
> etc.
>

> Now, what I really don't like are the long URL. For me this is the most bad
> decision we can make. Nobody uses long URL on the web. I really like the
> way our current parent/child works, it provides the hierarchy in the UI,
> invisible in the URL (keeping it relevant to the current page). Hierarchy
> anyway should we displayed in Trees, not linear in URLs, since it's hard to
> read. People like short URL. They are easier to share, easier to scan,
> easier to understand what the content is about. We have the breadcrumbs for
> navigation, the URL is for identification.

+1, I don't like long URLs either.

Thanks,
Marius

>
> Thanks,
> Caty
>
>
>
> On Mon, Jun 8, 2015 at 11:40 AM, Eduard Moraru <[email protected]> wrote:
>
>> Hi,
>>
>> Going on the "node" architecture, where we have only documents and child
>> documents, here's something interesting that pops up as "the way to go"
>> when storing a tree structure in SQL [1]: Closure Table [2]. It seems to
>> cover pretty much all use cases, as solution 1 (Path Enumeration - what we
>> are doing with the "space" document field) is limited [3] when it comes to
>> changes in the tree structure (i.e. renaming/moving a document).
>>
>> Note: There is also the extension [4] that includes a depth column which
>> would be most useful as well. Basically, getting the list of parents of a
>> document would cost only 1 query, sorting by depth to preserve hierarchy.
>>
>> Of course, all this requires an extra table in the database for storing the
>> hierarchy relationship.
>>
>> WDYT?
>>
>> Thanks,
>> Eduard
>>
>> ----------
>> [1] http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back/48
>> [2] http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back/68
>> [3] http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back/77
>> [4] http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back/76
>>
>> On Sat, Jun 6, 2015 at 3:38 PM, [email protected] <[email protected]>
>> wrote:
>>
>> >
>> >
>> >
>> >
>> >
>> > On 6 Jun 2015 at 14:20:46, [email protected] ([email protected]
>> (mailto:
>> > [email protected])) wrote:
>> >
>> > > Hi Marius,
>> > >
>> > > On 4 Jun 2015 at 18:16:03, Marius Dumitru Florea (
>> > [email protected](mailto:[email protected]))
>> > wrote:
>> > >
>> > > > On Wed, Jun 3, 2015 at 5:10 PM, Guillaume "Louis-Marie" Delhumeau
>> > > > wrote:
>> > > > > Hello XWiki committers.
>> > > > >
>> > > > >
>> > > > > Vincent have proposed the development of nested spaces for 7.2 and
>> > some of
>> > > > > us have already agreed. But the concept of nested spaces
>> introduces a
>> > > > > problem that Denis have mentioned during some internal discussions
>> > at XWiki
>> > > > > SAS, and that I am going to report here.
>> > > > >
>> > > > >
>> > > > > From a UI perspective, differentiating pages `A.B.C.WebHome` and
>> > `A.B.C`
>> > > > > could become very difficult.
>> > > > >
>> > > > >
>> > > >
>> > > > > Moreover, we know that a lot of users do not understand the notion
>> of
>> > > > > spaces, and they are lost when you look at them during usability
>> > sessions.
>> > > >
>> > > > I'm not sure about this statement. My feeling is that many users
>> > > > understand spaces as "folders" (they make the analogy with the file
>> > > > system). Moreover, whenever we display a space in the XWiki UI we use
>> > > > the folder icon, so we encourage the users to make this analogy.
>> > >
>> > > I agree with Guillaume here. We’ve seen it on this list but more
>> > importantly Caty has done some recorded usability sessions and if I
>> > remember correctly it was clearly showing the problem. And users don’t
>> > understand that Spaces are like Folders which is why we also had this
>> > discussion on the list at one point about renaming them as Folder.
>> > >
>> > > In any case, removing one concept can only be simpler IMO. I find it
>> > simpler to have 2 concepts (Wiki, Pages: A wiki is a set of pages)
>> instead
>> > of 3 (Wiki, Spaces, Pages: a wiki is a set of spaces, which each one
>> > containing pages).
>> > >
>> > > > > The situation is even worse if you consider the notion of
>> > parent/child
>> > > > > documents, which is completely unrelated to the actual hierarchy.
>> It
>> > > > > creates confusion!
>> > > > >
>> > > > >
>> > > >
>> > > > > To fix these problems, we propose to introduce the notion of
>> "nested
>> > > > > documents", i.e. the ability to create documents inside documents.
>> > > >
>> > > > What's the difference at a *conceptual* level between the notion of
>> > > > parent/child we have right now and the notion of nested documents you
>> > > > propose? I don't see it.
>> > >
>> > > Yes it’s the same thing from a User POV. One difference is that we want
>> > a reference to contain the full path of a doc. Right now you’d need to
>> > transport the (Doc Reference + the full Breadcrumb) to represent the same
>> > thing.
>> > >
>> > > But I agree that it’s the same concept, it’s just a different
>> > implementation. That’s why I’m proposing to drop the parent/child fields
>> as
>> > we have them now since it’s just duplicating the concepts (and it’s
>> > confusing for users), and to reimplement the Breadcrumb UI using Doc
>> > References.
>> > >
>> > > Note that having the full location in the reference also allows to have
>> > URLs containing the full path which is interesting (for knowing where you
>> > are by looking at the URL: http://.../view/Space.Page1, http://
>> .../view/Space.Page2
>> > doesn’t indicate anything about the relationship between Page1 and Page2
>> > when Page1 could the parent of Page2). It’s also interesting for SEO.
>> > >
>> > > > You even use "parent" and "child" words below
>> > > > to explain the "nested" notion. The word "nested" sounds very
>> > > > technical to me. I don't know about French, but in my native language
>> > > > the translation for "nested" is not a commonly used word, unlike
>> > > > parent and child. It seems easier to me to explan to a user that a
>> > > > document can have a parent document and some child documents (the
>> > > > parent / child relationship) then to explain them that a document can
>> > > > be "nested" inside another document and can "nest" other documents
>> > > > too.
>> > >
>> > > I don’t think GL has suggested to use the word Nested anywhere in the
>> > UI… It’s just a word we use internally to describe the feature. I’m fine
>> to
>> > continue using the terminology Parent and Children.
>> > >
>> > > > > Say differently, if a page `A.B.C` exists, nothing should stop the
>> > user to
>> > > > > create the document `A.B.C.D`.
>> > > >
>> > > > You mentioned JCR on the next paragraph. Are JCR nodes identified by
>> > > > the position (path) in the tree?
>> > >
>> > > Yes. They call it Path (we call it a Document Reference).
>> > >
>> > > > I think we should make a distinction
>> > > > between the way we identify a document and the way we access that
>> > > > document.
>> > >
>> > > This means using unique ids for identifying docs (and this is what we
>> > already have in the DB except the Id is based on its path in the DB but
>> > this could be changed and this is our problem). Of course in the UI we
>> > should never display these ids.
>> > >
>> > > > I like the fact that currently when you change the parent of
>> > > > a document the document identifier (reference) stays the same.
>> > >
>> > > It’s not fully true. When we rename a doc the doc id is modified.
>> > >
>> > > What would be interesting would be the ability to have several Document
>> > References for a given doc (with one being the default probably). This is
>> > something I’ve been interested in implementing for a long time but it
>> would
>> > probably require some model changes and it’s not for XWiki 7.x IMO. We
>> > could discuss it when we talk about XWiki 8.x and the new model in
>> general.
>> > See also http://design.xwiki.org/xwiki/bin/view/Design/XWikiModel20 (on
>> > that page I had put: “Ability to have multiple references pointing to the
>> > same entity” and yes this is also supported by the JCR API).
>> >
>> > Also note the idea of "An Entity can be a pointer to another Entity (e.g
>> > of use case: rename, aliases)” from that doc. This should be not to hard
>> to
>> > implement using our current model by adding a Type field in the DB. But
>> > it’s a breaking change that would require 8.x (because current apps doing
>> > queries on the doc table would get the “pointer” Types which should be
>> > excluded, unless we add a filter to search*() APIs + the Query API).
>> >
>> > Thanks
>> > -Vincent
>> >
>> > > > > In JCR[1], there is only one concept: the "node". A node can have a
>> > > > > content, and a list of child nodes. In XWiki, documents could
>> become
>> > a kind
>> > > > > of nodes, and we do not need spaces anymore.
>> > > > >
>> > > > >
>> > > > > If we don't have space anymore, we could ask ourselves: "How the
>> > rights
>> > > > > will be propagated to the children documents? How do we distinguish
>> > rights
>> > > > > applied to the documents and the rights applied to the children?"
>> > > > >
>> > > > >
>> > > > > I think the easiest solution is to inherit the rights from the
>> > parent to
>> > > > > the children, unless an object prevent it. We already have this
>> kind
>> > of
>> > > > > mechanism with XWikiRights and XWikiGlobalRights. XWikiRights would
>> > be
>> > > > > applied for the current document, and XWikiGlobalRights for the
>> > document and
>> > > > > its children.
>> > > > >
>> > > > >
>> > > > > But changing the XWiki model is a lot of work, that we don't have
>> > time to
>> > > > > achieve for 7.2. So we propose to make it step by step.
>> > > > >
>> > > > >
>> > > > > The first step is to change the UI to hide the notion of space to
>> the
>> > > > > users. Concretely, each time a user wants to create a page called
>> > `A`, we
>> > > > > actually create the document `A.WebHome`. So any child of this page
>> > would
>> > > > > be created in the `A` space, like `A.Child`. But this child would
>> be
>> > in a
>> > > > > space too, so it would be `A.Child.WebHome` actually.
>> > > >
>> > > > I find this 'A.WebHome' thing too complex. Look at the document
>> > > > hierarchy tree
>> >
>> http://extensions.xwiki.org/xwiki/bin/view/Extension/Document+Tree+Macro#HDocumentHierarchyTree
>> > > > . We can hide the spaces already by relying on the parent / child
>> > > > relationship.
>> > >
>> > > A.WebHome is too complex which is exactly why Guillaume is sending this
>> > proposal about Nested Documents. The idea is that the doc will be seen as
>> > “A" for the user (and implemented technically as A.WebHome till we update
>> > the DB to remove the “space” field, which would make the impl much
>> simpler).
>> > >
>> > > > > Then, when we display the `A.WebHome` page, we remove all mentions
>> > to the
>> > > > > `WebHome` name. In the UI, it will just be presented as the
>> document
>> > `A`.
>> > > > > This is a good point, knowing the fact that the term `WebHome` have
>> > no
>> > > > > sense for the user, neither in English or in other languages.
>> > > > >
>> > > > >
>> > > > > Again, these changes are only for the UI. For the applications, it
>> > is the
>> > > > > developer's job to decide if the app will create documents like
>> > > > > `Document.WebHome` or basic documents just as before.
>> > > > >
>> > > > >
>> > > > > The question of what to do with AWM comes up. When a user creates
>> an
>> > entry,
>> > > > > should it be a new-kind-of-document (`AppSpace.Entry.WebHome`) or
>> an
>> > > > > old-kind-of-document (`AppSpace.Entry`)? The first option is good
>> for
>> > > > > consistency and for the new possibilities it offers, but the second
>> > is
>> > > > > better for retro-compatibility. And the question will be the same
>> > for all
>> > > > > existing applications that create pages. I believe we should answer
>> > these
>> > > > > questions on a case-by-case basis and deserve their own mail
>> threads.
>> > > > >
>> > > > >
>> > > > > This proposal also implies to change some macros, like the
>> {{space}}
>> > one,
>> > > > > and some panels. But I believe there is no blocking-point there.
>> > > > >
>> > > > >
>> > > > > Finally, after these steps are accomplished in 7.2 and polished
>> > until the
>> > > > > end of the 7.x cycle, we will refactor the XWiki model (something
>> we
>> > dream
>> > > > > about for years).
>> > > > >
>> > > > >
>> > > > > To sum up, the idea we propose is:
>> > > > >
>> > > > >
>> > > > > On the short run:
>> > > > >
>> > > > > - Hide the notion of space in the UI.
>> > > > >
>> > > > > - Hide the `WebHome` name in the UI.
>> > > > >
>> > > > > - When a user creates a page from the UI, it actually creates a
>> > space with
>> > > > > a WebHome.
>> > > > >
>> > > > > - Remove the current parent/child mechanism which is outdated (and
>> > > > > confusing) compared to the new hierarchy.
>> > > > >
>> > > > >
>> > > > > On the long run:
>> > > > >
>> > > > > - Remove the notion of space in the model, and replace it by
>> "nested
>> > > > > documents".
>> > > > >
>> > > > > - Tune the rights system to inherit rights from parents to
>> children.
>> > > > >
>> > > > >
>> > > > > Of course, we can discuss the technical details and the
>> > implementation
>> > > > > strategies. But for now, we need to know if you accept the general
>> > idea
>> > > > > (nested documents).
>> > > > >
>> > > > >
>> > > >
>> > > > > So, I hope you will like this proposal, and here is my +1.
>> > > >
>> > > > I'm not convinced. I don't see why we should drop the parent/child
>> > > > relationship in order to introduce something similar but more
>> complex.
>> > >
>> > > I’d say mostly because we need to transport the full location in the
>> Doc
>> > Reference, which allows us to do lots of things:
>> > > - display it in the URL
>> > > - no need to recompute the breadcrumb every time we need to display the
>> > hierarchy (which is the case now and it doesn’t scale)
>> > > - ability in the future to have several references for a single doc
>> > > - consistency: there’s no reason that the space would be in the
>> > reference but not the parent… ATM we have two concurrent concepts which
>> > makes it impossible for users to understand the difference between Spaces
>> > and child/parent relationships.
>> > >
>> > > Thanks
>> > > -Vincent
>> > >
>> > > > Thanks,
>> > > > Marius
>> > > >
>> > > > >
>> > > > >
>> > > > > Thanks,
>> > > > >
>> > > > > Guillaume D.
>> > > > >
>> > > > >
>> > > > >
>> > > > > [1] JCR:
>> > https://en.wikipedia.org/wiki/Content_repository_API_for_Java
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > > --
>> > > > > Guillaume Delhumeau ([email protected])
>> > >
>> >
>> > _______________________________________________
>> > devs mailing list
>> > [email protected]
>> > http://lists.xwiki.org/mailman/listinfo/devs
>> >
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to