From 4649786f68cb8281886e30ef1c665f85d95bf9c4 Mon Sep 17 00:00:00 2001 From: b1rdhous3 Date: Fri, 9 Sep 2016 10:15:35 +0200 Subject: [PATCH] Initial Write Config Support (#230) * Initial JSON Write * Initial Write Config Support * . --- assets/webconfig/js/content_generalconf.js | 80 ++++++++++++---------- assets/webconfig/js/hyperion.js | 12 +++- assets/webconfig/lang/de.json | 25 +++---- 3 files changed, 67 insertions(+), 50 deletions(-) diff --git a/assets/webconfig/js/content_generalconf.js b/assets/webconfig/js/content_generalconf.js index c957d451..c3af938a 100644 --- a/assets/webconfig/js/content_generalconf.js +++ b/assets/webconfig/js/content_generalconf.js @@ -25,23 +25,23 @@ $(hyperion).one("cmd-config-getschema", function(event) { //removeAdvanced(parsedConfSchemaJSON, []); // not working atm //console.log(JSON.stringify(parsedConfSchemaJSON)); schema = parsedConfSchemaJSON.properties; - schema_blackborderdetector = schema.blackborderdetector; - schema_color = schema.color; - schema_effects = schema.effects; - schema_forwarder = schema.forwarder; - schema_initialEffect = schema.initialEffect; - schema_kodiVideoChecker = schema.kodiVideoChecker; - schema_smoothing = schema.smoothing; - schema_logger = schema.logger; - schema_jsonServer = schema.jsonServer; - schema_protoServer = schema.protoServer; - schema_boblightServer = schema.boblightServer; - schema_udpListener = schema.udpListener; - schema_webConfig = schema.webConfig; + blackborderdetector = schema.blackborderdetector; + color = schema.color; + effects = schema.effects; + forwarder = schema.forwarder; + initialEffect = schema.initialEffect; + kodiVideoChecker = schema.kodiVideoChecker; + smoothing = schema.smoothing; + logger = schema.logger; + jsonServer = schema.jsonServer; + protoServer = schema.protoServer; + boblightServer = schema.boblightServer; + udpListener = schema.udpListener; + webConfig = schema.webConfig; var element = document.getElementById('editor_holder'); //JSONEditor.defaults.options.theme = 'bootstrap3'; - + var general_conf_editor = new JSONEditor(element,{ theme: 'bootstrap3', disable_collapse: 'true', @@ -52,32 +52,42 @@ $(hyperion).one("cmd-config-getschema", function(event) { schema: { title:' ', properties: { - schema_blackborderdetector, - schema_color, - schema_effects, - schema_forwarder, - schema_initialEffect, - schema_kodiVideoChecker, - schema_smoothing, - schema_logger, - schema_jsonServer, - schema_protoServer, - schema_boblightServer, - schema_udpListener, - schema_webConfig + /*blackborderdetector, + color, + effects, + forwarder, + initialEffect, + kodiVideoChecker, + smoothing,*/ + logger//, + /*jsonServer, + protoServer, + boblightServer, + udpListener, + webConfig*/ } } }); -}); + //Called everytime a Input Field is changed = No need for save button + general_conf_editor.on('change',function() { + console.log(JSON.stringify(general_conf_editor.getValue())); + requestWriteConfig(general_conf_editor.getValue()); + }); + + //Alternative Function with submit button to get Values + document.getElementById('submit').addEventListener('click',function() { + console.log(general_conf_editor.getValue()); + }); + + $(hyperion).on("cmd-config-setconfig",function(event){ + parsedServerInfoJSON = event.response; + console.log(parsedServerInfoJSON); + }); + +}); $(document).ready( function() { requestServerConfigSchema(); - - document.getElementById('submit').addEventListener('click',function() { - // Get the value from the editor - //console.log(general_conf_editor.getValue()); - }); -// $("[type='checkbox']").bootstrapSwitch(); + //$("[type='checkbox']").bootstrapSwitch(); }); - diff --git a/assets/webconfig/js/hyperion.js b/assets/webconfig/js/hyperion.js index 7048a00c..129bb578 100644 --- a/assets/webconfig/js/hyperion.js +++ b/assets/webconfig/js/hyperion.js @@ -38,7 +38,7 @@ var cronId = 0; var ledStreamActive=false; var watchdog = 0; -// +// function cron() { if ( watchdog > 3) @@ -67,7 +67,7 @@ function initWebSocket() websocket.onopen = function (event) { $(hyperion).trigger({type:"open"}); - + $(hyperion).on("cmd-serverinfo", function(event) { watchdog = 0; }); @@ -183,7 +183,7 @@ function requestSetComponentState(comp, state){ console.log(comp+' state: '+state_str); } -function requestSetSource( prio ) +function requestSetSource(prio) { if ( prio == "auto" ) websocket.send('{"command":"sourceselect", "tan":'+wsTan+', "auto" : true}'); @@ -191,3 +191,9 @@ function requestSetSource( prio ) websocket.send('{"command":"sourceselect", "tan":'+wsTan+', "priority" : '+prio+'}'); } +function requestWriteConfig(config, create, overwrite) +{ + var create = (typeof create !== 'undefined') ? create : false; + var overwrite = (typeof overwrite !== 'undefined') ? overwrite : false; + websocket.send('{"command":"config","subcommand":"setconfig", "tan":'+wsTan+', "config":'+JSON.stringify(config)+',"create":'+create+', "overwrite":'+overwrite+'}'); +} diff --git a/assets/webconfig/lang/de.json b/assets/webconfig/lang/de.json index 57735fac..0e4f46ee 100644 --- a/assets/webconfig/lang/de.json +++ b/assets/webconfig/lang/de.json @@ -31,20 +31,21 @@ "main_menu_update_token" : "Update", "main_menu_system_token" : "System", "main_menu_input_selection_token" : "Eingabeauswahl", - "main_menu_general_conf_token":"Allgemein", - "main_menu_leds_conf_token":"LEDs", - "remote_colors_label_color":"Farbe: ", - "remote_colors_button_reset":"Farbe zurücksetzen", + "main_menu_general_conf_token" : "Allgemein", + "main_menu_leds_conf_token" : "LEDs", + "main_menu_grabber_conf_token" : "Aufnahme Hardware", + "remote_colors_label_color" : "Farbe: ", + "remote_colors_button_reset" : "Farbe zurücksetzen", "remote_effects_intro" : "Die Effekt-Fernbedienung ermöglicht es dir Effekte zu starten für Demonstrations- oder Testzwecke. Vergessse nicht den Effekt wieder zu stoppen, wenn du fertig bist.", - "remote_effects_label_effects":"Effekte", - "remote_effects_label_stopeffect":"Stoppe Effekte", + "remote_effects_label_effects" : "Effekte", + "remote_effects_label_stopeffect" : "Stoppe Effekte", "remote_components_intro" : "Die Komponenten-Fenbedienung ermöglicht es dir Komponenten von Hyperion zu starten und stoppen. Beachte: Dies ist nur temporär und geht nach einem Neustart verloren. Möchtest du dauerhaft Komponenten aktivieren/deaktivieren benutze die Konfigurationsseiten.", - "hue_button_create_user_token":"Benutzer anlegen", - "hue_press_link_modal":"Bitte Link Taste auf der Hue Bridge drücken.", - "hue_failure_connection_token":"Connection Timeout. Bitte drücke die Taste rechtzeitig.", - "hue_button_pair":"Verbinden", - "hue_failure_ip_token":"Bitte überprüfe deine IP Adresse.", - "hue_label_username":"Benutzername:", + "hue_button_create_user_token" : "Benutzer anlegen", + "hue_press_link_modal" : "Bitte Link Taste auf der Hue Bridge drücken.", + "hue_failure_connection_token" : "Connection Timeout. Bitte drücke die Taste rechtzeitig.", + "hue_button_pair" : "Verbinden", + "hue_failure_ip_token" : "Bitte überprüfe deine IP Adresse.", + "hue_label_username" : "Benutzername:", "conf_kodi_label_title" : "Kodi Überwachung", "conf_kodi_label_intro" : "Die Kodi Überwachung ermöglicht es dir abhängig von dem Kodi Status dein ambient light an oder abzuschalten. Dies ist nicht limitiert auf das selbe Gerät. Du kannst jedes Kodi in deinem lokalen Netzwerk überwachen lassen.", "support_label_title" : "Unterstütze Hyperion",