diff -u b/core/modules/views_ui/js/views_ui.listing.js b/core/modules/views_ui/js/views_ui.listing.js --- b/core/modules/views_ui/js/views_ui.listing.js +++ b/core/modules/views_ui/js/views_ui.listing.js @@ -52,10 +52,13 @@ }; - // When a view is enabled, this variable will hold it's machine name. It is - // used in the behavior to focus on the first dropbutton link of this view's - // row. - var enabledView = ''; + // When a view is enabled/disabled, this variable will hold it's machine name. + // It is used in the behavior to focus on the first dropbutton link of this + // view's row. + var changedView = ''; + + // Hold the selector for changed view. + var viewSelector = ''; /** * Handles focus after Ajax update. @@ -65,14 +68,13 @@ * @prop {Drupal~behaviorAttach} attach * Listen to disable events on views listing page to keep focus in context. */ - Drupal.behaviors.viewsEnableFocus = { + Drupal.behaviors.viewsChangeFocus = { attach: function (context) { - function focusRow(index, row) { + function findChangedRow(index, row) { var $row = $(row); var $source = $row.find('.views-ui-view-machine-name .views-table-filter-text-source'); - var textMatch = $source.text().indexOf(enabledView) !== -1; - if (textMatch) { + if ($source.text().indexOf(changedView) !== -1) { $row.find('.dropbutton a').eq(0).trigger('focus'); } } @@ -81,13 +83,21 @@ // Drupal.behaviorAttach() focuses it. $(context).find('tr.views-ui-list-disabled li.enable .use-ajax').on('click', function () { // Store the machine name of the view to focus after ajax update. - enabledView = $(this).closest('tr').find('.views-ui-view-machine-name .views-table-filter-text-source').text(); + changedView = $(this).closest('tr').find('.views-ui-view-machine-name .views-table-filter-text-source').text(); + viewSelector = 'tr.views-ui-list-enabled'; + }); + + // Disable a view. + $(context).find('tr.views-ui-list-enabled li.disable .use-ajax').on('click', function () { + // Store the machine name of the view to focus after ajax update. + changedView = $(this).closest('tr').find('.views-ui-view-machine-name .views-table-filter-text-source').text(); + viewSelector = 'tr.views-ui-list-disabled'; }); - // A view has been enabled, focus the first dropbutton link. - if (enabledView && enabledView !== '') { - $('tr.views-ui-list-enabled').each(focusRow); - enabledView = ''; + // A view has been enabled/disabled, focus the first dropbutton link. + if (changedView && changedView !== '') { + $(viewSelector).each(findChangedRow); + changedView = ''; } } };