소스 검색

add localtime for log

rufengsuixing 5 년 전
부모
커밋
ecab453233
1개의 변경된 파일49개의 추가작업 그리고 4개의 파일을 삭제
  1. 49 4
      luasrc/view/AdGuardHome/log.htm

+ 49 - 4
luasrc/view/AdGuardHome/log.htm

@@ -2,12 +2,14 @@
 <%uci=require"luci.model.uci".cursor()%>
 <%nixio=require"nixio"%>
 
-<input type="checkbox" name="NAME" value="reverse" onclick=" return reverselog()" style="vertical-align:middle;height: auto;" checked><%:reverse%></input><br>
+<input type="checkbox" name="NAME" value="reverse" onclick=" return reverselog()" style="vertical-align:middle;height: auto;" checked><%:reverse%></input>
+<input type="checkbox" name="NAME" value="localtime" onclick=" return chlogtime()" style="vertical-align:middle;height: auto;" checked><%:localtime%></input><br>
 <textarea id="cbid.logview.1.conf" class="cbi-input-textarea" style="width: 100%;display:inline" data-update="change" name="vbid.logview.1.conf" rows="32" cols="60" readonly="readonly" > </textarea>
 <input class="cbi-button cbi-button-apply" name="apply_update_button" id="apply_update_button" value="<%:dellog%>" onclick=" return apply_del_log() "/>
 <input class="cbi-button cbi-button-apply" name="backup" value="<%:download log%>" style=" display:inline;" onclick=" return download_log()" />
 <script type="text/javascript">//<![CDATA[
 var islogreverse = true;
+var isutc2local = true;
 function createAndDownloadFile(fileName, content) {
     var aTag = document.createElement('a');
     var blob = new Blob([content]);
@@ -31,6 +33,17 @@ function apply_del_log(){
 		);
 	return
 }
+function chlogtime(){
+	var lv = document.getElementById('cbid.logview.1.conf');
+	if (isutc2local){
+	lv.innerHTML=line_toUTC(lv.innerHTML).join('\n');
+	isutc2local=false;
+	}else{
+	lv.innerHTML=line_tolocal(lv.innerHTML).join('\n');
+	isutc2local=true;
+	}
+	return
+}
 function reverselog(){
 	var lv = document.getElementById('cbid.logview.1.conf');
 	lv.innerHTML=lv.innerHTML.split('\n').reverse().join('\n')
@@ -41,15 +54,47 @@ function reverselog(){
 	}
 	return
 }
+function p(s) {
+        return s < 10 ? '0' + s: s;
+}
+function line_tolocal(str){
+var strt=new Array();
+str.trim().split('\n').forEach(function(v, i) {
+if (v==""){strt[i]="";return;}
+var dt = new Date(v.substring(0,19)+" UTC");
+  strt[i]=dt.getFullYear()+"/"+p(dt.getMonth()+1)+"/"+p(dt.getDate())+" "+p(dt.getHours())+":"+p(dt.getMinutes())+":"+p(dt.getSeconds())+v.substring(19)
+})
+return strt
+}
+function line_toUTC(str){
+var strt=new Array();
+str.trim().split('\n').forEach(function(v, i) {
+if (v==""){strt[i]="";return;}
+var dt = new Date(v.substring(0,19))
+  strt[i]=dt.getUTCFullYear()+"/"+p(dt.getUTCMonth()+1)+"/"+p(dt.getUTCDate())+" "+p(dt.getUTCHours())+":"+p(dt.getUTCMinutes())+":"+p(dt.getUTCSeconds())+v.substring(19)
+})
+console.debug("toutc",strt[2]);
+return strt
+}
 function poll_check(){
 XHR.poll(3, '<%=url([[admin]], [[services]], [[AdGuardHome]], [[getlog]])%>', null,
 	function(x, data) {
 		var lv = document.getElementById('cbid.logview.1.conf');
 		if (x.responseText && lv) {
-			if (islogreverse){
-				lv.innerHTML = x.responseText.split('\n').reverse().join('\n')+lv.innerHTML;
+			if (isutc2local)
+			{
+				var lines=line_tolocal(x.responseText);
+				if (islogreverse){
+					lv.innerHTML = lines.reverse().join('\n')+lv.innerHTML;
+				}else{
+					lv.innerHTML += lines.join('\n');
+				}
 			}else{
-				lv.innerHTML += x.responseText;
+				if (islogreverse){
+					lv.innerHTML = x.responseText.split('\n').reverse().join('\n')+lv.innerHTML;
+				}else{
+					lv.innerHTML += x.responseText;
+				}
 			}
 		}
 	}