On 27 Nov 2015 at 16:42:39, Guillaume Lerouge (guillaume(a)xwiki.com(mailto:
guillaume(a)xwiki.com)) wrote:
Hi,
> Hi Marius,
>>
>> On Fri, Nov 27, 2015 at 12:40 PM, Marius Dumitru Florea <
>> mariusdumitru.florea(a)xwiki.com> wrote:
>>
>>> On Thu, Nov 26, 2015 at 4:55 PM, Guillaume Lerouge
>>> wrote:
>>>
>>>> Hi Devs,
>>>>
>>>> after trying XE 7.4 snapshot some more, I kept asking myself what
> was the
>>>> point of even allowing terminal pages to exists. I couldn't see a
> good
>>>> reason why any given page would *need* to be terminal, whereas it
> poses
>>>> some issues:
>>>>
>>>> - There is no visual distinction between terminal pages and
nested
>>> pages
>>>> in the interface (besides "WebHome" in the URL, which would be
> cleaner
>>>> to
>>>> remove)
>>>> - We're planning to make it possible to reference a nested page
in
>>> wiki
>>>> syntax without having to write "WebHome" in it
>>>> - When creating a new page from a terminal page, you're creating
a
>>>> sibling instead of a child page,
which breaks the user
expectation
>>> (and
>>>> the
>>>> breadcrumb)
>>>>
>>>
>>>
>>>> - For AWM applications, data/content pages are created as
terminal
>>>> pages, which makes it impossible
to add further content
underneath
>>> them
>>>> in
>>>> the future (say, sub-tasks that would go as child pages of tasks)
>>>> - To my knowledge, there is no easy way to transform a terminal
page
>>>> into a nested page should the
need arise later on
>>>>
>>>
>>> See
http://lists.xwiki.org/pipermail/users/2015-November/031558.html
>>
>>
>> Thanks. I understand it's fine to have terminal pages, but are they
> really
>> *needed*?
>>
>> My feeling is that keeping this concept generates complexity for no
> obvious
>> benefit.
>
>
> What really generates complexity ATM is the difference between the UI
> (Nested Pages) and the Model (Nested Spaces). I’d like to start a
design to
> explore what options we have to remove the
concept of Spaces in the
model
> and only have pages. I have the feeling it’s
going to be tough to not
break
> everything but need to explore it to know our
options.
>
> I feel that terminal pages are already well hidden in the UI so I’m not
> sure why you think we should remove it completely from the UI. Why do
you
> fear that it’s too advanced for advanced
users?
>
2 reasons:
*1/ Practical reason:* as a simple user, if I go to a terminal page and
create a page from there, I will create a sibling to the current page
instead of a child to the current page. I will not know why it happened
like this, nor will I have the ability to change it.
Right now users can already create sibling pages when they click the Add
button on a page.
It would be easy to add a small warning when you’re on a terminal page and
you click Add to mention that this is a terminal page that cannot have
children.
Right, a warning to simple users that something different than what they
expect is going to happen for a reason that they cannot fathom to begin
with since they don't even know about terminal pages in the first place.
It's a bit like telling them:
*- XWiki: You can't create a child page from here!*
*- User: But, why?*
*- XWiki: Because!*
*- User: uh...*
It only compounds the problem.
*2/ Philosophical reason:* why keep something
useless if we could as well
remove it? That would be an application of
Ockham's razor principle if
you
will.
It’s not useless. As I mentioned this is still in the model and we still
support it. This means that we need a way for advanced users to be able to
create those pages (and using a script to do so is worse than having a nice
UI for it).
I have the feeling we're running in circles here. Just because terminal
pages still exist in the model doesn't tell me *why* they're still needed
for the future.
Do you have specific use cases in mind where it's *better* for an user (or
a script!) to create a terminal page rather than a nested page? Does it
lead to performance improvements of some sort? Does it prevent backwards
compatibility issues that would be caused by switching all pages to nested
pages? Any other *benefits* from having terminal pages?