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);