And then there are pages that you want users to EDIT in inline mode, but
not in wiki, example: User Profile, Dashboard.

UserDirectory is also problematic, but it's using view mode to allow
customizations.


On Tue, Nov 7, 2017 at 4:58 PM, Eduard Moraru <[email protected]> wrote:

> The second topic of interest was the extension pages that are designed to
> be modified, like the demo AWM apps or intro blog post, homepage, etc.
>
> 1) IMO, all these pages should be separated from the code pages of an
> extension and moved to a "-content" extension. At this point, we could
> introduce a flag on a XAR extension that its pages are modifiable and all
> the above described limitations will not be enforced and, on upgrade, the
> user would be free to choose what happens to the changes (i.e. discard,
> backup or even merge).
>
> 2) The second option would be to explicitly mark (in the extension
> descriptor ?) modifiable pages inside a XAR extension, so to continue
> mixing code pages with content pages, but I would prefer we would not
> continue to do it. I guess this would be towards proposal 3) from Thomas,
> but I think I would prefer it to be done from an extension level, and not
> page level (since that would imply editing the page and might collide with
> previous decisions).
>
> Thanks,
> Eduard
>
> On Tue, Nov 7, 2017 at 4:43 PM, Eduard Moraru <[email protected]>
> wrote:
>
> > Hi,
> >
> > One option I was discussion with Caty that would cover the need to not
> > have code pages modified, while also allowing devs (including us) to work
> > and experiment is that we only add a warning/banner in edit mode on pages
> > belonging to an extension, informing the user that their changes *will be
> > discarded when upgrading* and what he could do instead, to keep them.
> >
> > So, when upgrading to a new version, we would have the following
> > directions to decide on:
> >
> > 1) We could show the list of modified extensions with options for each
> > extensions (not each document) to:
> > a) discard changes
> > b) backup changes
> > c) merge changes (I would personally not be in favor of keeping this,
> > since it will be too tempting for everyone to abuse it and we would be
> back
> > at the current state when upgrades take a very long time and are hard to
> do)
> >
> > 2) We could simply discard any modifications done on the extensions and
> > upgrade to the newest version (i.e. never do the 3-way merge)
> >
> >
> > The main idea is that you are free to do changes and experiment, but if
> > you want your work to be used in production or to survive an upgrade, you
> > need to do one of the following things:
> >
> > A) Contribute your changes so that they are included in the next version
> > of the application.
> >
> > B) Publish your changes as a fork of the application. Optionally, it
> could
> > be a light fork which only contains the modified pages and has a fixed
> > version dependency on the standard application. It will be your job to
> keep
> > your fork up to date, otherwise you will be stuck using an older version
> of
> > the application. If the application is part of the Standard Flavor and
> > because of the fixed dependency version, it will mean you will not be
> able
> > to upgrade XWiki either until you update your fork first. If you don't
> use
> > a fixed version dependency, you risk upgrading the standard application
> to
> > a version that is no longer compatible with your changes.
> >
> > Thanks,
> > Eduard
> >
> > On Tue, Nov 7, 2017 at 4:16 PM, Thomas Mortagne <
> [email protected]
> > > wrote:
> >
> >> On Tue, Nov 7, 2017 at 1:02 PM, Ecaterina Moraru (Valica)
> >> <[email protected]> wrote:
> >> > On Tue, Nov 7, 2017 at 1:00 PM, Thomas Mortagne <
> >> [email protected]>
> >> > wrote:
> >> >
> >> >> Hi devs,
> >> >>
> >> >> We started to think about https://jira.xwiki.org/browse/XWIKI-14377
> >> >> with Caty and she noticed that it might not be as simple as "all
> >> >> extensions pages are protected" because there is extensions pages
> that
> >> >> are almost always supposed to be modified: first example is
> >> >> Main.WebHome which is modified 99% of the time but another good one
> is
> >> >> Sandbox or Quicklinks panel.
> >> >>
> >> >> So what do we do about it ?
> >> >>
> >> >> I'm not fully sure yet but here are some ideas :
> >> >>
> >> >> 1) So what ? It's still extension pages and you might still have
> >> >> conflicts during next upgrade. If you want standard pages to be
> >> >> modified then generate them during install.
> >> >>
> >> >> 2) Only show the warning when a page is hidden and consider all non
> >> >> hidden pages as OK to modify
> >> >>
> >> >> 3) Explicitly mark each standard page that is OK to be modified with
> >> >> some xobject
> >> >> 3.a) EM XAR handler behave with these pages as it always did
> >> >> 3.b) EM XAR handler has a special support for these pages controlled
> >> >> by one of the xobject fields (skip the document from any merge if
> >> >> there is any customization, always overwrite any customization, etc.)
> >> >>
> >> >> WDYT ?
> >> >>
> >> >> 1) might be too harsh, generating Main.WebHome might be doable (but
> >> >> still a pain to maintain) but it's quite a pain to generate the whole
> >> >> Sandbox space (and not even talking about maintaining it...)
> >> >>
> >> >
> >> > Don't forget that some of these pages are localized.
> >>
> >> And there is that too which makes this option even more difficult to
> >> apply.
> >>
> >> >
> >> >
> >> >>
> >> >> 2) we might still want to see some application home pages in the
> >> >> search result and most of them should really not be modified
> >> >>
> >> >> 3.a) will still have the "what should I do" effect sometime for pages
> >> >> that user is allowed to modify
> >> >>
> >> >> 3.b) has my preference right now, sounds like the nicest from user
> and
> >> >> author point of view, can even be used for other use cases than edit
> >> >> protection control
> >> >>
> >> >
> >> > Not sure how hard would be technically, but instead of an exception
> >> list, I
> >> > would like an inclusion list.
> >>
> >> Since 90% of the pages coming from extensions ares stuff nobody should
> >> touch I really don't think this is a good idea.
> >>
> >> > We talked so much in the past about Application Descriptor and we also
> >> have
> >> > some patterns put in place, like placing the code inside a Code space
> >> and
> >> > mark the technical pages hidden.
> >> >
> >> > I believe all the content pages of an application should be editable
> by
> >> > user and should be ignored during an upgrade, but all the technical /
> >> code
> >> > pages should not be encouraged to edit and they will need to be
> >> upgraded on
> >> > new releases.
> >> >
> >> > Instead of marking what pages should be ignored, we should mark what
> >> pages
> >> > we should upgrade and restrict from editing, thus defining the
> >> > application's structure and descriptor.
> >> >
> >> > The only downside with this approach is that it's more work to do,
> since
> >> > there are fewer 'content' (some Homepages, some demo content) pages
> >> inside
> >> > our applications, than the technical pages.
> >> >
> >> > Also if we were to go into the application description direction we
> >> might
> >> > want to move the pages in a nested structure, enforcing the rules we
> >> have
> >> > on application structure. But this might mean a lot of work and we
> need
> >> to
> >> > be convinced of the benefits.
> >> >
> >>
> >> > Also this goes beyond editing and also we would want to warn on other
> >> > operations, like move, delete. Marking what pages are ok to Edit,
> would
> >> not
> >> > provide us information if that page is ok to move and thus won't break
> >> the
> >> > application.
> >>
> >> Actually 3.b support well all that since the whole point is to
> >> indicate what kind of page it is (the page need to exist but can be
> >> modified, the page can be deleted, the page should never be modified,
> >> etc.). Default being "nobody should touch this page in any way" since
> >> that's what we want for most pages.
> >>
> >> >
> >> > Thomas also talked about a preference in the User Profile that would
> >> allow
> >> > editing and won't display the warning, intended for developers to ease
> >> > their work. This is one aspect to consider, the other is if we want
> >> special
> >> > permissions for some users, like administrators.
> >>
> >> This is a different subject IMO.
> >>
> >> >
> >> > Thanks,
> >> > Caty
> >> >
> >> >
> >> >>
> >> >> --
> >> >> Thomas Mortagne
> >> >>
> >>
> >>
> >>
> >> --
> >> Thomas Mortagne
> >>
> >
> >
>

Reply via email to