silverstripe / silverstripe-elemental

Create pages in Silverstripe CMS using content blocks
http://dna.co.nz
BSD 3-Clause "New" or "Revised" License
110 stars 115 forks source link

Idea: "Advanced" edit menu option if editing inline #757

Open Hambrook opened 4 years ago

Hambrook commented 4 years ago

Can we have an element as inline editable so we can edit the title and rich text etc, then have an "Advanced" or "More" button in the dots menu to go to the dedicated edit page where we can edit relationships?

This way I can have options for buttons and other many_many relationships on my elements but still have them mostly inline editable.

I realise it'd need to save (or at least prompt to) before reloading into the full editing page, and I'm sure there are other considerations I haven't thought of.

maxime-rainville commented 4 years ago

@silverstripeux Got any views on this one?

ScopeyNZ commented 4 years ago

My 2¢: Although I like the idea in principle, if we're moving towards having one editing experience, which is 100% in-line, we would have to just remove this feature again in the future. Very minor point though, I imagine removing it again would be easy, the problem comes if users/developers learn to rely on it and then they get upset when it's removed. Focus should be on improving the in-line experience rather than making the old experience visible.

clarkepaul commented 4 years ago

I've mentioned a similar thing here https://github.com/dnadesign/silverstripe-elemental/issues/756#issuecomment-561964254 for blocks which are too complex to be inline. "Quick edit" is inline for the most common fields and we could offer a full edit if the details of the block are too complex (for example a multi-page user-defined form).

I think we should be able to accommodate the majority of blocks inline and for those that are hesitant to bring a block inline, rather than the current solution we should be able to create a better experience for detailed editing without having the admin navigating away from the page (where they lose sight of the preview and page context).

I would prefer we look at solutions like:

I like the idea in principle of providing an advanced edit link and leaving the current experience but I don't think it gets used wisely enough and provides a mixed/bad experience for users unless we put a lot more effort into defining quick-edit-items and full-edit-items (which might double the dev efforts?).

Research & feedback

I'd be really interested in seeing examples of complex blocks which are not ideal for inline editing so that we can consider them when developing the inline experience further. Screenshots would be appreciated (or email to pux@silverstripe.com).

michalkleiner commented 4 years ago

I can't produce a screenshot as I'd be blurring half of the sensitive information out, but these are the SS features we are using within the edit form of our most complex elemental block:

We obviously turned inline editing for this block off and I can't see an easy way how to squeeze all this into the narrow (both vertically and horizontally) inline edit area.

From this perspective, we'd welcome the idea of inline editing some of the important aspects and settings for the block, while having an advanced edit link opening the "standard" full-featured edit form.

robertvanlienden commented 2 years ago

Here also having lots of elements with display logic/gridfields/linkfields etc etc. Inline editing is right now pretty useless for almost all of that elements.

I think the "Advanced" edit menu option + having the option to control what fields are inline-editable is a nice work-around for all the things @michalkleiner mentioned (gridfields, tabsets, displaylogic etc..).

This way developers can decide;

robertvanlienden commented 2 years ago

@clarkepaul Below you can find some screenshots of my situation Element in the "edit form" (not inline) with DisplayLogic + LinkField image image

The same element inline; image

Here you can see, that inline;


Apart from the screenshots; Yesterday I've tried to create a "advanced edit" option inside a element , but my knowledge of GraphQL/the React elements is not enough to accomplish this by myself right now.

BUT I've managed to add a simple "advanced edit" link in this commit; https://github.com/robertvanlienden/silverstripe-elemental/commit/7add8bedae2514d5c734c6392ea729fbda530e9d

For now I'm thinking to make a separate extension to make this "advanced edit" button apprear and create some work-around in PHP. If I managed to create something, I will share a link to the package here :smile_cat:

*Update https://github.com/robertvanlienden/silverstripe-elemental-advanced-edit/ \ https://packagist.org/packages/robertvanlienden/silverstripe-elemental-advanced-edit

The module is available at packagist. For my personal situation this is working well enough for now.