jsOMS/Model/Action/Event/If.js
Dennis Eichhorn 7b75ec58f7
Some checks failed
CodeQL / Analyze (javascript) (push) Has been cancelled
CI / general_module_workflow_js (push) Has been cancelled
fix permissions
2025-04-02 14:15:07 +00:00

48 lines
1.5 KiB
JavaScript

/**
* Prevent UI action.
*
* @param {Object} action Action data
* @param {function} callback Callback
* @param {string} id Action element
*
* @since 1.0.0
*/
export function ifAction (action, callback, id)
{
'use strict';
const conditions = action.conditions;
const data = Object.values(action.data)[0];
for (const i in conditions) {
if (conditions[i].comp === '==' && data === conditions[i].value) {
action.key = conditions[i].jump - 1;
break;
} else if (conditions[i].comp === '!=' && data !== conditions[i].value) {
action.key = conditions[i].jump - 1;
break;
} else if (conditions[i].comp === '>' && data > conditions[i].value) {
action.key = conditions[i].jump - 1;
break;
} else if (conditions[i].comp === '<' && data < conditions[i].value) {
action.key = conditions[i].jump - 1;
break;
} else if (conditions[i].comp === '>=' && data >= conditions[i].value) {
action.key = conditions[i].jump - 1;
break;
} else if (conditions[i].comp === '<=' && data <= conditions[i].value) {
action.key = conditions[i].jump - 1;
break;
} else if (conditions[i].comp === '') {
// empty comparison => else statement
action.key = conditions[i].jump - 1;
break;
}
}
if (typeof callback === 'function') {
callback();
}
};