mirror of
				https://github.com/s00500/ESPUI.git
				synced 2025-11-03 23:03:23 +00:00 
			
		
		
		
	Added a check for an invalid json format to prevent the UI from crashing. Requests a new reload when the issue is encountered.
This commit is contained in:
		
							
								
								
									
										11
									
								
								data/js/controls.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								data/js/controls.js
									
									
									
									
										vendored
									
									
								
							@@ -230,13 +230,24 @@ function start() {
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  websock.onerror = function (evt) {
 | 
			
		||||
    console.log("websock Error");
 | 
			
		||||
    console.log(evt);
 | 
			
		||||
    conStatusError();
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  var handleEvent = function (evt) {
 | 
			
		||||
    console.log(evt);
 | 
			
		||||
    try
 | 
			
		||||
    {
 | 
			
		||||
      var data = JSON.parse(evt.data);
 | 
			
		||||
    }
 | 
			
		||||
    catch (Event)
 | 
			
		||||
    {
 | 
			
		||||
      console.error(Event);
 | 
			
		||||
      // start the update over again
 | 
			
		||||
      websock.send("uiok:" + 0);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    var e = document.body;
 | 
			
		||||
    var center = "";
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								data/js/controls.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								data/js/controls.min.js
									
									
									
									
										vendored
									
									
								
							@@ -7,7 +7,11 @@ function restart(){$(document).add("*").off();$("#row").html("");websock.close()
 | 
			
		||||
function conStatusError(){websockConnected=false;$("#conStatus").removeClass("color-green");$("#conStatus").addClass("color-red");$("#conStatus").html("Error / No Connection ↻");$("#conStatus").off();$("#conStatus").on({click:restart,});}
 | 
			
		||||
function handleVisibilityChange(){if(!websockConnected&&!document.hidden){restart();}}
 | 
			
		||||
function start(){document.addEventListener("visibilitychange",handleVisibilityChange,false);if(window.location.port!=""||window.location.port!=80||window.location.port!=443){websock=new WebSocket("ws://"+window.location.hostname+":"+window.location.port+"/ws");}else{websock=new WebSocket("ws://"+window.location.hostname+"/ws");}
 | 
			
		||||
websock.onopen=function(evt){console.log("websock open");$("#conStatus").addClass("color-green");$("#conStatus").text("Connected");websockConnected=true;};websock.onclose=function(evt){console.log("websock close");conStatusError();};websock.onerror=function(evt){console.log(evt);conStatusError();};var handleEvent=function(evt){console.log(evt);var data=JSON.parse(evt.data);var e=document.body;var center="";switch(data.type){case UI_INITIAL_GUI:$("#row").html("");$("#tabsnav").html("");$("#tabscontent").html("");if(data.sliderContinuous){sliderContinuous=data.sliderContinuous;}
 | 
			
		||||
websock.onopen=function(evt){console.log("websock open");$("#conStatus").addClass("color-green");$("#conStatus").text("Connected");websockConnected=true;};websock.onclose=function(evt){console.log("websock close");conStatusError();};websock.onerror=function(evt){console.log("websock Error");console.log(evt);conStatusError();};var handleEvent=function(evt){console.log(evt);try
 | 
			
		||||
{var data=JSON.parse(evt.data);}
 | 
			
		||||
catch(Event)
 | 
			
		||||
{console.error(Event);websock.send("uiok:"+0);return;}
 | 
			
		||||
var e=document.body;var center="";switch(data.type){case UI_INITIAL_GUI:$("#row").html("");$("#tabsnav").html("");$("#tabscontent").html("");if(data.sliderContinuous){sliderContinuous=data.sliderContinuous;}
 | 
			
		||||
data.controls.forEach(element=>{var fauxEvent={data:JSON.stringify(element),};handleEvent(fauxEvent);});if(data.totalcontrols>(data.controls.length-1)){websock.send("uiok:"+(data.controls.length-1));}
 | 
			
		||||
break;case UI_EXTEND_GUI:data.controls.forEach(element=>{var fauxEvent={data:JSON.stringify(element),};handleEvent(fauxEvent);});if(data.totalcontrols>data.startindex+(data.controls.length-1)){websock.send("uiok:"+(data.startindex+(data.controls.length-1)));}
 | 
			
		||||
break;case UI_RELOAD:window.location.reload();break;case UI_TITEL:document.title=data.label;$("#mainHeader").html(data.label);break;case UI_LABEL:case UI_NUMBER:case UI_TEXT_INPUT:case UI_SELECT:case UI_GAUGE:case UI_SEPARATOR:if(data.visible)addToHTML(data);break;case UI_BUTTON:if(data.visible){addToHTML(data);$("#btn"+data.id).on({touchstart:function(e){e.preventDefault();buttonclick(data.id,true);},touchend:function(e){e.preventDefault();buttonclick(data.id,false);},});}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user