86 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html>
 | |
| <html>
 | |
| 
 | |
| <head>
 | |
| 	<title>Update firmware</title>
 | |
| 	<link rel="stylesheet" type="text/css" href="style.css">
 | |
| 	<script type="text/javascript" src="../jquery.js"></script>
 | |
| 	<script type="text/javascript">
 | |
| 
 | |
| 
 | |
| 		var xhr = new XMLHttpRequest();
 | |
| 
 | |
| 		function doReboot() {
 | |
| 			xhr.open("GET", "/flash/reboot");
 | |
| 			xhr.onreadystatechange = function () {
 | |
| 				if (xhr.readyState == 4 && xhr.status >= 200 && xhr.status < 300) {
 | |
| 					window.setTimeout(function () {
 | |
| 						location.reload(true);
 | |
| 					}, 3000);
 | |
| 				}
 | |
| 			}
 | |
| 			xhr.send();
 | |
| 		}
 | |
| 
 | |
| 		function setProgress(amt) {
 | |
| 			$("#progressbarinner")[0].style.width = String(amt * 200) + "px";
 | |
| 		}
 | |
| 
 | |
| 		function doUpgrade() {
 | |
| 			var f = $("#file")[0].files[0];
 | |
| 			if (typeof f == 'undefined') {
 | |
| 				$("#remark")[0].innerHTML = "Can't read file!";
 | |
| 				return
 | |
| 			}
 | |
| 			xhr.onreadystatechange = function () {
 | |
| 				console.log("Ready state changed: " + xhr.readyState);
 | |
| 				if (xhr.readyState == 4 && xhr.status >= 200 && xhr.status < 300) {
 | |
| 					setProgress(1);
 | |
| 					let response = JSON.parse(xhr.responseText);
 | |
| 					if (!response["success"]) {
 | |
| 						$("#remark")[0].innerHTML = "Error: " + xhr.responseText;
 | |
| 					} else {
 | |
| 						$("#remark")[0].innerHTML = "Uploading done. Rebooting.";
 | |
| 						doReboot();
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 			if (typeof xhr.upload.onprogress != 'undefined') {
 | |
| 				xhr.upload.onprogress = function (e) {
 | |
| 					console.log("Upload progress: " + e.loaded + " / " + e.total);
 | |
| 					setProgress(e.loaded / e.total);
 | |
| 				}
 | |
| 			}
 | |
| 			xhr.open("POST", "/flash/upload");
 | |
| 
 | |
| 			xhr.send(f);
 | |
| 			return false;
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 		window.onload = function (e) {
 | |
| 			xhr.open("GET", "/flash/init");
 | |
| 			xhr.onreadystatechange = function () {
 | |
| 				if (xhr.readyState == 4 && xhr.status >= 200 && xhr.status < 300) {
 | |
| 					var txt = "Please upload " + xhr.responseText + " or ota file.";
 | |
| 					$("#remark")[0].innerHTML = txt;
 | |
| 					setProgress(0);
 | |
| 				}
 | |
| 			}
 | |
| 			xhr.send();
 | |
| 		}
 | |
| 
 | |
| 	</script>
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
| 	<div id="main">
 | |
| 		<h1>Update firmware</h1>
 | |
| 		<div id="remark">Loading...</div>
 | |
| 		<input type="file" id="file" />
 | |
| 		<input type="submit" value="Update!" onclick="doUpgrade()" />
 | |
| 		<div id="progressbar">
 | |
| 			<div id="progressbarinner"></div>
 | |
| 		</div>
 | |
| 	</div>
 | |
| </body> |