mirror of
				https://github.com/hyperion-project/hyperion.ng.git
				synced 2025-03-01 10:33:28 +00:00 
			
		
		
		
	* Allow build, if no grabbers are enabled * Align available functions to right Qt version * Update to next development version * Align available functions to right Qt version * fix workflows (apt/nightly) * Disable QNetworkConfigurationManager deprecation warnings * Initial go on Smart Pointers * Add Deallocation * Correct QT_WARNING_DISABLE_DEPRECATED (available since 5.9) * Cluster Build Variables * Hyperion Light * Address build warnings * Hyperion Light - UI * Update Protobuf to latest master * Removed compiler warnings * Added restart ability to systray * Correct Protobuf * Ignore 'no-return' warning on protobuf build * hyperion-remote: Fix auto discovery of hyperion server * Fix Qt version override * Update changelog * Remove Grabber Components, if no Grabber exists * Standalone Grabber - Fix fps default * Remote Control - Have Source Selction accrosswhole screen * Enable Blackborder detection only, if relevant input sources available * Enable Blackborder detection only, if relevant input sources available * Remote UI - rearrange containers * Checkout * Fix compilation on windows * Re-added qmdnsengine template cmake * chrono added for linux * Removed existing AVAHI/Bonjour, allow to enable/disable mDNS * hyperiond macos typo fix * Fix macOS Bundle build * Fix macOS bundle info details * Correct CMake files * Removed existing AVAHI/Bonjour (2) * Share hyperion's services via mDNS * Add mDNS Browser and mDNS for LED-Devices * Support mDNS discovery for standalone grabbers * Remove ZLib Dependency & Cleanup * mDNS - hanle 2.local2 an ".local." domains equally * Hue - Link discovery to bridge class, workaround port 443 for mDNS discovery * Fix save button state when switching between devices * Removed sessions (of other hyperions) * mDNS Publisher - Simplify service naming * mDNS refactoring & Forwarder discovery * mDNS Updates to use device service name * Consistency of standalone grabbers with mDNS Service Registry * Merge branch 'hyperion-project:master' into mDNS * Start JSON and WebServers only after Instance 0 is available * Remove bespoke qDebug Output again * MDNS updates and refactor Forwarder * Minor updates * Upgrade to CMake 3.1 * typo * macOS fix * Correct merge * - Remove dynamic linker flag from standalone dispmanX Grabber - Added ability to use system qmdns libs * Cec handler library will load at runtime * typo fix * protobuf changes * mDNS changes for Windows/macOS * test window build qmdnsengine * absolute path to protobuf cmake dir * Rework Hue Wizard supporting mDNS * LED-Devices - Retry support + Refactoring (excl. Hue) * LED-Devices - Refactoring/Retry support Hue + additional alignments * Address LGTM findings * Fix CI-Build, revert test changes * Build Windows in Release mode to avoid python problem * Correct that WebServerObject is available earlier * Ensure that instance name in logs for one instance are presented * Update content LEDs * Rework mDNS Address lookup * Fix LED UI * Fix for non mDNS Services (ignore default port) * Disbale device when now input is available * Revert back some updates, ensure last color is updated when switched on * Handle reopening case and changed IP, port for API-calls * Add UPD-DDP Device * WLED support for DDP * Fix printout * LEDDevice - Allow more retries, udapte defaults * LED-Net Devices - Select Custom device, if configured Co-authored-by: Paulchen Panther <16664240+Paulchen-Panther@users.noreply.github.com> Co-authored-by: Paulchen Panther <Paulchen-Panter@protonmail.com>
		
			
				
	
	
		
			211 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			211 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var conf_editor = null;
 | |
| var createdCont = false;
 | |
| var isScroll = true;
 | |
| 
 | |
| performTranslation();
 | |
| requestLoggingStop();
 | |
| 
 | |
| $(document).ready(function () {
 | |
| 
 | |
|   requestLoggingStart();
 | |
| 
 | |
|   $('#conf_cont').append(createOptPanel('fa-reorder', $.i18n("edt_conf_log_heading_title"), 'editor_container', 'btn_submit'));
 | |
|   if (window.showOptHelp) {
 | |
|     $('#conf_cont').append(createHelpTable(window.schema.logger.properties, $.i18n("edt_conf_log_heading_title")));
 | |
|     createHintH("intro", $.i18n('conf_logging_label_intro'), "log_head");
 | |
|   }
 | |
| 
 | |
|   conf_editor = createJsonEditor('editor_container', {
 | |
|     logger: window.schema.logger
 | |
|   }, true, true);
 | |
| 
 | |
|   conf_editor.on('change', function () {
 | |
|     conf_editor.validate().length || window.readOnlyMode ? $('#btn_submit').prop('disabled', true) : $('#btn_submit').prop('disabled', false);
 | |
|   });
 | |
| 
 | |
|   $('#btn_submit').off().on('click', function () {
 | |
| 
 | |
|     var displayedLogLevel = conf_editor.getEditor("root.logger.level").getValue();
 | |
|     var newLogLevel = { logger: {} };
 | |
|     newLogLevel.logger.level = displayedLogLevel;
 | |
| 
 | |
|     requestWriteConfig(newLogLevel);
 | |
|   });
 | |
| 
 | |
|   function infoSummary() {
 | |
|     var info = "";
 | |
| 
 | |
|     info += 'Hyperion System Summary Report (' + window.serverConfig.general.name + '), Reported instance: ' + window.currentHyperionInstanceName + '\n';
 | |
| 
 | |
|     info += "\n< ----- System information -------------------- >\n";
 | |
|     info += getSystemInfo() + '\n';
 | |
| 
 | |
|     info += "\n< ----- Configured Instances ------------------ >\n";
 | |
|     var instances = window.serverInfo.instance;
 | |
|     for (var i = 0; i < instances.length; i++) {
 | |
|       info += instances[i].instance + ': ' + instances[i].friendly_name + ' Running: ' + instances[i].running + '\n';
 | |
|     }
 | |
| 
 | |
|     info += "\n< ----- This instance's priorities ------------ >\n";
 | |
|     var prios = window.serverInfo.priorities;
 | |
|     for (var i = 0; i < prios.length; i++) {
 | |
|       info += prios[i].priority + ': ';
 | |
|       if (prios[i].visible) {
 | |
|         info += ' VISIBLE!';
 | |
|       }
 | |
|       else {
 | |
|         info += '         ';
 | |
|       }
 | |
|       info += ' (' + prios[i].componentId + ') Owner: ' + prios[i].owner + '\n';
 | |
|     }
 | |
|     info += 'priorities_autoselect: ' + window.serverInfo.priorities_autoselect + '\n';
 | |
| 
 | |
|     info += "\n< ----- This instance components' status ------->\n";
 | |
|     var comps = window.serverInfo.components;
 | |
|     for (var i = 0; i < comps.length; i++) {
 | |
|       info += comps[i].name + ' - ' + comps[i].enabled + '\n';
 | |
|     }
 | |
| 
 | |
|     info += "\n< ----- This instance's configuration --------- >\n";
 | |
|     info += JSON.stringify(window.serverConfig) + '\n';
 | |
| 
 | |
|     info += "\n< ----- Current Log --------------------------- >\n";
 | |
|     var logMsgs = document.getElementById("logmessages").textContent;
 | |
|     if (logMsgs.length !== 0) {
 | |
|       info += logMsgs;
 | |
|     } else {
 | |
|       info += "Log is empty!";
 | |
|     }
 | |
| 
 | |
|     return info;
 | |
|   }
 | |
| 
 | |
|   function createLogContainer() {
 | |
| 
 | |
|     const isScrollEnableStyle = (isScroll ? "checked" : "");
 | |
| 
 | |
|     $('#log_content').html('<pre><div id="logmessages" style="overflow:scroll;max-height:400px"></div></pre>');
 | |
|     $('#log_footer').append('<label class="checkbox-inline">'
 | |
|       + '<input id = "btn_scroll"' + isScrollEnableStyle + ' type = "checkbox"'
 | |
|       + 'data-toggle="toggle" data-onstyle="success" data-on="' + $.i18n('general_btn_on') + '" data-off="' + $.i18n('general_btn_off') + '">'
 | |
|       + $.i18n('conf_logging_btn_autoscroll') + '</label>'
 | |
|     );
 | |
| 
 | |
|     $(`#btn_scroll`).bootstrapToggle();
 | |
|     $(`#btn_scroll`).on("change", e => {
 | |
|       if (e.currentTarget.checked) {
 | |
|         //Scroll to end of log
 | |
|         isScroll = true;
 | |
|         if ($("#logmessages").length > 0) {
 | |
|           $('#logmessages')[0].scrollTop = $('#logmessages')[0].scrollHeight;
 | |
|         }
 | |
|       } else {
 | |
|         isScroll = false;
 | |
|       }
 | |
|     });
 | |
| 
 | |
|     $('#log_footer').append('<button class="btn btn-primary pull-right" id="btn_clipboard"><i class="fa fa-fw fa-clipboard"></i>' + $.i18n("conf_logging_btn_clipboard") + '</button>');
 | |
| 
 | |
|     $('#btn_clipboard').off().on('click', function () {
 | |
|       const temp = document.createElement('textarea');
 | |
|       temp.textContent = infoSummary();
 | |
|       document.body.append(temp);
 | |
|       temp.select();
 | |
|       document.execCommand("copy");
 | |
|       temp.remove();
 | |
|     });
 | |
|   }
 | |
| 
 | |
|   function updateLogOutput(messages) {
 | |
| 
 | |
|     if (messages.length != 0) {
 | |
| 
 | |
|       for (var idx = 0; idx < messages.length; idx++) {
 | |
|         var logger_name = messages[idx].loggerName;
 | |
|         var logger_subname = messages[idx].loggerSubName;
 | |
|         var function_ = messages[idx].function;
 | |
|         var line = messages[idx].line;
 | |
|         var file_name = messages[idx].fileName;
 | |
|         var msg = encodeHTML(messages[idx].message);
 | |
|         var level_string = messages[idx].levelString;
 | |
|         var utime = messages[idx].utime;
 | |
| 
 | |
|         var debug = "";
 | |
|         if (level_string == "DEBUG") {
 | |
|           debug = "(" + file_name + ":" + line + ":" + function_ + "()) ";
 | |
|         }
 | |
| 
 | |
|         var date = new Date(parseInt(utime));
 | |
|         var subComponent = "";
 | |
|         if (window.serverInfo.instance.length >= 1) {
 | |
|           if (logger_subname.startsWith("I")) {
 | |
|             var instanceNum = logger_subname.substring(1);
 | |
|             if (window.serverInfo.instance[instanceNum]) {
 | |
|               subComponent = window.serverInfo.instance[instanceNum].friendly_name;
 | |
|             } else {
 | |
|               subComponent = instanceNum;
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|         var newLogLine = date.toISOString() + " [" + logger_name + (subComponent ? "|" + subComponent : "") + "] (" + level_string + ") " + debug + msg;
 | |
| 
 | |
|         $("#logmessages").append("<code>" + newLogLine + "</code>\n");
 | |
|       }
 | |
| 
 | |
|       if (isScroll && $("#logmessages").length > 0) {
 | |
|         $('#logmessages').stop().animate({
 | |
|           scrollTop: $('#logmessages')[0].scrollHeight
 | |
|         }, 800);
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   if (!window.loggingHandlerInstalled) {
 | |
|     window.loggingHandlerInstalled = true;
 | |
| 
 | |
|     $(window.hyperion).on("cmd-logging-update", function (event) {
 | |
| 
 | |
|       var messages = (event.response.result.messages);
 | |
| 
 | |
|       if (messages.length != 0) {
 | |
|         if (!createdCont) {
 | |
|           createLogContainer();
 | |
|           createdCont = true;
 | |
|         }
 | |
|         updateLogOutput(messages)
 | |
|       }
 | |
|     });
 | |
|   }
 | |
| 
 | |
|   $(window.hyperion).on("cmd-settings-update", function (event) {
 | |
| 
 | |
|     var obj = event.response.data
 | |
|     if (obj.logger) {
 | |
|       Object.getOwnPropertyNames(obj).forEach(function (val, idx, array) {
 | |
|         window.serverConfig[val] = obj[val];
 | |
|       });
 | |
| 
 | |
|       var currentlogLevel = window.serverConfig.logger.level;
 | |
|       conf_editor.getEditor("root.logger.level").setValue(currentlogLevel);
 | |
|       location.reload();
 | |
|     }
 | |
| 
 | |
|   });
 | |
| 
 | |
|   // toggle fullscreen button in log output
 | |
|   $(".fullscreen-btn").mousedown(function(e) {
 | |
|     e.preventDefault();
 | |
|   });
 | |
| 
 | |
|   $(".fullscreen-btn").click(function(e) {
 | |
|     e.preventDefault();
 | |
|     $(this).children('i')
 | |
|       .toggleClass('fa-expand')
 | |
|       .toggleClass('fa-compress');
 | |
|     $('#conf_cont').toggle();
 | |
|     $('#logmessages').css('max-height', $('#logmessages').css('max-height') !== 'none' ? 'none' : '400px' );
 | |
|   });
 | |
| 
 | |
|   removeOverlay();
 | |
| });
 |