X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Fcontent_translation%2Fcontent_translation.admin.es6.js;h=cf4b2083c98374fd32631046ccdd49bb23dec0b1;hb=4f1b9b4ab48a8498afac9e2213a02a23ccf4a06c;hp=1b9e952840585dad6602337103e35ca16127d40d;hpb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;p=yaffs-website diff --git a/web/core/modules/content_translation/content_translation.admin.es6.js b/web/core/modules/content_translation/content_translation.admin.es6.js index 1b9e95284..cf4b2083c 100644 --- a/web/core/modules/content_translation/content_translation.admin.es6.js +++ b/web/core/modules/content_translation/content_translation.admin.es6.js @@ -3,7 +3,7 @@ * Content Translation admin behaviors. */ -(function ($, Drupal, drupalSettings) { +(function($, Drupal, drupalSettings) { /** * Forces applicable options to be checked as translatable. * @@ -17,11 +17,14 @@ const $context = $(context); const options = drupalSettings.contentTranslationDependentOptions; let $fields; - let dependent_columns; - function fieldsChangeHandler($fields, dependent_columns) { - return function (e) { - Drupal.behaviors.contentTranslationDependentOptions.check($fields, dependent_columns, $(e.target)); + function fieldsChangeHandler($fields, dependentColumns) { + return function(e) { + Drupal.behaviors.contentTranslationDependentOptions.check( + $fields, + dependentColumns, + $(e.target), + ); }; } @@ -29,18 +32,19 @@ // that name and copy over the input values that require all columns to be // translatable. if (options && options.dependent_selectors) { - for (const field in options.dependent_selectors) { - if (options.dependent_selectors.hasOwnProperty(field)) { - $fields = $context.find(`input[name^="${field}"]`); - dependent_columns = options.dependent_selectors[field]; + Object.keys(options.dependent_selectors).forEach(field => { + $fields = $context.find(`input[name^="${field}"]`); + const dependentColumns = options.dependent_selectors[field]; - $fields.on('change', fieldsChangeHandler($fields, dependent_columns)); - Drupal.behaviors.contentTranslationDependentOptions.check($fields, dependent_columns); - } - } + $fields.on('change', fieldsChangeHandler($fields, dependentColumns)); + Drupal.behaviors.contentTranslationDependentOptions.check( + $fields, + dependentColumns, + ); + }); } }, - check($fields, dependent_columns, $changed) { + check($fields, dependentColumns, $changed) { let $element = $changed; let column; @@ -50,23 +54,22 @@ // A field that has many different translatable parts can also define one // or more columns that require all columns to be translatable. - for (const index in dependent_columns) { - if (dependent_columns.hasOwnProperty(index)) { - column = dependent_columns[index]; + Object.keys(dependentColumns || {}).forEach(index => { + column = dependentColumns[index]; - if (!$changed) { - $element = $fields.filter(filterFieldsList); - } + if (!$changed) { + $element = $fields.filter(filterFieldsList); + } - if ($element.is(`input[value="${column}"]:checked`)) { - $fields.prop('checked', true) - .not($element).prop('disabled', true); - } - else { - $fields.prop('disabled', false); - } + if ($element.is(`input[value="${column}"]:checked`)) { + $fields + .prop('checked', true) + .not($element) + .prop('disabled', true); + } else { + $fields.prop('disabled', false); } - } + }); }, }; @@ -82,45 +85,56 @@ attach(context) { // Initially hide all field rows for non translatable bundles and all // column rows for non translatable fields. - $(context).find('table .bundle-settings .translatable :input').once('translation-entity-admin-hide').each(function () { - const $input = $(this); - const $bundleSettings = $input.closest('.bundle-settings'); - if (!$input.is(':checked')) { - $bundleSettings.nextUntil('.bundle-settings').hide(); - } - else { - $bundleSettings.nextUntil('.bundle-settings', '.field-settings').find('.translatable :input:not(:checked)').closest('.field-settings').nextUntil(':not(.column-settings)').hide(); - } - }); + $(context) + .find('table .bundle-settings .translatable :input') + .once('translation-entity-admin-hide') + .each(function() { + const $input = $(this); + const $bundleSettings = $input.closest('.bundle-settings'); + if (!$input.is(':checked')) { + $bundleSettings.nextUntil('.bundle-settings').hide(); + } else { + $bundleSettings + .nextUntil('.bundle-settings', '.field-settings') + .find('.translatable :input:not(:checked)') + .closest('.field-settings') + .nextUntil(':not(.column-settings)') + .hide(); + } + }); // When a bundle is made translatable all of its fields should inherit // this setting. Instead when it is made non translatable its fields are // hidden, since their translatability no longer matters. - $('body').once('translation-entity-admin-bind').on('click', 'table .bundle-settings .translatable :input', (e) => { - const $target = $(e.target); - const $bundleSettings = $target.closest('.bundle-settings'); - const $settings = $bundleSettings.nextUntil('.bundle-settings'); - const $fieldSettings = $settings.filter('.field-settings'); - if ($target.is(':checked')) { - $bundleSettings.find('.operations :input[name$="[language_alterable]"]').prop('checked', true); - $fieldSettings.find('.translatable :input').prop('checked', true); - $settings.show(); - } - else { - $settings.hide(); - } - }) - .on('click', 'table .field-settings .translatable :input', (e) => { + $('body') + .once('translation-entity-admin-bind') + .on('click', 'table .bundle-settings .translatable :input', e => { + const $target = $(e.target); + const $bundleSettings = $target.closest('.bundle-settings'); + const $settings = $bundleSettings.nextUntil('.bundle-settings'); + const $fieldSettings = $settings.filter('.field-settings'); + if ($target.is(':checked')) { + $bundleSettings + .find('.operations :input[name$="[language_alterable]"]') + .prop('checked', true); + $fieldSettings.find('.translatable :input').prop('checked', true); + $settings.show(); + } else { + $settings.hide(); + } + }) + .on('click', 'table .field-settings .translatable :input', e => { const $target = $(e.target); const $fieldSettings = $target.closest('.field-settings'); - const $columnSettings = $fieldSettings.nextUntil('.field-settings, .bundle-settings'); + const $columnSettings = $fieldSettings.nextUntil( + '.field-settings, .bundle-settings', + ); if ($target.is(':checked')) { $columnSettings.show(); - } - else { + } else { $columnSettings.hide(); } }); }, }; -}(jQuery, Drupal, drupalSettings)); +})(jQuery, Drupal, drupalSettings);