> On 17 Oct 2018, at 10:31, Simon Urli <simon.u...@xwiki.com> wrote:
>
>
>
> On 10/17/18 10:22 AM, Vincent Massol wrote:
>> Hi Simon,
>>> On 17 Oct 2018, at 10:12, Simon Urli <simon.u...@xwiki.com> wrote:
>>>
>>> Hi Vincent and all,
>>>
>>> On 10/17/18 9:41 AM, Vincent Massol wrote:
>>>> Hi Simon,
>>>>> On 16 Oct 2018, at 17:43, Simon Urli <simon.u...@xwiki.com> wrote:
>>>>>
>>>>> Hello everyone,
>>>>>
>>>>> I'm coming back on this proposal as the work is going on, to basically
>>>>> propose to dropping the warning on copy action.
>>>>>
>>>>> I try to sum up why in the following.
>>>>>
>>>>> When implementing the proposal, I was adviced to use an event listener,
>>>>> observing the deleting event for informing the user if he were doing a
>>>>> refactoring on a document containing an XClass.
>>>>> This work is already implemented and working for Moving/Renaming pages
>>>>> (which involve deleting the old page) and of course deleting.
>>>> The nice part about the listener is that it works for all use cases:
>>>> * rename/move from the UI
>>>> * rename/move from scripts
>>>> * etc
>>>
>>> To ease the discussion I just created a design page with some screenshot of
>>> my current work. Then you can see what it looks like for the user:
>>> https://design.xwiki.org/xwiki/bin/view/Proposal/PreventUserFromXClassRefactoring
>> Ok cool so it seems you have it implemented at both the job level and the
>> listener level.
>>>
>>>> The bad parts are:
>>>> 1) right now we don’t provide a nice UI when an event is cancelled. AFAIR
>>>> we just display a stack trace in the UI which is definitely not good
>>>> enough. Are you improving this part?
>>>
>>> I reused the existing UI which does not look so bad IMO (see the screenshot
>>> in the design page).
>> This is what happens in the AntiSpam app when the event is cancelled (ie
>> when it finds some spam in the doc):
>> https://extensions.xwiki.org/xwiki/bin/download/Extension/AntiSpam%20Tool%20Application/antispam-error.png
>> As you can see it’s not really user-friendly.
>> Maybe you don’t get this because you’re running inside a job? But in this
>> case I don’t understand why you need a listener since you check for XClass
>> before you start the move/rename.
>> I must be missing something.
>
> I don't check before I start the move/rename, I'm checking after the job
> already started. I reuse exactly the same mechanism as the one used when
> refactoring a page that belongs to an extension:
> https://jira.xwiki.org/browse/XWIKI-14591.
Yes and I remember mentioning that for me it’s too late… How do you rollback
the move/rename if you find an XClass after having renamed/moved 100 pages? And
yes there’s the same problem with the other refactoring (and I already
mentioned the problem) but we need to improve at some point and not continue
doing it in a suboptimal way. We need to put ourselves in the shoes of the user.
>
>>>
>>>> 2) this is after the fact. Imagine that you’re renaming a set of pages and
>>>> among them there are several coming from an app. It’ll work fine on pages
>>>> not having an XClass (like moving the page having an XObject of that
>>>> XClass) and then failing down the line on the page having the XClass.
>>>> That’s a problem because the xobject page will be wrongly moved, since it
>>>> doesn’t make sense that it’s moved if the other pages of the app are not
>>>> moved. Generally speaking you’ll have a bad state that is not easy to
>>>> rollback.
>>>> This is why for me the check also has to be done in the move/rename UI and
>>>> verify that among the list of pages there are none with XClass and if so
>>>> prevent moving/renaming any page.
>>>> This is not in contradiction with the listener but the more important
>>>> (from a usage POV) is the check in the move/rename UI and not the listener
>>>> which is a more advanced use case.
>>>
>>> There might be a misunderstanding here: I use the listener to check the
>>> event that are fired during the rename/move. As you can see in my
>>> screenshot, I got the warning in the move/refactoring UI.
>> This listener is registered only during rename/move?
>> What happens if I write a script that moves/renames pages with XClass?
>
> Nop the listener is globally registered, so I assume it would be triggered
> when running a script too.
ok, so try this: http://playground.xwiki.org/xwiki/bin/delete/MyPage/?confirm=1
What happens?
>
>>>>> Now going back on "Copy" the page, it's another job as I cannot rely on a
>>>>> "Deleting" event. I checked quickly and I don't think I really could rely
>>>>> on other events for this: basically copying is about creating a document
>>>>> and updating its content, and I don't think we want to rely on those
>>>>> event for this mechanism.
>>>>>
>>>>> So unless you have another proposal to handle this case, I propose to
>>>>> simply drop it.
>>>>>
>>>>> Do you agree?
>>>> AFAIK if you copy a set of pages with pages having an XClass in it, then
>>>> the copied pages won’t work so we shouldn’t drop this. We should just
>>>> implement the protection at the UI level (ie the copy action), same as for
>>>> rename/move and not implement the listener part (ie not support the script
>>>> use case).
>>>
>>>
>>> I don't agree: the pages would work, but if they contain XObject they won't
>>> use the copied XClass, only the older one.
>>> So for me the issue is not exactly the same: the problematic is not about
>>> copying an XClass here, but a couple XClass + XObject. More difficult to
>>> detect and to handle IMO.
>> I still think we should handle it with a warning to explain this. It’s easy
>> for me, we just need to check for XClass and warn that any copied pages
>> having a link to this XClass will no longer point to it but will keep
>> pointing to the original XClass. Easy to do.
>
> I can handle it only on the UI side then.
Yes, I agree.
Thanks
-Vincent
>
> Simon
>> Thanks
>> -Vincent
>>>
>>> Simon
>>>> Thanks
>>>> -Vincent
>>>>>
>>>>> Simon
>>>>>
>>>>>
>>>>> On 9/26/18 10:27 AM, Simon Urli wrote:
>>>>>> Hi everyone,
>>>>>> ok trying to sum-up (I'm only talking about cases with XClass below, to
>>>>>> simplify):
>>>>>> - according to Vincent, we should completely prevent simple users to
>>>>>> copy/move/rename and only allow advanced users to do it after a warning
>>>>>> - according to Adel & Clément: preventing simple users will be useless
>>>>>> as they can easily switch the advanced feature in their account
>>>>>> - according to Marius copying a page/app is not necessarily harmful
>>>>>> compared to moving/renaming and we should manage it differently.
>>>>>> I really don't know the practice of users on the field, but it looks to
>>>>>> me that preventing simple users to do the action and telling them to ask
>>>>>> an advanced user is actually a good trade-off:
>>>>>> 1. it will warn users that they might be doing something wrong
>>>>>> 2. it's not something completely blocking: either they ask for the
>>>>>> admin/advanced user, or they know they can switch the advanced features
>>>>>> by themselves, at their own risks
>>>>>> Now maybe we can only do the warning for the "copy" action.
>>>>>> WDYT?
>>>>>> Simon
>>>>>> On 9/25/18 11:36 AM, Vincent Massol wrote:
>>>>>>> Hi Marius,
>>>>>>>
>>>>>>>> On 25 Sep 2018, at 11:34, Marius Dumitru Florea
>>>>>>>> <mariusdumitru.flo...@xwiki.com> wrote:
>>>>>>>>
>>>>>>>> On Sun, Sep 23, 2018 at 11:12 AM Vincent Massol <vinc...@massol.net>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi Simon,
>>>>>>>>>
>>>>>>>>>> On 21 Sep 2018, at 16:58, Simon Urli <simon.u...@xwiki.com> wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 9/21/18 4:53 PM, Adel Atallah wrote:
>>>>>>>>>>> +1 for the warning, but I would not forbid simple users from
>>>>>>>>>>> renaming
>>>>>>>>>>> or moving pages but instead just hide the action (from the page
>>>>>>>>>>> menu).
>>>>>>>>>>
>>>>>>>>>> OK I should have written it: by "forbid" I meant:
>>>>>>>>>>
>>>>>>>>>> 1. Hide the action from the menu
>>>>>>>>>> 2. Return an error message if the user try to access the
>>>>>>>>> renaming/moving page (using forged URL)
>>>>>>>>>>
>>>>>>>>>> So you suggest we shouldn't do 2?
>>>>>>>>>
>>>>>>>>> So +1 to prevent/warn the user when doing a move/renaming
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> AND copy pages containing XClass definitions
>>>>>>>>
>>>>>>>>
>>>>>>>> FTR, copying a single page having an XClass definition is not
>>>>>>>> dangerous (it
>>>>>>>> won't break the application that owns the page), as it only creates a
>>>>>>>> new
>>>>>>>> class definition. Copying an entire application is not dangerous
>>>>>>>> either.
>>>>>>>> The copy won't work like the original application (this justifies a
>>>>>>>> warning
>>>>>>>> as it may fail the user expectations), but the original application
>>>>>>>> will
>>>>>>>> still work. Renaming or moving an application is dangerous as it
>>>>>>>> breaks the
>>>>>>>> application.
>>>>>>>
>>>>>>> Yes you’re correct. Unless the user does a copy + delete ;)
>>>>>>>
>>>>>>> Thanks
>>>>>>> -Vincent
>>>>>>>
>>>>>>>>
>>>>>>>>> (the message should list all such pages).
>>>>>>>>>
>>>>>>>>> -1 to hide the action from the menu (if you’re talking about the
>>>>>>>>> “Move/Rename” and “Copy" actions) because:
>>>>>>>>> 1) you get to choose whether you move/rename/copy children after you
>>>>>>>>> click
>>>>>>>>> the action
>>>>>>>>> 2) even when the current page has an XClass, the user wouldn't
>>>>>>>>> understand
>>>>>>>>> why he cannot see/click on the action. It’s better that he can do it
>>>>>>>>> but
>>>>>>>>> get an error message, explaining why and telling him that to contact
>>>>>>>>> an
>>>>>>>>> advanced users if he really needs to do it.
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> -Vincent
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> On Fri, Sep 21, 2018 at 4:44 PM Simon Urli <simon.u...@xwiki.com>
>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>
>>>>>>>>>>>> users might currently break their AWM application by
>>>>>>>>>>>> renaming/moving
>>>>>>>>>>>> pages containing XClass definition.
>>>>>>>>>>>>
>>>>>>>>>>>> We need a proper refactoring operation to be able to properly do
>>>>>>>>>>>> such
>>>>>>>>>>>> move/rename. But this feature might take a while to be completely
>>>>>>>>>>>> available.
>>>>>>>>>>>>
>>>>>>>>>>>> In the meantime I propose that we prevent users from
>>>>>>>>>>>> renaming/moving
>>>>>>>>>>>> pages containing XClass.
>>>>>>>>>>>>
>>>>>>>>>>>> What I propose is the following:
>>>>>>>>>>>> - Forbid completely *simple users* to rename/move pages
>>>>>>>>>>>> containing
>>>>>>>>> XClass
>>>>>>>>>>>> - Display a warning to *advanced users* when they perform such
>>>>>>>>>>>> operation: the same kind of warning we already have when performing
>>>>>>>>> edit
>>>>>>>>>>>> on XWiki pages
>>>>>>>>>>>>
>>>>>>>>>>>> WDYT?
>>>>>>>>>>>>
>>>>>>>>>>>> Simon
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Simon Urli
>>>>>>>>>>>> Software Engineer at XWiki SAS
>>>>>>>>>>>> simon.u...@xwiki.com
>>>>>>>>>>>> More about us at http://www.xwiki.com
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Simon Urli
>>>>>>>>>> Software Engineer at XWiki SAS
>>>>>>>>>> simon.u...@xwiki.com
>>>>>>>>>> More about us at http://www.xwiki.com
>>>>>>>
>>>>>
>>>>> --
>>>>> Simon Urli
>>>>> Software Engineer at XWiki SAS
>>>>> simon.u...@xwiki.com
>>>>> More about us at http://www.xwiki.com
>>>
>>> --
>>> Simon Urli
>>> Software Engineer at XWiki SAS
>>> simon.u...@xwiki.com
>>> More about us at http://www.xwiki.com
>
> --
> Simon Urli
> Software Engineer at XWiki SAS
> simon.u...@xwiki.com
> More about us at http://www.xwiki.com