mirror of
https://github.com/oopuuu/zTC1.git
synced 2025-12-12 13:08:13 +08:00
img-user svg OK
This commit is contained in:
@@ -47,7 +47,8 @@
|
||||
<div class="demo-drawer mdl-layout__drawer mdl-color--blue-grey-900 mdl-color-text--blue-grey-50">
|
||||
<header class="demo-drawer-header">
|
||||
<!-- <img src="http://119.23.191.79/tc1/images/user.jpg" class="demo-avatar"> -->
|
||||
<svg class="demo-avatar"><use xlink:href="#img-user" /></svg>
|
||||
<!-- <img width="112px" src="assets/user2.svg" class="demo-avatar"/> -->
|
||||
<svg width="112pt" height="112pt" viewBox="0 0 112 112" class="demo-avatar"><use xlink:href="#img-user"/></svg>
|
||||
<div class="demo-avatar-dropdown">
|
||||
<span>hello@example.com</span>
|
||||
<div class="mdl-layout-spacer"></div>
|
||||
@@ -461,13 +462,7 @@
|
||||
<path d="M0,0h24v24H0V0z" fill="none"/>
|
||||
<path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"/>
|
||||
</g>
|
||||
<g id="#img-user">
|
||||
<g id="#ffffffff">
|
||||
<path fill="#ffffff" opacity="1.00" d=" M 0.00 0.00 L 53.37 0.00 C 36.98 0.86 21.10 9.12 11.31 22.34 C 4.52 31.22 0.72 42.15 0.00 53.27 L 0.00 0.00 Z" />
|
||||
<path fill="#ffffff" opacity="1.00" d=" M 58.72 0.00 L 112.00 0.00 L 112.00 53.37 C 111.31 42.21 107.50 31.24 100.69 22.33 C 90.91 9.14 75.08 0.90 58.72 0.00 Z" />
|
||||
<path fill="#ffffff" opacity="1.00" d=" M 0.00 58.67 C 0.71 69.87 4.55 80.87 11.40 89.80 C 12.95 91.82 14.64 93.73 16.39 95.59 C 22.14 101.21 29.02 105.67 36.56 108.49 C 42.22 110.63 48.24 111.64 54.26 112.00 L 0.00 112.00 L 0.00 58.67 Z" />
|
||||
<path fill="#ffffff" opacity="1.00" d=" M 80.82 106.17 C 98.79 97.47 111.04 78.61 112.00 58.70 L 112.00 112.00 L 57.70 112.00 C 65.69 111.59 73.65 109.79 80.82 106.17 Z" />
|
||||
</g>
|
||||
<g id="img-user">
|
||||
<g id="#45d0e3ff">
|
||||
<path fill="#45d0e3" opacity="1.00" d=" M 53.37 0.00 L 58.72 0.00 C 75.08 0.90 90.91 9.14 100.69 22.33 C 107.50 31.24 111.31 42.21 112.00 53.37 L 112.00 58.70 C 111.04 78.61 98.79 97.47 80.82 106.17 C 79.54 103.27 78.19 100.38 77.13 97.38 C 75.96 93.10 74.50 88.08 76.95 83.97 C 78.90 80.30 84.37 81.15 86.26 77.47 C 87.78 74.72 88.75 71.72 89.88 68.80 C 86.87 67.57 83.95 65.94 82.84 62.67 C 85.41 62.55 87.97 62.56 90.54 62.54 C 90.73 60.46 90.80 58.37 90.97 56.28 C 92.50 56.26 94.04 56.25 95.57 56.24 C 94.14 51.38 93.20 46.39 92.61 41.36 C 91.85 37.14 91.80 32.46 89.06 28.93 C 85.66 24.42 80.36 21.79 75.00 20.42 C 66.49 18.22 57.44 19.54 49.32 22.59 C 48.22 21.70 47.13 20.79 46.00 19.93 C 45.67 19.83 45.02 19.63 44.70 19.53 C 38.54 17.36 31.82 18.95 26.65 22.71 C 21.75 25.72 19.50 31.39 18.56 36.82 C 16.07 51.25 18.52 66.10 15.49 80.46 C 14.80 83.83 13.17 86.89 11.40 89.80 C 4.55 80.87 0.71 69.87 0.00 58.67 L 0.00 53.27 C 0.72 42.15 4.52 31.22 11.31 22.34 C 21.10 9.12 36.98 0.86 53.37 0.00 Z" />
|
||||
<path fill="#45d0e3" opacity="1.00" d=" M 46.81 58.85 C 48.67 60.66 50.63 62.36 52.52 64.14 C 53.51 65.97 54.72 67.81 54.84 69.95 C 55.32 75.99 54.64 82.26 51.85 87.72 C 47.89 95.43 41.52 101.46 36.56 108.49 C 29.02 105.67 22.14 101.21 16.39 95.59 C 21.92 95.26 27.23 93.08 31.33 89.33 C 40.12 81.50 43.93 69.90 46.81 58.85 Z" />
|
||||
|
||||
@@ -1,612 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html" charset="utf-8">
|
||||
<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" name="viewport">
|
||||
<title>Welcom TC1</title>
|
||||
<style type="text/css">
|
||||
fieldset{margin-bottom:10px;border:#000 solid 1px;min-inline-size:auto;}
|
||||
input,select,button{padding:5px;background:white;border:#777 solid 1px;}
|
||||
button{background:none;border:1px #777 solid;}
|
||||
button:disabled,select:disabled,input:disabled{background:#bfbfbf;}
|
||||
td,th{padding:5px;}
|
||||
.task table{width:100%;margin:10px 0;border-collapse:collapse;}
|
||||
.task td,.task th{text-align:center;border:1px solid #000;}
|
||||
.socket input,.mode input{margin-right:-4px;}
|
||||
.submit{padding:5px;margin-top:5px;}
|
||||
.success{color:#58dc5c;}
|
||||
.error{color:#ff2d2d;}
|
||||
.info{color:#e700ea;}
|
||||
.network div{padding:5px;}
|
||||
.connect div{padding:5px;}
|
||||
.right{text-align:right;}
|
||||
.pw{width:100%}
|
||||
.pw td{width:50%}
|
||||
.line{border-top:1px solid #dedede;}
|
||||
.line_10{height:4px;}/*10^0.6=4*/
|
||||
.line_100{height:12px;}/*100^0.6=16*/
|
||||
.line_1000{height:47px;}/*1000^0.6=63*/
|
||||
.line_2000{height:33px;}/*2000^0.6=96*/
|
||||
.line_top{height:10px;border:none;}
|
||||
#power_div{margin-top:10px;border-left:1px solid #000;border-bottom:1px solid #000;}
|
||||
#power_line{height:120px;position:relative;overflow:scroll;margin-top:-120px;}
|
||||
.power_pre{position:absolute;bottom:0;float:left;height:76px;width:0;border-left:1px solid #00ffff38;border-top:1px solid #000;}
|
||||
.power_by{text-align:center;}
|
||||
.power_by a{text-decoration:none;}
|
||||
.log_div{height:300px;overflow:scroll;}
|
||||
.ota input{width:100%;box-sizing: border-box;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1><a href="/demo">Go To Material</a></h1>
|
||||
<fieldset class="socket">
|
||||
<legend>Power Control</legend>
|
||||
<table id="socket_tb" style="width:100%;">
|
||||
<tr>
|
||||
<td>
|
||||
<label for="socket1">Socket-1</label>
|
||||
</td>
|
||||
<td style="width:10px;">
|
||||
<input type="checkbox" id="socket1" name="socket" onchange="SetSocket()">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="socket2">Socket-2</label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" id="socket2" name="socket" onchange="SetSocket()">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="socket3">Socket-3</label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" id="socket3" name="socket" onchange="SetSocket()">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="socket4">Socket-4</label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" id="socket4" name="socket" onchange="SetSocket()">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="socket5">Socket-5</label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" id="socket5" name="socket" onchange="SetSocket()">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="socket6">Socket-6</label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" id="socket6" name="socket" onchange="SetSocket()">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="chart">
|
||||
<legend>Power Status</legend>
|
||||
<table class="pw">
|
||||
<tr>
|
||||
<td>P: <span id="p" class="success">0</span> W</td>
|
||||
<td>W: <span id="w" class="error">0</span> kW·h</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="power_div">
|
||||
<div class="line line_top"></div>
|
||||
<div class="line line_2000"></div>
|
||||
<div class="line line_1000"></div>
|
||||
<div class="line line_100"></div>
|
||||
<div class="line line_10"></div>
|
||||
</div>
|
||||
<div id="power_line">
|
||||
<!-- <div class="power_pre" style="height:70px;left:20px;"></div> -->
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="network">
|
||||
<legend>Network Config</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="right">SSID:</td>
|
||||
<td>
|
||||
<select id="wifi" onchange="SelectWifi()">
|
||||
<option value="0">Manual</option>
|
||||
</select>
|
||||
<button id="rescan" onclick="Rescan()">Rescan</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="right">SSID:</td>
|
||||
<td>
|
||||
<input id="ssid" type="text" onchange="ChangeInput(1)"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="right">PSWD:</td>
|
||||
<td>
|
||||
<input id="pswd" type="password" onchange="ChangeInput(2)"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="right">MODE:</td>
|
||||
<td class="mode">
|
||||
<input type="radio" id="mode1" name="mode" onchange="ChangeMode(0)">
|
||||
<label for="mode1">AP</label>
|
||||
<input type="radio" id="mode2" name="mode" onchange="ChangeMode(1)">
|
||||
<label for="mode2">STATION</label>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="submit">
|
||||
<button class="submit_bt" onclick="SubmitNetwork()">Submit</button>
|
||||
<span class="status_sp success">OK</span>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>MQTT Config</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="right">MQTT:</td>
|
||||
<td>
|
||||
<input id="mqtt_addr"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="right">PORT:</td>
|
||||
<td>
|
||||
<input id="mqtt_port"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="submit">
|
||||
<button class="submit_bt" onclick="SubmitMqtt()">Submit</button>
|
||||
<span class="status_sp success">OK</span>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="connect">
|
||||
<legend>System Status</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="right">Version:</td>
|
||||
<td class="info" id="version"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="right">IP:</td>
|
||||
<td class="info" id="ip"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="right">Mask:</td>
|
||||
<td class="info" id="mask"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="right">Gateway:</td>
|
||||
<td class="info" id="gateway"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="right">Uptime:</td>
|
||||
<td class="success" id="uptime"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="task">
|
||||
<legend>Timed Task</legend>
|
||||
<input type="datetime-local" step="01" id="task_time"/>
|
||||
<br>
|
||||
<select id="task_skt_idx">
|
||||
<option value="0">Socket-1</option>
|
||||
<option value="1">Socket-2</option>
|
||||
<option value="2">Socket-3</option>
|
||||
<option value="3">Socket-4</option>
|
||||
<option value="4">Socket-5</option>
|
||||
<option value="5">Socket-6</option>
|
||||
</select>
|
||||
<select id="task_on">
|
||||
<option value="1">On</option>
|
||||
<option value="0">Off</option>
|
||||
</select>
|
||||
<button class="submit_bt" onclick="AddTimedTask()">Add</button>
|
||||
<span class="status_sp success">OK</span>
|
||||
<!-- <button class="submit_bt" onclick="DelTimedTask()">TestDelete</button> -->
|
||||
<table id="timed_task_tb">
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Time</th>
|
||||
<th>Socket</th>
|
||||
<th>On</th>
|
||||
<th>Option</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="5">Please Sync</td>
|
||||
</tr>
|
||||
</table>
|
||||
<button onclick="GetTimedTask()">Sync</button>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="sys_log">
|
||||
<legend>System Log</legend>
|
||||
<div class="log_div">
|
||||
<pre id="sys_log"></pre>
|
||||
</div>
|
||||
<button class="submit_bt" onclick="GetSysLog()">Refresh</button>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="ota">
|
||||
<legend>OTA Update</legend>
|
||||
<input type="text" id="ato_url" value="http://119.23.191.79/tc1/tc1ota.bin">
|
||||
<br>
|
||||
<br>
|
||||
<button class="submit_bt" onclick="OtaStart()">Update</button>
|
||||
<span class="status_sp success">OK</span>
|
||||
<span class="info" id="ota_status"></span>
|
||||
</fieldset>
|
||||
|
||||
<p class="power_by">power by <a id="end" href="https://github.com/zogodo/zTC1" target="_blank">github/zTC1</a></p>
|
||||
|
||||
<script type="text/javascript">
|
||||
function Ajax(url, onsuccess, type, data) {
|
||||
var xml_http = new XMLHttpRequest();
|
||||
xml_http.open(type, url, true);
|
||||
xml_http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
xml_http.onreadystatechange = function () {
|
||||
if (xml_http.readyState == 4) {
|
||||
if (xml_http.status == 200) {
|
||||
onsuccess(xml_http.responseText.replace(/'/g, '"'));
|
||||
}
|
||||
else {
|
||||
alert("Ajax error: " + xml_http.status);
|
||||
}
|
||||
}
|
||||
};
|
||||
if (data != null && type == "POST") {
|
||||
xml_http.send(data);
|
||||
} else {
|
||||
xml_http.send();
|
||||
}
|
||||
}
|
||||
function HttpGet(url, onsuccess) {
|
||||
Ajax(url, onsuccess, "GET", null);
|
||||
}
|
||||
function HttpPost(url, onsuccess, data) {
|
||||
Ajax(url, onsuccess, "POST", data);
|
||||
}
|
||||
function HttpDel(url, onsuccess, data) {
|
||||
Ajax(url, onsuccess, "DELETE", data);
|
||||
}
|
||||
|
||||
var submit_bts = document.getElementsByClassName("submit_bt");
|
||||
var info_spans = document.getElementsByClassName("status_sp");
|
||||
|
||||
var socket_tb = document.getElementById("socket_tb");
|
||||
var checkboxs = socket_tb.getElementsByTagName("input");
|
||||
|
||||
var p = document.getElementById("p");
|
||||
var w = document.getElementById("w");
|
||||
var power_line = document.getElementById("power_line");
|
||||
|
||||
var rescan_btn = document.getElementById("rescan");
|
||||
var ssid_slt = document.getElementById("wifi");
|
||||
var ssid_ipt = document.getElementById("ssid");
|
||||
var pswd_ipt = document.getElementById("pswd");
|
||||
var mode_rd1 = document.getElementById("mode1");
|
||||
var mode_rd2 = document.getElementById("mode2");
|
||||
|
||||
var mqtt_addr_ipt = document.getElementById("mqtt_addr");
|
||||
var mqtt_port_ipt = document.getElementById("mqtt_port");
|
||||
|
||||
var info_version = document.getElementById("version");
|
||||
var info_ip = document.getElementById("ip");
|
||||
var info_mask = document.getElementById("mask");
|
||||
var info_gateway = document.getElementById("gateway");
|
||||
var uptime = document.getElementById("uptime");
|
||||
|
||||
var sys_log = document.getElementById("sys_log");
|
||||
var log_div = document.getElementsByClassName("log_div")[0];
|
||||
|
||||
var ota_status = document.getElementById("ota_status");
|
||||
|
||||
var mode = -1;
|
||||
var ap_name = "";
|
||||
var ap_pswd = "";
|
||||
var station_name = "";
|
||||
var station_pswd = "";
|
||||
|
||||
HttpGet("/status", function (re) {
|
||||
var status = JSON.parse(re);
|
||||
var status_arr = status.sockets.split(",");
|
||||
for (var i = 0; i < status_arr.length; i++) {
|
||||
checkboxs[i].checked = status_arr[i] == "1";
|
||||
}
|
||||
station_name = status.station_ssid;
|
||||
station_pswd = status.station_pwd;
|
||||
ap_name = status.ap_ssid;
|
||||
ap_pswd = status.ap_pwd;
|
||||
//mode = status.mode;
|
||||
ChangeMode(status.mode);
|
||||
|
||||
mqtt_addr_ipt.value = status.mqtt_addr;
|
||||
mqtt_port_ipt.value = status.mqtt_port;
|
||||
|
||||
info_version.innerHTML = status.version;
|
||||
info_ip.innerHTML = status.ip;
|
||||
info_mask.innerHTML = status.mask;
|
||||
info_gateway.innerHTML = status.gateway;
|
||||
uptime.innerHTML = status.start_time;
|
||||
});
|
||||
|
||||
var power_idx = 0;
|
||||
var position = 0;
|
||||
function GetPowerRecord() {
|
||||
HttpPost("/power", function (re) {
|
||||
var power = JSON.parse(re);
|
||||
power_idx = power.idx + 1;
|
||||
var html = "";
|
||||
for (var i = 0; i < power.powers.length; i++) {
|
||||
var curr_p = power.powers[i]/10;
|
||||
p.innerHTML = curr_p.toFixed(2);
|
||||
var y = Math.pow(curr_p, 0.6);
|
||||
html += "<div class='power_pre' style='height:"+y+"px;left:"+position+"px;'></div>";
|
||||
position += 1;
|
||||
}
|
||||
if (power.powers.length != 0 && power_line.scrollWidth - power_line.offsetWidth - power_line.scrollLeft < 10) {
|
||||
power_line.innerHTML += html;
|
||||
power_line.scrollTo(power_line.scrollWidth, 0); //滑动到最后
|
||||
}
|
||||
var w_v = (17.1 * power.p_count) / 1000 / 36000;
|
||||
w.innerHTML = w_v.toFixed(2); //累加功率
|
||||
uptime.innerHTML = power.up_time;
|
||||
var status_arr = power.sockets.split(",");
|
||||
for (var i = 0; i < status_arr.length; i++) {
|
||||
checkboxs[i].checked = status_arr[i] == "1";
|
||||
}
|
||||
window.setTimeout(GetPowerRecord, 3000);
|
||||
}, power_idx.toString());
|
||||
}
|
||||
GetPowerRecord();
|
||||
|
||||
function SetOK(i) {
|
||||
submit_bts[i].disabled = false;
|
||||
info_spans[i].className = "status_sp success";
|
||||
info_spans[i].innerHTML = "OK";
|
||||
}
|
||||
function SetIng(i) {
|
||||
submit_bts[i].disabled = true;
|
||||
info_spans[i].className = "status_sp info";
|
||||
info_spans[i].innerHTML = "ing...";
|
||||
}
|
||||
|
||||
function SetSocket() {
|
||||
var sockets_st = "";
|
||||
for (var i = 0; i < checkboxs.length; i++) {
|
||||
sockets_st += (checkboxs[i].checked ? "1," : "0,");
|
||||
}
|
||||
HttpPost("/socket", function (re) {
|
||||
}, sockets_st);
|
||||
}
|
||||
|
||||
function SelectWifi() {
|
||||
ssid_ipt.disabled = ssid_slt.value != "0";
|
||||
if (ssid_slt.value == "0") {
|
||||
ssid_ipt.value = station_name;
|
||||
} else {
|
||||
ssid_ipt.value = ssid_slt.options[ssid_slt.selectedIndex].text;
|
||||
}
|
||||
}
|
||||
|
||||
function ChangeMode(m) {
|
||||
if (mode == m) return;
|
||||
if (m != 1) {
|
||||
//AP模式
|
||||
mode_rd1.checked = true;
|
||||
ssid_slt.value = "0";
|
||||
ssid_slt.disabled = true;
|
||||
rescan_btn.disabled = true;
|
||||
ssid_ipt.disabled = false;
|
||||
ssid_ipt.value = ap_name;
|
||||
pswd_ipt.value = ap_pswd;
|
||||
} else {
|
||||
//Station模式
|
||||
mode_rd2.checked = true;
|
||||
ssid_slt.value = "0";
|
||||
ssid_slt.disabled = false;
|
||||
rescan_btn.disabled = false;
|
||||
ssid_ipt.disabled = false;
|
||||
ssid_ipt.value = station_name;
|
||||
pswd_ipt.value = station_pswd;
|
||||
}
|
||||
mode = m;
|
||||
}
|
||||
|
||||
function ChangeInput(type) {
|
||||
if (mode == 0) {
|
||||
ap_name = ssid_ipt.value;
|
||||
ap_pswd = pswd_ipt.value;
|
||||
} else if (mode == 1) {
|
||||
station_name = ssid_ipt.value;
|
||||
station_pswd = pswd_ipt.value;
|
||||
} else {
|
||||
alert("mode error: " + mode);
|
||||
}
|
||||
}
|
||||
|
||||
//Quotation Marks
|
||||
function ContainQM(str) {
|
||||
if (str == ""
|
||||
|| str.indexOf("'") >= 0
|
||||
|| str.indexOf('"') >= 0
|
||||
|| str.indexOf(' ') >= 0
|
||||
|| str.length > 32) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var qm_mess = "Sorry, can't use ' or \" or space or empty.\n\nAlso, length <= 32."
|
||||
var le_mess = "Sorry, length < 8."
|
||||
|
||||
function SubmitNetwork() {
|
||||
if (mode == 0) {
|
||||
if (ContainQM(ap_name) || ContainQM(ap_pswd)) {
|
||||
alert(qm_mess);
|
||||
return;
|
||||
}
|
||||
if (ap_pswd.length < 8) {
|
||||
alert(le_mess);
|
||||
}
|
||||
var params = mode + " " + ap_name+" "+ap_pswd;
|
||||
} else if (mode == 1) {
|
||||
if (ContainQM(station_name) || ContainQM(station_pswd)) {
|
||||
alert(qm_mess);
|
||||
return;
|
||||
}
|
||||
if (station_pswd.length < 8) {
|
||||
alert(le_mess);
|
||||
}
|
||||
var params = mode + " " + station_name+" "+station_pswd;
|
||||
} else {
|
||||
alert("mode error: " + mode);
|
||||
return;
|
||||
}
|
||||
SetIng(0);
|
||||
HttpPost("/wifi/config", function (re) {
|
||||
alert(re);
|
||||
SetOK(0);
|
||||
}, params);
|
||||
}
|
||||
|
||||
function SubmitMqtt() {
|
||||
SetIng(1);
|
||||
var params = mqtt_addr_ipt.value + " " + mqtt_port_ipt.value;
|
||||
HttpPost("/mqtt/config", function (re) {
|
||||
alert(re);
|
||||
SetOK(1);
|
||||
}, params);
|
||||
}
|
||||
|
||||
function Rescan() {
|
||||
HttpPost("/wifi/scan", function (re) {
|
||||
if (re == "OK") {
|
||||
rescan_btn.innerHTML = "Scanning...";
|
||||
rescan_btn.disabled = true;
|
||||
window.setTimeout(GetScanResult, 1000);
|
||||
} else {
|
||||
alert(re);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function GetScanResult() {
|
||||
HttpGet("/wifi/scan", function (re) {
|
||||
if (re != "NO") {
|
||||
var ret = JSON.parse(re);
|
||||
var html = "<option value='0'>Manual</option>";
|
||||
for (var i = 0; i < ret.ssids.length; i++) {
|
||||
html += "<option value='"+(i+1)+"'>"+ret.ssids[i]+"</option>";
|
||||
}
|
||||
ssid_slt.innerHTML = html;
|
||||
|
||||
rescan_btn.innerHTML = "Rescan";
|
||||
rescan_btn.disabled = false;
|
||||
return;
|
||||
}
|
||||
window.setTimeout(GetScanResult, 1000);
|
||||
});
|
||||
}
|
||||
|
||||
function GetSysLog() {
|
||||
HttpGet("/log", function (re) {
|
||||
sys_log.innerHTML = re;
|
||||
log_div.scrollTo(0, log_div.scrollHeight);
|
||||
});
|
||||
}
|
||||
GetSysLog();
|
||||
|
||||
function GetTimedTask() {
|
||||
HttpGet("/task", function (re) {
|
||||
var tb_html = "\
|
||||
<tr>\
|
||||
<th></th>\
|
||||
<th>Time</th>\
|
||||
<th>Socket</th>\
|
||||
<th>On</th>\
|
||||
<th>Option</th>\
|
||||
</tr>";
|
||||
console.log(re);
|
||||
var tasks = JSON.parse(re);
|
||||
if (tasks.length == 0) {
|
||||
tb_html += "<tr><td colspan='5'>No Timed Task</td></tr>";
|
||||
}
|
||||
for (var i = 0; i < tasks.length; i++) {
|
||||
tb_html += "\
|
||||
<tr>\
|
||||
<td>" + (i+1) + "</td>\
|
||||
<td>" + tasks[i].prs_time + "</td>\
|
||||
<td>" + tasks[i].socket_idx + "</td>\
|
||||
<td>" + tasks[i].on + "</td>\
|
||||
<td><a href='javascript:DelTimedTask(" + tasks[i].timestamp + ");'>Delete</a></td>\
|
||||
</tr>";
|
||||
}
|
||||
document.getElementById("timed_task_tb").innerHTML = tb_html;
|
||||
});
|
||||
}
|
||||
GetTimedTask();
|
||||
|
||||
function AddTimedTask() {
|
||||
var tim = document.getElementById("task_time").value;
|
||||
var idx = document.getElementById("task_skt_idx").value;
|
||||
var on = document.getElementById("task_on").value;
|
||||
|
||||
if (tim == null || tim == "" || tim.length < 10) {
|
||||
alert("task time invalid!");
|
||||
return;
|
||||
}
|
||||
var prs_time = Math.round(new Date(tim) / 1000);
|
||||
//prs_time = prs_time + parseInt(sec);
|
||||
var cmd = prs_time + " " + idx + " " + on;
|
||||
if (cmd.length >= 16) {
|
||||
alert("CMD ERROR!");
|
||||
}
|
||||
|
||||
SetIng(2);
|
||||
HttpPost("/task", function (re) {
|
||||
SetOK(2);
|
||||
GetTimedTask();
|
||||
}, cmd);
|
||||
}
|
||||
|
||||
function DelTimedTask(timestamp) {
|
||||
HttpDel("/task/"+timestamp, function (re) {
|
||||
GetTimedTask();
|
||||
});
|
||||
}
|
||||
|
||||
function OtaStart() {
|
||||
ato_url = document.getElementById("ato_url").value;
|
||||
SetIng(3);
|
||||
HttpPost("/ota", function (re) {
|
||||
SetOK(3);
|
||||
OtaStatus();
|
||||
}, ato_url);
|
||||
}
|
||||
|
||||
function OtaStatus() {
|
||||
HttpGet("/ota", function (re) {
|
||||
ota_status.innerHTML = " ota progress: " + re + "%";
|
||||
window.setTimeout(OtaStatus, 1000);
|
||||
}, ato_url);
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,56 +0,0 @@
|
||||
<html class="mdl-js"><head>
|
||||
<title>Pure Test</title>
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
|
||||
<link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
|
||||
<script defer="" src="https://code.getmdl.io/1.3.0/material.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Event card -->
|
||||
<style>
|
||||
.demo-card-event.mdl-card {
|
||||
width: 256px;
|
||||
height: 256px;
|
||||
background: #3E4EB8;
|
||||
}
|
||||
.demo-card-event > .mdl-card__actions {
|
||||
/*border-color: rgba(255, 255, 255, 0.2);*/
|
||||
}
|
||||
.demo-card-event > .mdl-card__title {
|
||||
/*align-items: flex-start;*/
|
||||
}
|
||||
.demo-card-event > .mdl-card__title > h4 {
|
||||
/*margin-top: 0;*/
|
||||
}
|
||||
.demo-card-event > .mdl-card__actions {
|
||||
display: flex;
|
||||
/*box-sizing:border-box;*/
|
||||
align-items: center;
|
||||
}
|
||||
.demo-card-event > .mdl-card__actions > .material-icons {
|
||||
padding-right: 10px;
|
||||
}
|
||||
.demo-card-event > .mdl-card__title,
|
||||
.demo-card-event > .mdl-card__actions,
|
||||
.demo-card-event > .mdl-card__actions > .mdl-button {
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="demo-card-event mdl-card mdl-shadow--2dp">
|
||||
<div class="mdl-card__title mdl-card--expand">
|
||||
<h4>
|
||||
Featured event:<br>
|
||||
May 24, 2016<br>
|
||||
7-11pm
|
||||
</h4>
|
||||
</div>
|
||||
<div class="mdl-card__actions mdl-card--border">
|
||||
<a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect" data-upgraded=",MaterialButton,MaterialRipple">
|
||||
Add to Calendar
|
||||
<span class="mdl-button__ripple-container"><span class="mdl-ripple"></span></span></a>
|
||||
<div class="mdl-layout-spacer"></div>
|
||||
<i class="material-icons">event</i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body></html>
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user