diff --git a/assets/webconfig/content/conf_leds.html b/assets/webconfig/content/conf_leds.html index 7a834b12..c0b35256 100644 --- a/assets/webconfig/content/conf_leds.html +++ b/assets/webconfig/content/conf_leds.html @@ -182,7 +182,6 @@
@@ -255,7 +254,6 @@ diff --git a/assets/webconfig/i18n/de.json b/assets/webconfig/i18n/de.json index 605f1d2f..eaa77ede 100644 --- a/assets/webconfig/i18n/de.json +++ b/assets/webconfig/i18n/de.json @@ -160,7 +160,6 @@ "conf_leds_layout_cl_reversdir": "Richtung umkehren", "conf_leds_layout_cl_hleddepth": "Horizontale LED Tiefe", "conf_leds_layout_cl_vleddepth": "Vertikale LED Tiefe", - "conf_leds_layout_cl_generate": "Generiere LED Konfiguration", "conf_leds_layout_cl_edgegap": "Rahmenabstand", "conf_leds_layout_cl_cornergap": "Eckabstand", "conf_leds_layout_cl_overlap": "Überlappung", diff --git a/assets/webconfig/i18n/en.json b/assets/webconfig/i18n/en.json index ac312d12..a37e328a 100644 --- a/assets/webconfig/i18n/en.json +++ b/assets/webconfig/i18n/en.json @@ -159,7 +159,6 @@ "conf_leds_layout_cl_reversdir" : "Reverse direction", "conf_leds_layout_cl_hleddepth" : "Horizontal LED depth", "conf_leds_layout_cl_vleddepth" : "Vertical LED depth", - "conf_leds_layout_cl_generate" : "Generate LED configuration", "conf_leds_layout_cl_edgegap" : "Edge Gap", "conf_leds_layout_cl_cornergap" : "Corner Gap", "conf_leds_layout_cl_overlap" : "Overlap", diff --git a/assets/webconfig/js/content_dashboard.js b/assets/webconfig/js/content_dashboard.js index d5d145d4..6fc538dc 100644 --- a/assets/webconfig/js/content_dashboard.js +++ b/assets/webconfig/js/content_dashboard.js @@ -74,7 +74,7 @@ $(document).ready( function() { } // add more info - $('#dash_leddevice').html(window.serverInfo.ledDevices.active); + $('#dash_leddevice').html(window.serverConfig.device.type); $('#dash_currv').html(window.currentChannel+' '+window.currentVersion); $('#dash_instance').html(window.currentHyperionInstanceName); $('#dash_ports').html(window.serverConfig.flatbufServer.port+' | '+window.serverConfig.protoServer.port); diff --git a/assets/webconfig/js/content_index.js b/assets/webconfig/js/content_index.js index e154572c..25015ea2 100644 --- a/assets/webconfig/js/content_index.js +++ b/assets/webconfig/js/content_index.js @@ -142,6 +142,10 @@ $(document).ready( function() { if(!isInData) { + //Delete Storage information about the last used but now stopped instance + if (getStorage('lastSelectedInstance', false)) + removeStorage('lastSelectedInstance', false) + currentHyperionInstance = 0; currentHyperionInstanceName = getInstanceNameByIndex(0); requestServerConfig(); diff --git a/assets/webconfig/js/content_leds.js b/assets/webconfig/js/content_leds.js index 88ca8cd9..d4c0add2 100644 --- a/assets/webconfig/js/content_leds.js +++ b/assets/webconfig/js/content_leds.js @@ -2,6 +2,7 @@ var ledsCustomCfgInitialized = false; var finalLedArray = []; var conf_editor = null; +var aceEdt = null; function round(number) { var factor = Math.pow(10, 4); @@ -53,6 +54,9 @@ function createLedPreview(leds, origin){ if($('#leds_prev_toggle_num').hasClass('btn-success')) $('.led_prev_num').css("display", "inline"); + // update ace Editor content + aceEdt.set(finalLedArray); + } function createClassicLeds(){ @@ -343,16 +347,9 @@ $(document).ready(function() { // check access level and adjust ui if(storedAccess == "default") { - $('#btn_ma_generate').toggle(false); - $('#btn_cl_generate').toggle(false); $('#texfield_panel').toggle(false); $('#previewcreator').toggle(false); } - else - { - $('#btn_ma_save').toggle(false); - $('#btn_cl_save').toggle(false); - } //Wiki link $('#leds_wl').append(''+$.i18n('general_wiki_moreto',$.i18n('conf_leds_nav_label_ledlayout'))+buildWL("user/moretopics/ledarea","Wiki")+'
'); @@ -371,7 +368,7 @@ $(document).ready(function() { // v4 of json schema with diff required assignment - remove when hyperion schema moved to v4 var ledschema = {"items":{"additionalProperties":false,"required":["h","v"],"properties":{"colorOrder":{"enum":["rgb","bgr","rbg","brg","gbr","grb"],"type":"string"},"h":{"additionalProperties":false,"properties":{"max":{"maximum":1,"minimum":0,"type":"number"},"min":{"maximum":1,"minimum":0,"type":"number"}},"type":"object"},"v":{"additionalProperties":false,"properties":{"max":{"maximum":1,"minimum":0,"type":"number"},"min":{"maximum":1,"minimum":0,"type":"number"}},"type":"object"}},"type":"object"},"type":"array"}; //create jsonace editor - var aceEdt = new JSONACEEditor(document.getElementById("aceedit"),{ + aceEdt = new JSONACEEditor(document.getElementById("aceedit"),{ mode: 'code', schema: ledschema, onChange: function(){ @@ -411,17 +408,6 @@ $(document).ready(function() { // leds to finalLedArray finalLedArray = window.serverConfig.leds; - // cl/ma leds push to textfield - $('#btn_cl_generate, #btn_ma_generate').off().on("click", function(e) { - if(e.currentTarget.id == "btn_cl_generate") - $('#collapse1').collapse('hide'); - else - $('#collapse2').collapse('hide'); - - aceEdt.set(finalLedArray); - $('#collapse4').collapse('show'); - }); - // create and update editor $("#leddevices").off().on("change", function() { var generalOptions = window.serverSchema.properties.device; @@ -436,7 +422,7 @@ $(document).ready(function() { var values_general = {}; var values_specific = {}; - var isCurrentDevice = (window.serverInfo.ledDevices.active == $(this).val()); + var isCurrentDevice = (window.serverConfig.device.type == $(this).val()); for(var key in window.serverConfig.device){ if (key != "type" && key in generalOptions.properties) @@ -507,7 +493,7 @@ $(document).ready(function() { $("#leddevices").append(createSel(optArr[3], $.i18n('conf_leds_optgroup_network'))); $("#leddevices").append(createSel(optArr[4], $.i18n('conf_leds_optgroup_usb'))); $("#leddevices").append(createSel(optArr[5], $.i18n('conf_leds_optgroup_debug'))); - $("#leddevices").val(window.serverInfo.ledDevices.active); + $("#leddevices").val(window.serverConfig.device.type); $("#leddevices").trigger("change"); // validate textfield and update preview diff --git a/assets/webconfig/js/ui_utils.js b/assets/webconfig/js/ui_utils.js index 2c3b8ac7..bb386b11 100644 --- a/assets/webconfig/js/ui_utils.js +++ b/assets/webconfig/js/ui_utils.js @@ -40,6 +40,17 @@ function setStorage(item, value, session) } } +function removeStorage(item, session) +{ + if(storageComp()) + { + if(session === true) + sessionStorage.removeItem(item); + else + localStorage.removeItem(item); + } +} + function debugMessage(msg) { if (window.debugMessagesActive) diff --git a/assets/webconfig/js/wizard.js b/assets/webconfig/js/wizard.js index 427b791b..b5f93834 100644 --- a/assets/webconfig/js/wizard.js +++ b/assets/webconfig/js/wizard.js @@ -705,17 +705,21 @@ function beginWizardHue() checkHueBridge(checkUserResult,$('#user').val() ? $('#user').val() : "newdeveloper"); }); - //create hue led config - for(var key in lightIDs) + $('#btn_wiz_save').off().on("click", function(){ + var hueLedConfig = []; + var finalLightIds = []; + + //create hue led config + for(var key in lightIDs) + { + if($('#hue_'+key).val() != "disabled") { - if($('#hue_'+key).val() != "disabled") - { - hueLedConfig.push(assignHuePos(key, $('#hue_'+key).val())); - finalLightIds.push(parseInt(key)); - } + hueLedConfig.push(assignHuePos(key, $('#hue_'+key).val())); + finalLightIds.push(parseInt(key)); } } + window.serverConfig.leds = hueLedConfig; //Adjust gamma, brightness and compensation diff --git a/libsrc/api/JsonAPI.cpp b/libsrc/api/JsonAPI.cpp index 66395dc9..805fb46e 100644 --- a/libsrc/api/JsonAPI.cpp +++ b/libsrc/api/JsonAPI.cpp @@ -538,7 +538,6 @@ void JsonAPI::handleServerInfoCommand(const QJsonObject& message, const QString& // get available led devices QJsonObject ledDevices; - ledDevices["active"] = _hyperion->getActiveDevice(); QJsonArray availableLedDevices; for (auto dev: LedDeviceWrapper::getDeviceMap()) { diff --git a/libsrc/hyperion/Hyperion.cpp b/libsrc/hyperion/Hyperion.cpp index f91b8e60..908ac70d 100644 --- a/libsrc/hyperion/Hyperion.cpp +++ b/libsrc/hyperion/Hyperion.cpp @@ -235,6 +235,12 @@ void Hyperion::handleSettingsUpdate(const settings::type& type, const QJsonDocum { _ledString = hyperion::createLedString(getSetting(settings::LEDS).array(), hyperion::createColorOrder(dev)); _imageProcessor->setLedString(_ledString); + + _ledStringColorOrder.clear(); + for (Led& led : _ledString.leds()) + { + _ledStringColorOrder.push_back(led.colorOrder); + } } // do always reinit until the led devices can handle dynamic changes