> On 26 Aug 2016, at 12:18, Eduard Moraru <[email protected]> wrote:
> 
> Hi,
> 
> On Fri, Aug 26, 2016 at 11:19 AM, Vincent Massol <[email protected]> wrote:
> 
>> Hi devs,
>> 
>> We have a known issue with users starting with XWiki and reading
>> documentation on xwiki.org and trying out stuff. Like yesterday morning
>> someone was following the SSX tutorial and couldn’t make it work. The issue
>> was that the page he was creating to put his SSX xobject in, had been
>> created as a non terminal page (our default) and the tutorial was telling
>> him to do: $xwiki.jsx.use(‘XWiki.SkinExt”)…
>> 
>> We’ll have this issue everywhere and starting with XWiki 7.4+ we’ve made
>> it very hard for users to start using the programming features of XWiki
>> because of this (without mentioning that having to suffix with “WebHome” is
>> not nice and natural).
>> 
>> So I was wondering if we could help our users with this. Here’s one idea:
>> 
>> * At the store API level (or just above in XWiki.getDocument()) do the
>> following:
>> ** try to load the passed reference as is and if it exists return it
>> ** if it doesn’t exist and the passed reference doesn’t end with
>> “WebHome", try to load the reference by adding “WebHome” to it
>> ** if it doesn’t exist, return an empty doc (isNew = true) for the
>> original reference asked (to be as backward compatible as possible)
>> 
> 
> Just a reminder that this would not be consistent with what we do in the UI
> (view mode URLs and untyped syntax link resolution), as in those cases we
> default to a new non-terminal page instead.
> 
> 
>> 
>> What this means is that if a WebHome page exists it won’t be possible to
>> create a terminal page of the same name as its space by using getDocument().
>> 
>> There won’t be problems for existing duplicates (ie a space and a terminal
>> page named the same).
>> 
>> To solve this we could either introduce a new signature for getDocument()
>> or introduce a TerminalDocumentReference class (that extends
>> DocumentReference) and that the current getDocument() would understand as
>> wanting a terminal document (we could use another name).
>> 
>> And thus we could use the new TerminalDocumentReference class for example
>> in the Create Page UI when the “terminal” checkbox is checked, thus
>> allowing users to be able to create both types for the same name.
>> 
>> I have the feeling that the small downside is really small compared to the
>> advantages it would offer. For example it would solve the issue we have now
>> with using a reference in macro. For example: {{include
>> reference=“A.B.C.Mypage”/}} would work when MyPage is a NestedPage (i.e.
>> A.B.C.MyPage.WebHome).
>> 
>> WDYT?
>> 
> 
> Not sure we should cross this line, at the current state that we are. I
> personally find it easier to explain it that the UI does this "trick", but
> the platform works with what you give it, instead of having to explain all
> the new tricks from the platform as well (which will eventually probably
> turn into "pitfalls”).

How do you explain that on xwiki.org everywhere we show an example with a 
reference?

How do you explain it in XE itself? (when a user uses the include macro and 
needs a reference for example and in countless other use cases)

Thanks
-Vincent

> Thanks,
> Eduard
> 
>> 
>> Thanks
>> -Vincent
>> 
>> PS: Related to this is http://design.xwiki.org/xwiki/
>> bin/view/Proposal/DeprecatingSpaceAndSpaceReference but that’s a lot more
>> complex to implement and not for just now. The goal of this mail is to
>> brainstorm about what we can do now.

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to