1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /**
- * @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);
|