hyperion.ng/assets/webconfig/js/content_effects.js
LordGrey 5078688dc8
Hyperion Light 2 (#1428)
* Hyperion Light - Have EffectEngine as component

* Hyperion light - Build switches for LED Devices (Serial, Network)

* Fix file uri generation

* Fix missing guard for Windows

* Fix file uri generation

* Update jsonschema and checkschema

* Allow to provide cmake build args to docker build
2022-02-11 20:36:15 +01:00

172 lines
7.3 KiB
JavaScript

$(document).ready(function () {
performTranslation();
var EFFECTENGINE_ENABLED = (jQuery.inArray("effectengine", window.serverInfo.services) !== -1);
// update instance listing
updateHyperionInstanceListing();
var oldEffects = [];
var effects_editor = null;
var confFgEff = window.serverConfig.foregroundEffect.effect;
var confBgEff = window.serverConfig.backgroundEffect.effect;
var foregroundEffect_editor = null;
var backgroundEffect_editor = null;
if (!EFFECTENGINE_ENABLED) {
window.schema.foregroundEffect.properties.type.enum.splice(1, 1);
window.schema.foregroundEffect.properties.type.options.enum_titles.splice(1, 1);
window.schema.foregroundEffect.properties.type.default = "color";
delete window.schema.foregroundEffect.properties.effect;
window.schema.backgroundEffect.properties.type.enum.splice(1, 1);
window.schema.backgroundEffect.properties.type.options.enum_titles.splice(1, 1);
window.schema.backgroundEffect.properties.type.default = "color";
delete window.schema.backgroundEffect.properties.effect;
}
if (window.showOptHelp) {
//foreground effect
$('#conf_cont').append(createRow('conf_cont_fge'));
$('#conf_cont_fge').append(createOptPanel('fa-spinner', $.i18n("edt_conf_fge_heading_title"), 'editor_container_foregroundEffect', 'btn_submit_foregroundEffect'));
$('#conf_cont_fge').append(createHelpTable(window.schema.foregroundEffect.properties, $.i18n("edt_conf_fge_heading_title"), "foregroundEffectHelpPanelId"));
//background effect
$('#conf_cont').append(createRow('conf_cont_bge'));
$('#conf_cont_bge').append(createOptPanel('fa-spinner', $.i18n("edt_conf_bge_heading_title"), 'editor_container_backgroundEffect', 'btn_submit_backgroundEffect'));
$('#conf_cont_bge').append(createHelpTable(window.schema.backgroundEffect.properties, $.i18n("edt_conf_bge_heading_title"), "backgroundEffectHelpPanelId"));
if (EFFECTENGINE_ENABLED) {
//effect path
if (storedAccess != 'default') {
$('#conf_cont').append(createRow('conf_cont_ef'));
$('#conf_cont_ef').append(createOptPanel('fa-spinner', $.i18n("edt_conf_effp_heading_title"), 'editor_container_effects', 'btn_submit_effects'));
$('#conf_cont_ef').append(createHelpTable(window.schema.effects.properties, $.i18n("edt_conf_effp_heading_title")));
}
}
}
else {
$('#conf_cont').addClass('row');
$('#conf_cont').append(createOptPanel('fa-spinner', $.i18n("edt_conf_fge_heading_title"), 'editor_container_foregroundEffect', 'btn_submit_foregroundEffect'));
$('#conf_cont').append(createOptPanel('fa-spinner', $.i18n("edt_conf_bge_heading_title"), 'editor_container_backgroundEffect', 'btn_submit_backgroundEffect'));
if (EFFECTENGINE_ENABLED) {
if (storedAccess != 'default')
$('#conf_cont').append(createOptPanel('fa-spinner', $.i18n("edt_conf_effp_heading_title"), 'editor_container_effects', 'btn_submit_effects'));
}
}
if (EFFECTENGINE_ENABLED) {
if (storedAccess != 'default') {
effects_editor = createJsonEditor('editor_container_effects', {
effects: window.schema.effects
}, true, true);
effects_editor.on('change', function () {
effects_editor.validate().length || window.readOnlyMode ? $('#btn_submit_effects').attr('disabled', true) : $('#btn_submit_effects').attr('disabled', false);
});
$('#btn_submit_effects').off().on('click', function () {
requestWriteConfig(effects_editor.getValue());
});
}
}
foregroundEffect_editor = createJsonEditor('editor_container_foregroundEffect', {
foregroundEffect: window.schema.foregroundEffect
}, true, true);
backgroundEffect_editor = createJsonEditor('editor_container_backgroundEffect', {
backgroundEffect: window.schema.backgroundEffect
}, true, true);
foregroundEffect_editor.on('ready', function () {
if (EFFECTENGINE_ENABLED) {
updateEffectlist();
}
});
foregroundEffect_editor.on('change', function () {
var foregroundEffectEnable = foregroundEffect_editor.getEditor("root.foregroundEffect.enable").getValue();
if (foregroundEffectEnable) {
showInputOptionsForKey(foregroundEffect_editor, "foregroundEffect", "enable", true);
$('#foregroundEffectHelpPanelId').show();
} else {
showInputOptionsForKey(foregroundEffect_editor, "foregroundEffect", "enable", false);
$('#foregroundEffectHelpPanelId').hide();
}
foregroundEffect_editor.validate().length || window.readOnlyMode ? $('#btn_submit_foregroundEffect').attr('disabled', true) : $('#btn_submit_foregroundEffect').attr('disabled', false);
});
backgroundEffect_editor.on('change', function () {
var backgroundEffectEnable = backgroundEffect_editor.getEditor("root.backgroundEffect.enable").getValue();
if (backgroundEffectEnable) {
showInputOptionsForKey(backgroundEffect_editor, "backgroundEffect", "enable", true);
$('#backgroundEffectHelpPanelId').show();
} else {
showInputOptionsForKey(backgroundEffect_editor, "backgroundEffect", "enable", false);
$('#backgroundEffectHelpPanelId').hide();
}
backgroundEffect_editor.validate().length || window.readOnlyMode ? $('#btn_submit_backgroundEffect').attr('disabled', true) : $('#btn_submit_backgroundEffect').attr('disabled', false);
});
$('#btn_submit_foregroundEffect').off().on('click', function () {
var value = foregroundEffect_editor.getValue();
if (typeof value.foregroundEffect.effect == 'undefined')
value.foregroundEffect.effect = window.serverConfig.foregroundEffect.effect;
requestWriteConfig(value);
});
$('#btn_submit_backgroundEffect').off().on('click', function () {
var value = backgroundEffect_editor.getValue();
if (typeof value.backgroundEffect.effect == 'undefined')
value.backgroundEffect.effect = window.serverConfig.backgroundEffect.effect;
requestWriteConfig(value);
});
//create introduction
if (window.showOptHelp) {
if (EFFECTENGINE_ENABLED) {
createHint("intro", $.i18n('conf_effect_path_intro'), "editor_container_effects");
}
createHint("intro", $.i18n('conf_effect_fgeff_intro'), "editor_container_foregroundEffect");
createHint("intro", $.i18n('conf_effect_bgeff_intro'), "editor_container_backgroundEffect");
}
function updateEffectlist() {
var newEffects = window.serverInfo.effects;
if (newEffects.length != oldEffects.length) {
$('#root_foregroundEffect_effect').html('');
var usrEffArr = [];
var sysEffArr = [];
for (var i = 0; i < newEffects.length; i++) {
var effectName = newEffects[i].name;
if (!/^\:/.test(newEffects[i].file))
usrEffArr.push(effectName);
else
sysEffArr.push(effectName);
}
$('#root_foregroundEffect_effect').append(createSel(usrEffArr, $.i18n('remote_optgroup_usreffets')));
$('#root_foregroundEffect_effect').append(createSel(sysEffArr, $.i18n('remote_optgroup_syseffets')));
$('#root_backgroundEffect_effect').html($('#root_foregroundEffect_effect').html());
oldEffects = newEffects;
$('#root_foregroundEffect_effect').val(confFgEff);
$('#root_backgroundEffect_effect').val(confBgEff);
}
}
//interval update
$(window.hyperion).on("cmd-effects-update", function (event) {
window.serverInfo.effects = event.response.data.effects
updateEffectlist();
});
removeOverlay();
});