Chris@0: /** Chris@0: * DO NOT EDIT THIS FILE. Chris@0: * See the following change record for more information, Chris@0: * https://www.drupal.org/node/2815083 Chris@0: * @preserve Chris@0: **/ Chris@0: Chris@0: (function ($, Drupal, drupalSettings) { Chris@0: Drupal.behaviors.contentTranslationDependentOptions = { Chris@0: attach: function attach(context) { Chris@0: var $context = $(context); Chris@0: var options = drupalSettings.contentTranslationDependentOptions; Chris@0: var $fields = void 0; Chris@0: Chris@14: function fieldsChangeHandler($fields, dependentColumns) { Chris@0: return function (e) { Chris@14: Drupal.behaviors.contentTranslationDependentOptions.check($fields, dependentColumns, $(e.target)); Chris@0: }; Chris@0: } Chris@0: Chris@0: if (options && options.dependent_selectors) { Chris@14: Object.keys(options.dependent_selectors).forEach(function (field) { Chris@14: $fields = $context.find('input[name^="' + field + '"]'); Chris@14: var dependentColumns = options.dependent_selectors[field]; Chris@0: Chris@14: $fields.on('change', fieldsChangeHandler($fields, dependentColumns)); Chris@14: Drupal.behaviors.contentTranslationDependentOptions.check($fields, dependentColumns); Chris@14: }); Chris@0: } Chris@0: }, Chris@14: check: function check($fields, dependentColumns, $changed) { Chris@0: var $element = $changed; Chris@0: var column = void 0; Chris@0: Chris@0: function filterFieldsList(index, field) { Chris@0: return $(field).val() === column; Chris@0: } Chris@0: Chris@14: Object.keys(dependentColumns || {}).forEach(function (index) { Chris@14: column = dependentColumns[index]; Chris@0: Chris@14: if (!$changed) { Chris@14: $element = $fields.filter(filterFieldsList); Chris@14: } Chris@0: Chris@14: if ($element.is('input[value="' + column + '"]:checked')) { Chris@14: $fields.prop('checked', true).not($element).prop('disabled', true); Chris@14: } else { Chris@14: $fields.prop('disabled', false); Chris@0: } Chris@14: }); Chris@0: } Chris@0: }; Chris@0: Chris@0: Drupal.behaviors.contentTranslation = { Chris@0: attach: function attach(context) { Chris@0: $(context).find('table .bundle-settings .translatable :input').once('translation-entity-admin-hide').each(function () { Chris@0: var $input = $(this); Chris@0: var $bundleSettings = $input.closest('.bundle-settings'); Chris@0: if (!$input.is(':checked')) { Chris@0: $bundleSettings.nextUntil('.bundle-settings').hide(); Chris@0: } else { Chris@0: $bundleSettings.nextUntil('.bundle-settings', '.field-settings').find('.translatable :input:not(:checked)').closest('.field-settings').nextUntil(':not(.column-settings)').hide(); Chris@0: } Chris@0: }); Chris@0: Chris@0: $('body').once('translation-entity-admin-bind').on('click', 'table .bundle-settings .translatable :input', function (e) { Chris@0: var $target = $(e.target); Chris@0: var $bundleSettings = $target.closest('.bundle-settings'); Chris@0: var $settings = $bundleSettings.nextUntil('.bundle-settings'); Chris@0: var $fieldSettings = $settings.filter('.field-settings'); Chris@0: if ($target.is(':checked')) { Chris@0: $bundleSettings.find('.operations :input[name$="[language_alterable]"]').prop('checked', true); Chris@0: $fieldSettings.find('.translatable :input').prop('checked', true); Chris@0: $settings.show(); Chris@0: } else { Chris@0: $settings.hide(); Chris@0: } Chris@0: }).on('click', 'table .field-settings .translatable :input', function (e) { Chris@0: var $target = $(e.target); Chris@0: var $fieldSettings = $target.closest('.field-settings'); Chris@0: var $columnSettings = $fieldSettings.nextUntil('.field-settings, .bundle-settings'); Chris@0: if ($target.is(':checked')) { Chris@0: $columnSettings.show(); Chris@0: } else { Chris@0: $columnSettings.hide(); Chris@0: } Chris@0: }); Chris@0: } Chris@0: }; Chris@0: })(jQuery, Drupal, drupalSettings);