sites_group_overrides-1.x-dev/js/overideStatus.js

js/overideStatus.js
/**
 * @file
 * JavaScript for override forms.
 */

(function ($, once, Drupal, drupalSettings) {

  Drupal.behaviors.sitesGroupOverrides = {
    attach: function (context, settings) {
      for (let field_name in drupalSettings.sitesGroupOverrides) {
        // React on changes.
        input = drupalSettings.sitesGroupOverrides[field_name]['value_selector']
        $(input).on('change', {
          field_name: field_name
        },
          setLabel
        );

        function setLabel(event) {
          field_name = event.data.field_name
          settings = drupalSettings.sitesGroupOverrides[field_name]
          label = '.' + settings['class'] + ' label'
          label = drupalSettings.sitesGroupOverrides[field_name]['label_selector']
          input = drupalSettings.sitesGroupOverrides[field_name]['value_selector']

          if ($(input).val() == settings['original_value']) {
            $(label).text('(' + Drupal.t('JS Original value')+')')
          }
          else {
            $(label).text('(' + Drupal.t('JS Overridden')+')')
          }
        }

      }

      // React on CLEditor5 changes
      setTimeout(function () {
        for (let field_name in drupalSettings.sitesGroupOverrides) {
          input = drupalSettings.sitesGroupOverrides[field_name]['value_selector']
          if ($(input).attr('data-ckeditor5-id') !== undefined) {
            let editor = Drupal.CKEditor5Instances.get($(input).attr('data-ckeditor5-id'))
            editor.model.document.on('change', function (e) {
              editor.updateSourceElement();
              $(editor.sourceElement).trigger('change', [true]);
            })

          }
        }
      }, 500)

    }
  }

})(jQuery, once, Drupal, drupalSettings);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc