forked from cory/tildefriends
		
	Make some attempt to restore some editor/stats/... state using localStorage.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3855 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
		| @@ -129,11 +129,13 @@ function socket(request, response, client) { | |||||||
| 					setTimeout(ping, process.timeout); | 					setTimeout(ping, process.timeout); | ||||||
| 				} | 				} | ||||||
| 			} else if (message.action == 'enableStats') { | 			} else if (message.action == 'enableStats') { | ||||||
|  | 				if (process) { | ||||||
| 					process.stats = message.enabled; | 					process.stats = message.enabled; | ||||||
| 					if (!gStatsTimer) { | 					if (!gStatsTimer) { | ||||||
| 						sendStats(); | 						sendStats(); | ||||||
| 						gStatsTimer = true; | 						gStatsTimer = true; | ||||||
| 					} | 					} | ||||||
|  | 				} | ||||||
| 			} else { | 			} else { | ||||||
| 				if (process && process.eventHandlers['message']) { | 				if (process && process.eventHandlers['message']) { | ||||||
| 					await invoke(process.eventHandlers['message'], [message]); | 					await invoke(process.eventHandlers['message'], [message]); | ||||||
|   | |||||||
| @@ -82,6 +82,7 @@ function edit() { | |||||||
| 		return; | 		return; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	window.localStorage.setItem('editing', '1'); | ||||||
| 	if (gSplit) { | 	if (gSplit) { | ||||||
| 		gSplit.destroy(); | 		gSplit.destroy(); | ||||||
| 		gSplit = undefined; | 		gSplit = undefined; | ||||||
| @@ -114,10 +115,12 @@ function edit() { | |||||||
| } | } | ||||||
|  |  | ||||||
| function hideFiles() { | function hideFiles() { | ||||||
|  | 	window.localStorage.setItem('files', '0'); | ||||||
| 	document.getElementById('filesPane').classList.add('collapsed'); | 	document.getElementById('filesPane').classList.add('collapsed'); | ||||||
| } | } | ||||||
|  |  | ||||||
| function showFiles() { | function showFiles() { | ||||||
|  | 	window.localStorage.setItem('files', '1'); | ||||||
| 	document.getElementById('filesPane').classList.remove('collapsed'); | 	document.getElementById('filesPane').classList.remove('collapsed'); | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -163,11 +166,13 @@ function trace() { | |||||||
| } | } | ||||||
|  |  | ||||||
| function stats() { | function stats() { | ||||||
|  | 	window.localStorage.setItem('stats', '1'); | ||||||
| 	document.getElementById("statsPane").style.display = 'flex'; | 	document.getElementById("statsPane").style.display = 'flex'; | ||||||
| 	send({action: 'enableStats', enabled: true}); | 	send({action: 'enableStats', enabled: true}); | ||||||
| } | } | ||||||
|  |  | ||||||
| function closeStats() { | function closeStats() { | ||||||
|  | 	window.localStorage.setItem('stats', '0'); | ||||||
| 	document.getElementById("statsPane").style.display = 'none'; | 	document.getElementById("statsPane").style.display = 'none'; | ||||||
| 	send({action: 'enableStats', enabled: false}); | 	send({action: 'enableStats', enabled: false}); | ||||||
| } | } | ||||||
| @@ -254,6 +259,7 @@ function load(path) { | |||||||
| } | } | ||||||
|  |  | ||||||
| function closeEditor() { | function closeEditor() { | ||||||
|  | 	window.localStorage.setItem('editing', '0'); | ||||||
| 	document.getElementById("editPane").style.display = 'none'; | 	document.getElementById("editPane").style.display = 'none'; | ||||||
| 	if (gSplit) { | 	if (gSplit) { | ||||||
| 		gSplit.destroy(); | 		gSplit.destroy(); | ||||||
| @@ -391,6 +397,10 @@ function receive(message) { | |||||||
| 		if (window.location.hash) { | 		if (window.location.hash) { | ||||||
| 			send({event: "hashChange", hash: window.location.hash}); | 			send({event: "hashChange", hash: window.location.hash}); | ||||||
| 		} | 		} | ||||||
|  | 		if (window.localStorage.getItem('stats') == '1') { | ||||||
|  | 			/* Stats were opened before we connected. */ | ||||||
|  | 			send({action: 'enableStats', enabled: true}); | ||||||
|  | 		} | ||||||
| 	} else if (message && message.action == "setDocument") { | 	} else if (message && message.action == "setDocument") { | ||||||
| 		var iframe = document.getElementById("document"); | 		var iframe = document.getElementById("document"); | ||||||
| 		iframe.srcdoc = message.content; | 		iframe.srcdoc = message.content; | ||||||
| @@ -427,10 +437,11 @@ function receive(message) { | |||||||
| 					timeseries: new TimeSeries(), | 					timeseries: new TimeSeries(), | ||||||
| 				}; | 				}; | ||||||
| 				gGraphs[key] = graph; | 				gGraphs[key] = graph; | ||||||
| 				graph.canvas.width = '320'; | 				graph.canvas.width = 240; | ||||||
| 				graph.canvas.width = '240'; | 				graph.canvas.height = 64; | ||||||
| 				var div = document.createElement('div'); | 				var div = document.createElement('div'); | ||||||
| 				div.innerText = key; | 				div.innerText = key; | ||||||
|  | 				div.style.flex = '0'; | ||||||
| 				document.getElementById('graphs').appendChild(div); | 				document.getElementById('graphs').appendChild(div); | ||||||
| 				document.getElementById('graphs').appendChild(graph.canvas); | 				document.getElementById('graphs').appendChild(graph.canvas); | ||||||
| 				graph.chart.streamTo(graph.canvas, 1000); | 				graph.chart.streamTo(graph.canvas, 1000); | ||||||
| @@ -783,4 +794,20 @@ window.addEventListener("load", function() { | |||||||
| 	} | 	} | ||||||
| 	enableDragDrop(); | 	enableDragDrop(); | ||||||
| 	connectSocket(window.location.pathname); | 	connectSocket(window.location.pathname); | ||||||
|  |  | ||||||
|  | 	if (window.localStorage.getItem('editing') == '1') { | ||||||
|  | 		edit(); | ||||||
|  | 	} else { | ||||||
|  | 		closeEditor(); | ||||||
|  | 	} | ||||||
|  | 	if (window.localStorage.getItem('files') == '1') { | ||||||
|  | 		showFiles(); | ||||||
|  | 	} else { | ||||||
|  | 		hideFiles(); | ||||||
|  | 	} | ||||||
|  | 	if (window.localStorage.getItem('stats') == '1') { | ||||||
|  | 		stats(); | ||||||
|  | 	} else { | ||||||
|  | 		closeStats(); | ||||||
|  | 	} | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -19,11 +19,11 @@ | |||||||
| 			<span id="login"></span> | 			<span id="login"></span> | ||||||
| 		</div> | 		</div> | ||||||
| 		<div id="content" class="hbox" style="flex: 1 1; width: 100%"> | 		<div id="content" class="hbox" style="flex: 1 1; width: 100%"> | ||||||
| 			<div id="statsPane" class="vbox" style="display: none; flex 1 0 320px"> | 			<div id="statsPane" class="vbox" style="display: none; flex 1 1"> | ||||||
| 				<div class="hbox"> | 				<div class="hbox"> | ||||||
| 					<input type="button" id="closeStats" name="closeStats" value="Close" onclick="closeStats()"> | 					<input type="button" id="closeStats" name="closeStats" value="Close" onclick="closeStats()"> | ||||||
| 				</div> | 				</div> | ||||||
| 				<div id="graphs"></div> | 				<div id="graphs" class="vbox" style="height: 100%"></div> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div id="editPane" class="vbox" style="display: none"> | 			<div id="editPane" class="vbox" style="display: none"> | ||||||
| 				<div class="navigation"> | 				<div class="navigation"> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user