> On 17 Oct 2018, at 10:41, Simon Urli <simon.u...@xwiki.com> wrote:
>
>
>
> On 10/17/18 10:37 AM, Vincent Massol wrote:
>>> 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.
>
> Actually you don't have to rollback: the listener is catching the event
> before doing the refactoring, so the user has a chance to edit the list of
> pages to refactor before the refactor begins.
Before any page in the set has been moved/renamed?
Are we running 2 jobs? One job to perform the check on all pages and another
job to perform the refactoring?
Thanks
-Vincent
>>>
>>>>>
>>>>>> 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?
>
> Coming back to you after I checked :)
>>>
>>>>>>> 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
>
> --
> Simon Urli
> Software Engineer at XWiki SAS
> simon.u...@xwiki.com
> More about us at http://www.xwiki.com