- Issue created by @ressa
- First commit to issue fork.
- Merge request !6766Issue #3422333: Enable/Disable View within View Edit page โ (Open) created by govind_giri_goswami
- Status changed to Needs review
10 months ago 5:53am 26 February 2024 - ๐ฎ๐ณIndia govind_giri_goswami
add an "Enable View" or "Disable View" option into the edit view dropdown menu
- Assigned to pooja saraah
- ๐ฎ๐ณIndia pooja saraah Chennai
Applied and reviewed tha MR, the code which resolve the issue.
It does provide an "Enable View" or "Disable View" option into the edit view dropdown menu.
Attached Before and After screenshot. - Issue was unassigned.
- Status changed to Needs work
10 months ago 1:06pm 26 February 2024 - ๐ฉ๐ฐDenmark ressa Copenhagen
Thanks, but only one option should be there: "Disable view" when it's enabled, and "Enable view" when it's disabled. Also "View" should be "view".
- Only show the relevant option
- Don't capitalize "view"
@pooja saraah: Did you check if the options can actually disable or enable a view?
- ๐จ๐ฆCanada SKAUGHT
- we should only be showing Enabled/disabled if the view IS one or the other.
#4. I was facing some trouble with ''entity.view.enable' and the ajax return to Main view list. is this addresses? i dont' think i see a code change for it...
- Merge request !6793Issue #3422333 by SKAUGHT. Enable/Disable ViewUI ajax dropbutton โ (Open) created by SKAUGHT
- Status changed to Needs review
10 months ago 6:07pm 27 February 2024 - Status changed to Needs work
10 months ago 6:33pm 27 February 2024 - ๐ฉ๐ชGermany rkoller Nรผrnberg, Germany
thanks for the MR! I've manually tested after applying MR6793 on an install of Drupal 11.x-dev (with the umami install profile). I've tested with Safari 17.3.1 on macOS Sonoma. I've noticed one detail. If I try to enable either archive or glossary on
/en/admin/structure/views
(the already existing functionality) things work flawless. while when i try to enable for example the glossary view on/en/admin/structure/views/view/glossary
with theenable view
option i run into an error pointing me to the console (but the view gets enabled anyway):[Error] Failed to load resource: the server responded with a status of 500 () (page_1, line 0) [Error] AjaxError: An AJAX HTTP error occurred. HTTP Result Code: 500 Debugging information follows. Path: /en/admin/structure/views/view/glossary/preview/page_1 StatusText: error ResponseText: The website encountered an unexpected error. Try again later.Symfony\Component\Routing\Exception\RouteNotFoundException: Route "view.glossary.page_1" does not exist. in Drupal\Core\Routing\RouteProvider->getRouteByName() (line 208 of core/lib/Drupal/Core/Routing/RouteProvider.php). Drupal\views\ViewExecutable->getUrl(Array) (Line: 398) template_preprocess_views_view_summary_unformatted(Array, 'views_view_summary_unformatted', Array) call_user_func_array('template_preprocess_views_view_summary_unformatted', Array) (Line: 261) Drupal\Core\Theme\ThemeManager->render('views_view_summary_unformatted', Array) (Line: 480) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240) Drupal\Core\Render\Renderer->render(Array) (Line: 475) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 110) __TwigTemplate_ed14baa62805cdaa1c9b79cadc693860->doDisplay(Array, Array) (Line: 394) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367) Twig\Template->display(Array) (Line: 379) Twig\Template->render(Array) (Line: 38) Twig\TemplateWrapper->render(Array) (Line: 39) twig_render_template('core/themes/claro/templates/classy/views/views-view.html.twig', Array) (Line: 348) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 480) Drupal\Core\Render\Renderer->doRender(Array) (Line: 493) Drupal\Core\Render\Renderer->doRender(Array) (Line: 493) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240) Drupal\Core\Render\Renderer->render(Array) (Line: 475) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 53) __TwigTemplate_1f3ccb4a516dd0dad521be8e40f48fdb->doDisplay(Array, Array) (Line: 394) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367) Twig\Template->display(Array) (Line: 379) Twig\Template->render(Array) (Line: 38) Twig\TemplateWrapper->render(Array) (Line: 39) twig_render_template('core/modules/views_ui/templates/views-ui-view-preview-section.html.twig', Array) (Line: 348) Drupal\Core\Theme\ThemeManager->render('views_ui_view_preview_section', Array) (Line: 480) Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240) Drupal\Core\Render\Renderer->render(Array) (Line: 475) Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 96) __TwigTemplate_ed14baa62805cdaa1c9b79cadc693860->doDisplay(Array, Array) (Line: 394) Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367) Twig\Template->display(Array) (Line: 379) Twig\Template->render(Array) (Line: 38) Twig\TemplateWrapper->render(Array) (Line: 39) twig_render_template('core/themes/claro/templates/classy/views/views-view.html.twig', Array) (Line: 348) Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 480) Drupal\Core\Render\Renderer->doRender(Array) (Line: 493) Drupal\Core\Render\Renderer->doRender(Array) (Line: 493) Drupal\Core\Render\Renderer->doRender(Array) (Line: 493) Drupal\Core\Render\Renderer->doRender(Array, 1) (Line: 240) Drupal\Core\Render\Renderer->render(Array, 1) (Line: 153) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 627) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 152) Drupal\Core\Render\Renderer->renderRoot(Array) (Line: 66) Drupal\Core\Render\MainContent\AjaxRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Line: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 60) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28) Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32) Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 106) Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36) Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 736) Drupal\Core\DrupalKernel->handle(Object) (Line: 19) (anonymous function) (js_llzDdm887hr8N94dvyD2d6_aJP5C148mb1hAF2kj1yM.js:250:13550) complete (js_llzDdm887hr8N94dvyD2d6_aJP5C148mb1hAF2kj1yM.js:250:6041) (anonymous function) (js_llzDdm887hr8N94dvyD2d6_aJP5C148mb1hAF2kj1yM.js:287:3569) c (js_llzDdm887hr8N94dvyD2d6_aJP5C148mb1hAF2kj1yM.js:3:25310) fireWith (js_llzDdm887hr8N94dvyD2d6_aJP5C148mb1hAF2kj1yM.js:3:26055) l (js_llzDdm887hr8N94dvyD2d6_aJP5C148mb1hAF2kj1yM.js:3:77919) (anonymous function) (js_llzDdm887hr8N94dvyD2d6_aJP5C148mb1hAF2kj1yM.js:3:80267)
if i disable the view afterwards via the disable view option there is no error. if i try again to reenable the view the same error takes place again. it is reproducible consistently.
- ๐ฉ๐ชGermany rkoller Nรผrnberg, Germany
oh and i've noticed one moredetail. if you are on
/en/admin/structure/views
and you have archive and glossary in the disabled section and you click on edit the archive view, the h1 isn't showingArchive (Content) disabled
but justArchive (Content)
. - ๐จ๐ฆCanada SKAUGHT
@rkoller
#15
i was testing in Stardard profile. have just re-installed with Umami -- but can not recreate that php error. with claro (theme) in both profiles and another 'normal' drupal frontend theme. again, without an error like yours..
i hope you tested with the second push to that branch. i'm sorry if not!#16.
I can add the into the first page load too. i'll update the summary for this. - Status changed to Needs review
10 months ago 7:09pm 27 February 2024 - ๐จ๐ฆCanada SKAUGHT
SKAUGHT โ changed the visibility of the branch 3422333-enabledisable-view-within to hidden.
- ๐จ๐ฆCanada SKAUGHT
SKAUGHT โ changed the visibility of the branch 11.x to hidden.
- ๐จ๐ฆCanada SKAUGHT
SKAUGHT โ changed the visibility of the branch 3422333- to hidden.
- Status changed to Needs work
10 months ago 7:47pm 27 February 2024 The Needs Review Queue Bot โ tested this issue. It fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".
This does not mean that the patch necessarily needs to be re-rolled or the MR rebased. Read the Issue Summary, the issue tags and the latest discussion here to determine what needs to be done.
Consult the Drupal Contributor Guide โ to find step-by-step guides for working with issues.
- Status changed to Needs review
10 months ago 7:55pm 27 February 2024 - Status changed to Needs work
10 months ago 8:15pm 27 February 2024 - ๐ฉ๐ชGermany rkoller Nรผrnberg, Germany
Interesting. I've created a completely new fresh install of 11.x-dev. The one I've previously tested with i did some testing already for a while so it might have had some cruft. i've applied the following steps:
- created a new site with the standard profile (with php 8.3)
- applied the latest patch
- cleared the cache
=> tested and everything was behaving as expected and no error was showing.
- ran ddev drush sql:drop
- reinstalled the site with demo_umami
=> tried to edit one of the disabled views and again the same error showed up.
- i've then set up another fresh site with demo_umami
- applied the latest patch
- cleared cache
=>and i am already getting an error when i am accessing one of the disabled views.I can copy the console errors into a gist if that helps? but for me it looks like in the standard profile everything is behaving well while in umami there is still a problem.
- ๐จ๐ฆCanada SKAUGHT
-->i am NOT using PHP 8.3.
i did test in Umami too, again no error. both with js/css aggregation on or off - works fine.even d11 dev line is still 8.2!
*/ const MINIMUM_PHP = '8.1.0'; /** * Minimum recommended value of PHP memory_limit. * * 64M was chosen as a minimum requirement in order to allow for additional * contributed modules to be installed prior to hitting the limit. However, * 40M is the target for the Standard installation profile. */ const MINIMUM_PHP_MEMORY_LIMIT = '64M'; /** * Minimum recommended version of PHP. * * Sites installing Drupal on PHP versions lower than this will see a warning * message, but Drupal can still be installed. Used for (e.g.) PHP versions * that have reached their EOL or will in the near future. */ const RECOMMENDED_PHP = '8.2.0';
- Status changed to Needs review
10 months ago 8:53pm 27 February 2024 - Status changed to Needs work
10 months ago 9:29pm 27 February 2024 The Needs Review Queue Bot โ tested this issue. It fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".
This does not mean that the patch necessarily needs to be re-rolled or the MR rebased. Read the Issue Summary, the issue tags and the latest discussion here to determine what needs to be done.
Consult the Drupal Contributor Guide โ to find step-by-step guides for working with issues.
- ๐ฉ๐ชGermany rkoller Nรผrnberg, Germany
i usually tend to use the latest official version of php when testing. but i have two installations now, one with standard and one with demo_umami and i went from php 8.3 down to php 8.1 (using ddev) and no errors and regular behavior for the standard profile install while i get the same error consistently across 8.3 down to 8.1 with demo_umami. :/ anything else i could provide for debugging?
- Status changed to Needs review
10 months ago 1:08pm 28 February 2024 - ๐จ๐ฆCanada SKAUGHT
#28
bot is having trouble with the work 'datasource'.#29 rkoller.
Have continued testings. i have had this happen 'sometimes' too now..seems like this point has happened before with this same view!
#2738973: Route "view.glossary.page_1" does not exist after disabling the glossary view โ
#2685343: RouteNotFoundException when a view page is disabled. โ - Status changed to Needs work
10 months ago 1:53pm 28 February 2024 The Needs Review Queue Bot โ tested this issue. It fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".
This does not mean that the patch necessarily needs to be re-rolled or the MR rebased. Read the Issue Summary, the issue tags and the latest discussion here to determine what needs to be done.
Consult the Drupal Contributor Guide โ to find step-by-step guides for working with issues.
- Status changed to Needs review
10 months ago 2:09pm 28 February 2024 - Status changed to Needs work
10 months ago 2:51pm 28 February 2024 The Needs Review Queue Bot โ tested this issue. It fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".
This does not mean that the patch necessarily needs to be re-rolled or the MR rebased. Read the Issue Summary, the issue tags and the latest discussion here to determine what needs to be done.
Consult the Drupal Contributor Guide โ to find step-by-step guides for working with issues.
- Status changed to Needs review
10 months ago 2:57pm 28 February 2024 - Status changed to Needs work
10 months ago 3:32pm 28 February 2024 The Needs Review Queue Bot โ tested this issue. It fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".
This does not mean that the patch necessarily needs to be re-rolled or the MR rebased. Read the Issue Summary, the issue tags and the latest discussion here to determine what needs to be done.
Consult the Drupal Contributor Guide โ to find step-by-step guides for working with issues.
- Status changed to Needs review
10 months ago 4:42pm 28 February 2024 - Status changed to Needs work
10 months ago 10:52pm 28 February 2024 - ๐บ๐ธUnited States smustgrave
Probably will need submaintainer sign off.
But will require test coverage for all the new routes.
Also issue summary appears to be missing sections. UI change should include screenshots.
Thanks.
- ๐ฉ๐ชGermany rkoller Nรผrnberg, Germany
@skaught retested with the latest changes in MR6793. For standard everything works without a problem, I am able to enable and disable a view in a row without any errors. For demo_umami that error keeps showing up every time i try to enable a view. The view gets enabled anyway and if i save the error is gone, then i am able to disable the view without an error but as soon as i try reenable again the error shows up again.
- Status changed to Needs review
10 months ago 9:05pm 6 March 2024 - ๐ฎ๐ณIndia mithun s Bangalore
I have checkout to the branch and reviewed the functionality on the View Enable/Disable from the view page. The functionality looks good to me. After enabling the view from view page the view is listed under Enable section and the background color of the view changes to white. Attaching the screenshots of the same. Thank you!!
RTBC +1
- Status changed to RTBC
10 months ago 1:10pm 8 March 2024 - ๐ฉ๐ชGermany rkoller Nรผrnberg, Germany
hm not sure, the error is still happening on my end if the site is using the demo_umami install profile?
and one thought about the micro copy (but i suppose that could be covered in a follow up issue in an issue where the h1/page title is tackled holistically). leaving the term
disabled
at the end of the h1 and page title has the disadvantage that anyone skimming the title might jump off after the context is clear. for sighted users not necessarily a problem, they notice there is "more" and they just HAVE to read the entire h1/page title. but screen reader users might only follow the announcement until archive (they know they are in the overall context of views) and then jump off and not necessarily know there is more. therefore frontloading the state might be a good idea. in the context of #2514218-101: [regression] Pages Manage Fields, Manage form, Manage display should include name of content type or entity โ we've agreed on a front loading pattern for content types but never discussed anything aside that like how and where to communicate a state. but probably better suited for a follow up issue and taking a look at things at a whole. - Status changed to Needs work
9 months ago 4:59am 17 March 2024 The Needs Review Queue Bot โ tested this issue. It fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".
This does not mean that the patch necessarily needs to be re-rolled or the MR rebased. Read the Issue Summary, the issue tags and the latest discussion here to determine what needs to be done.
Consult the Drupal Contributor Guide โ to find step-by-step guides for working with issues.
- Status changed to RTBC
9 months ago 7:53am 17 March 2024 - Status changed to Needs review
9 months ago 10:00am 18 March 2024 - ๐ฌ๐งUnited Kingdom alexpott ๐ช๐บ๐
I agree this functionality seems useful but I wonder if we have a problem with the fact it automatically applies? All the other changes in this list that make immediate changes to the view go to a confirmation - for example the delete view. The other things in this list stage the change first and then you have to press save before making changes. I think immediately disabling or enabling the view from this action button breaks that expectation. As I don't see any discussion of this usability issue on this issue setting back to needs review.
- ๐จ๐ฆCanada SKAUGHT
Thanks.
Myself, I. simply was not under any impression that this dropdown needed that kind of rule for items in it -- as a user is just looking to change status. Delete understandable uses a confirm form.I actually did think about adding it to the 'Edit View name/description' as this is the rest of the items a view needs. But the title alone is already not clear what a user will find here.. ie: uses edits 'tags' here which aren't seen anywhere'.
one possibility UX todo:
-add radio group *enabled/disabled" on 'Edit View name/description' (a modal form) with a label: 'View Status' - ๐บ๐ธUnited States Kristen Pol Santa Cruz, CA, USA
I would also think that the new item in the dropdown would behave the same as others in the dropdown. Canceling it doesn't work. But, it's easy to just reenable so not a huge deal IMO.
- Status changed to RTBC
9 months ago 3:48pm 22 March 2024 - ๐จ๐ฆCanada SKAUGHT
In today's UX meeting ๐ Drupal Usability Meeting 2024-03-22 Fixed we were able to review the point raise in #51 about this dropdown introducing a non-modal task. Shortly, it had been realized the Views List Page does already allow for the enable/disable to be instance whereas the delete task does trigger a model, The Edit of course is a regular link and page load. There in we are within our own consistency..
I had directly brought up the idea of adding radios for status to the 'edit/description' first link (a modal with title, description, tags) but it was felt that placing here wouldn't isn't helping the user to find the status control point more readily.
Key reminder: a user may have gotten to edit a view through a context link of a block that has a disabled view, not coming form the UI list.
Thanks all! returning to RTBC.
- ๐ฌ๐งUnited Kingdom alexpott ๐ช๐บ๐
My point was not about it being a non modal task. My point was about it making a change on the page that takes place and it happens immediately, when you are on an edit page with a save button. Delete is fine because it takes you somewhere else and you confirm. And the views listing page has no save button and thereby unrelated. Wrt to the key reminder, if the view is disabled you're not going to get at it view a contextual link in a block. If you do disable a view which is providing a block you will see the following test everywhere
This block is broken or missing. You may be missing content or you might need to install the original module.
And no contextual link the view to fix it. So that rather is an argument for not making this so simple.
- ๐ฌ๐งUnited Kingdom alexpott ๐ช๐บ๐
And one more thing about disabling a view... looking at \Drupal\views\Entity\View::postSave
// Rebuild the router if this is a new view, or its status changed. if (!isset($this->original) || ($this->status() != $this->original->status())) { \Drupal::service('router.builder')->setRebuildNeeded(); }
it causes a router rebuild. So flicking this from on to off and back again can cause your site to come under serious strain.
- ๐จ๐ฆCanada SKAUGHT
#58 During the run through we did touch on the fact that a user does not have to save the entire view. It was still felt to be acceptable still.
#59. understandable that toggling a view has load fallout. Are you suggesting to take some king of action around this? or is this just part and parcel in activation of a tool? A sitebuilder/content editor doesn't worry about application load otherwise.
- ๐จ๐ฆCanada SKAUGHT
Mr. @alexpott
with the wisdom to introduce this toggle to a confirm form -->> Is there a message you might suggest to use for that confirm_formwith this, the List builder page then we would be able to switch that toggle to also use that same message, so that both spots to change status are consistant.
is that a follow up issue? - ๐ฌ๐งUnited Kingdom alexpott ๐ช๐บ๐
I would think that the message would mention that disabling a view will make all it's display's including blocks and pages inaccessible. If the view has a block display I would go the extra mile and inform the user that disabling this view can result in user's seeing a message about a broken block.
- ๐ฌ๐งUnited Kingdom alexpott ๐ช๐บ๐
I think the list builder going to a confirm form can be handled here too as it should not be much to change.
- ๐จ๐ฆCanada SKAUGHT
thanks.
'in act to disable' a view, show a message "Disabling this view will make an Page or Block Displays defined will become inaccessible. Route caching will also be flushed, this may cause an short-term increased server load."
'in the act of enabling a view,' show a message "Notice: Enabling a View will flush Route Caches. This may cause an short-term increased server load." - Status changed to Needs work
9 months ago 9:38am 28 March 2024 - First commit to issue fork.
- Merge request !1Issue #3422333 by OPTASY. add confirm form for enable, disable. โ (Closed) created by web247