popnoire/site/OFF_plugins/field-engineer/assets/js/trigger.js
2026-02-12 15:22:46 +01:00

58 lines
No EOL
1.7 KiB
JavaScript

var EgrTrigger = (function () {
var fn = {};
fn.trigger = function(row) {
fn.triggerFields(row);
fn.triggerPlugins(row);
fn.checkDuplicates(row);
};
fn.triggerFields = function(row) {
row.find('[data-field="urlfield"]').removeData('urlfield').off('click').urlfield();
row.find('[data-field="date"]').removeData('date').off('change').date();
row.find('[data-field="imagefield"]').removeData('imagefield').imagefield();
row.find('[data-field="autocomplete"]').removeData('autocomplete').off('keydown keyup').autocomplete();
row.find('[data-field="editor"]').removeData('editor').off('keydown click').editor();
row.find('[data-field="counter"]').removeData('counter').counter();
};
fn.triggerPlugins = function(row) {
if ( row.find('[data-field="images"]').length ) {
row.find('[data-field="images"]').removeData('images').images();
}
if ( row.find('[data-field="hero"]').length ) {
row.find('[data-field="hero"]').removeData('hero').hero();
}
if ( row.find('[data-field="quickselect"]').length ) {
row.find('[data-field="quickselect"]').removeData('quickselect').quickselect();
}
if ( row.find('[data-field="list"]').length ) {
row.find('[data-field="list"]').removeData('list').list();
}
};
fn.checkDuplicates = function(row) {
var i = 0;
var values = [];
row.closest('.egr').find('.field').each(function( index ) {
var classes = $(this).attr('class').split(" ");
$.each(classes, function( index, value ) {
if(value.endsWith("_egr__")) {
values[i] = value;
i++;
}
});
});
if(fn.hasDuplicates(values)) {
console.log('Error: There are duplicates!');
}
};
fn.hasDuplicates = function(array) {
return (new Set(array)).size !== array.length;
}
return fn;
})();