123456789101112131415161718192021222324252627282930313233343536373839 |
- /**
- * @file
- * Language admin behavior.
- */
- (function ($, Drupal) {
- /**
- * Makes language negotiation inherit user interface negotiation.
- *
- * @type {Drupal~behavior}
- *
- * @prop {Drupal~behaviorAttach} attach
- * Attach behavior to language negotiation admin user interface.
- */
- Drupal.behaviors.negotiationLanguage = {
- attach() {
- const $configForm = $('#language-negotiation-configure-form');
- const inputSelector = 'input[name$="[configurable]"]';
- // Given a customization checkbox derive the language type being changed.
- function toggleTable(checkbox) {
- const $checkbox = $(checkbox);
- // Get the language detection type such as Interface text language
- // detection or Content language detection.
- $checkbox.closest('.table-language-group')
- .find('table, .tabledrag-toggle-weight')
- .toggle($checkbox.prop('checked'));
- }
- // Bind hide/show and rearrange customization checkboxes.
- $configForm.once('negotiation-language-admin-bind').on('change', inputSelector, (event) => {
- toggleTable(event.target);
- });
- // Initially, hide language detection types that are not customized.
- $configForm.find(`${inputSelector}:not(:checked)`).each((index, element) => {
- toggleTable(element);
- });
- },
- };
- }(jQuery, Drupal));
|