Security update for Core, with self-updated composer
[yaffs-website] / web / core / modules / filter / filter.admin.es6.js
diff --git a/web/core/modules/filter/filter.admin.es6.js b/web/core/modules/filter/filter.admin.es6.js
new file mode 100644 (file)
index 0000000..e109fab
--- /dev/null
@@ -0,0 +1,63 @@
+/**
+ * @file
+ * Attaches administration-specific behavior for the Filter module.
+ */
+
+(function ($, Drupal) {
+  /**
+   * Displays and updates the status of filters on the admin page.
+   *
+   * @type {Drupal~behavior}
+   *
+   * @prop {Drupal~behaviorAttach} attach
+   *   Attaches behaviors to the filter admin view.
+   */
+  Drupal.behaviors.filterStatus = {
+    attach(context, settings) {
+      const $context = $(context);
+      $context.find('#filters-status-wrapper input.form-checkbox').once('filter-status').each(function () {
+        const $checkbox = $(this);
+        // Retrieve the tabledrag row belonging to this filter.
+        const $row = $context.find(`#${$checkbox.attr('id').replace(/-status$/, '-weight')}`).closest('tr');
+        // Retrieve the vertical tab belonging to this filter.
+        const $filterSettings = $context.find(`#${$checkbox.attr('id').replace(/-status$/, '-settings')}`);
+        const filterSettingsTab = $filterSettings.data('verticalTab');
+
+        // Bind click handler to this checkbox to conditionally show and hide
+        // the filter's tableDrag row and vertical tab pane.
+        $checkbox.on('click.filterUpdate', () => {
+          if ($checkbox.is(':checked')) {
+            $row.show();
+            if (filterSettingsTab) {
+              filterSettingsTab.tabShow().updateSummary();
+            }
+            else {
+              // On very narrow viewports, Vertical Tabs are disabled.
+              $filterSettings.show();
+            }
+          }
+          else {
+            $row.hide();
+            if (filterSettingsTab) {
+              filterSettingsTab.tabHide().updateSummary();
+            }
+            else {
+              // On very narrow viewports, Vertical Tabs are disabled.
+              $filterSettings.hide();
+            }
+          }
+          // Restripe table after toggling visibility of table row.
+          Drupal.tableDrag['filter-order'].restripeTable();
+        });
+
+        // Attach summary for configurable filters (only for screen readers).
+        if (filterSettingsTab) {
+          filterSettingsTab.details.drupalSetSummary(tabContext => $checkbox.is(':checked') ? Drupal.t('Enabled') : Drupal.t('Disabled'));
+        }
+
+        // Trigger our bound click handler to update elements to initial state.
+        $checkbox.triggerHandler('click.filterUpdate');
+      });
+    },
+  };
+}(jQuery, Drupal));