content_translation.admin.js 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /**
  2. * DO NOT EDIT THIS FILE.
  3. * See the following change record for more information,
  4. * https://www.drupal.org/node/2815083
  5. * @preserve
  6. **/
  7. (function ($, Drupal, drupalSettings) {
  8. Drupal.behaviors.contentTranslationDependentOptions = {
  9. attach: function attach(context) {
  10. var $context = $(context);
  11. var options = drupalSettings.contentTranslationDependentOptions;
  12. var $fields = void 0;
  13. function fieldsChangeHandler($fields, dependentColumns) {
  14. return function (e) {
  15. Drupal.behaviors.contentTranslationDependentOptions.check($fields, dependentColumns, $(e.target));
  16. };
  17. }
  18. if (options && options.dependent_selectors) {
  19. Object.keys(options.dependent_selectors).forEach(function (field) {
  20. $fields = $context.find('input[name^="' + field + '"]');
  21. var dependentColumns = options.dependent_selectors[field];
  22. $fields.on('change', fieldsChangeHandler($fields, dependentColumns));
  23. Drupal.behaviors.contentTranslationDependentOptions.check($fields, dependentColumns);
  24. });
  25. }
  26. },
  27. check: function check($fields, dependentColumns, $changed) {
  28. var $element = $changed;
  29. var column = void 0;
  30. function filterFieldsList(index, field) {
  31. return $(field).val() === column;
  32. }
  33. Object.keys(dependentColumns || {}).forEach(function (index) {
  34. column = dependentColumns[index];
  35. if (!$changed) {
  36. $element = $fields.filter(filterFieldsList);
  37. }
  38. if ($element.is('input[value="' + column + '"]:checked')) {
  39. $fields.prop('checked', true).not($element).prop('disabled', true);
  40. } else {
  41. $fields.prop('disabled', false);
  42. }
  43. });
  44. }
  45. };
  46. Drupal.behaviors.contentTranslation = {
  47. attach: function attach(context) {
  48. $(context).find('table .bundle-settings .translatable :input').once('translation-entity-admin-hide').each(function () {
  49. var $input = $(this);
  50. var $bundleSettings = $input.closest('.bundle-settings');
  51. if (!$input.is(':checked')) {
  52. $bundleSettings.nextUntil('.bundle-settings').hide();
  53. } else {
  54. $bundleSettings.nextUntil('.bundle-settings', '.field-settings').find('.translatable :input:not(:checked)').closest('.field-settings').nextUntil(':not(.column-settings)').hide();
  55. }
  56. });
  57. $('body').once('translation-entity-admin-bind').on('click', 'table .bundle-settings .translatable :input', function (e) {
  58. var $target = $(e.target);
  59. var $bundleSettings = $target.closest('.bundle-settings');
  60. var $settings = $bundleSettings.nextUntil('.bundle-settings');
  61. var $fieldSettings = $settings.filter('.field-settings');
  62. if ($target.is(':checked')) {
  63. $bundleSettings.find('.operations :input[name$="[language_alterable]"]').prop('checked', true);
  64. $fieldSettings.find('.translatable :input').prop('checked', true);
  65. $settings.show();
  66. } else {
  67. $settings.hide();
  68. }
  69. }).on('click', 'table .field-settings .translatable :input', function (e) {
  70. var $target = $(e.target);
  71. var $fieldSettings = $target.closest('.field-settings');
  72. var $columnSettings = $fieldSettings.nextUntil('.field-settings, .bundle-settings');
  73. if ($target.is(':checked')) {
  74. $columnSettings.show();
  75. } else {
  76. $columnSettings.hide();
  77. }
  78. });
  79. }
  80. };
  81. })(jQuery, Drupal, drupalSettings);