Merge branch 'master' of github.com:naiba/nezha

This commit is contained in:
naiba 2021-01-30 19:06:17 +08:00
commit 061a9992ff
7 changed files with 277 additions and 266 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
function callAllJsFiles(t){var e=document.createElement("script");e.setAttribute("type","text/javascript"),e.setAttribute("src",t),document.getElementsByTagName("head")[0].appendChild(e)}callAllJsFiles("/static/theme-daynight/js/mode.js?v202101290086"),callAllJsFiles("/static/theme-daynight/js/navtop.js?v202101290086"); function callAllJsFiles(t){var e=document.createElement("script");e.setAttribute("type","text/javascript"),e.setAttribute("src",t),document.getElementsByTagName("head")[0].appendChild(e)}callAllJsFiles("/static/theme-daynight/js/mode.js?v202101301768"),callAllJsFiles("/static/theme-daynight/js/navtop.js?v202101301768");

View File

@ -1 +1 @@
$(document).ready((function(){$(".hamburger").click((function(){$(this).toggleClass("is-active"),$(".nav-menu").toggleClass("active"),$(".nav-bar").toggleClass("active")}))}));var btn=$("#back-to-top");$(window).scroll((function(){$(window).scrollTop()>300?btn.addClass("show"):btn.removeClass("show")})),btn.on("click",(function(o){o.preventDefault(),$(".service-mobile-toggle").hasClass("smt-active")&&($(".service-mobile-toggle ").removeClass("smt-active"),$("html, body").animate({scrollTop:0},"300")),$("html, body").animate({scrollTop:0},"300")})); $(document).ready((function(){$(".hamburger").click((function(){$(this).toggleClass("is-active"),$(".nav-menu ul").slideToggle("500","linear")}))}));var btn=$("#back-to-top");$(window).scroll((function(){$(window).scrollTop()>300?btn.addClass("show"):btn.removeClass("show")})),$(document).ready((function(){btn.on("click",(function(o){o.preventDefault(),$(".service-mobile-toggle").hasClass("smt-active")&&($(".service-mobile-toggle ").removeClass("smt-active"),$("html, body").animate({scrollTop:0},"300")),$("html, body").animate({scrollTop:0},"300")}))}));

View File

@ -1 +1 @@
function callAllJsFiles(e){var t=document.createElement("script");t.setAttribute("type","text/javascript"),t.setAttribute("src",e),document.getElementsByTagName("head")[0].appendChild(t)}callAllJsFiles("/static/theme-daynight/js/navtop.js?v202101290086"),callAllJsFiles("/static/theme-daynight/js/mode.js?v202101290086"),callAllJsFiles("/static/theme-daynight/js/tooltip.js?v202101290086"),$(".corner").hover((function(){$(this).attr("aria-expanded","true"===$(this).attr("aria-expanded")?"false":"true")}));const hour=new Date(Date.now()).getHours();(hour>17||hour<4)&&(document.querySelector("input[name=service-theme]").checked=!0,document.getElementsByTagName("BODY")[0].setAttribute("data-theme","dark")),$(document).ready((function(){$(".fa-plus").click((function(){$(".service-mobile-toggle").toggleClass("smt-active")}))})); function callAllJsFiles(e){var t=document.createElement("script");t.setAttribute("type","text/javascript"),t.setAttribute("src",e),document.getElementsByTagName("head")[0].appendChild(t)}callAllJsFiles("/static/theme-daynight/js/navtop.js?v202101301768"),callAllJsFiles("/static/theme-daynight/js/mode.js?v202101301768"),callAllJsFiles("/static/theme-daynight/js/tooltip.js?v202101301768"),$(".corner").hover((function(){$(this).attr("aria-expanded","true"===$(this).attr("aria-expanded")?"false":"true")}));const hour=new Date(Date.now()).getHours();(hour>17||hour<4)&&(document.querySelector("input[name=service-theme]").checked=!0,document.getElementsByTagName("BODY")[0].setAttribute("data-theme","dark")),$(document).ready((function(){$(".service-mobile-toggle ul li:first-of-type").click((function(){$(".service-mobile-toggle").toggleClass("smt-active")}))})),$(document).on("click",(function(e){0==$(e.target).closest(".service-mobile-toggle").length&&$(".service-mobile-toggle").hasClass("smt-active")&&$(".service-mobile-toggle").toggleClass("smt-active")}));

View File

@ -1,27 +1,32 @@
{{define "theme-daynight/home"}} {{define "theme-daynight/home"}}
<!DOCTYPE html> <!doctype html>
<html lang="zh-Hans"> <html lang="zh-Hans">
<head>
<meta charset="utf-8" /> <head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>{{.Title}}</title> <title>{{.Title}}</title>
<link rel="shortcut icon" type="image/png" href="/static/logo.png" /> <link rel="shortcut icon" type="image/png" href="/static/logo.png" />
<link rel="stylesheet" href="/static/theme-daynight/css/main.css?v202101290086" /> <link rel="stylesheet" href="/static/theme-daynight/css/main.css?v202101301768">
<link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/5.15.1/css/all.min.css" rel="stylesheet" /> <link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/5.15.1/css/all.min.css" rel="stylesheet">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
{{if ts .CustomCode}} {{.CustomCode|safe}} {{end}} {{if ts .CustomCode}}
</head> {{.CustomCode|safe}}
{{end}}
</head>
<body data-theme="light" data-gridlist="grid"> <body data-theme="light" data-gridlist="grid">
<header class="nav-bar clearfix"> <header>
<section class="nav-bar clearfix">
<figure class="logo"><a href="/">{{.Conf.Site.Brand}}</a></figure> <figure class="logo"><a href="/">{{.Conf.Site.Brand}}</a></figure>
<div class="icon-container"> <div class="icon-container">
<div class="row cf"> <div class="row cf">
<div class="three col"> <div class="three col">
<div class="hamburger" id="hamburger-icon"><span class="line"></span><span class="line"></span><span class="line"></span></div> <div class="hamburger" id="hamburger-icon"><span class="line"></span><span class="line"></span><span
class="line"></span></div>
</div> </div>
</div> </div>
</div> </div>
@ -30,17 +35,18 @@
<li><a href="/">首页</a></li> <li><a href="/">首页</a></li>
<li><a href="/service">服务状态</a></li> <li><a href="/service">服务状态</a></li>
{{if .Admin}} {{if .Admin}}
<li><a href="/server" style="padding: 0.8em; text-align: center">管理后台</a></li> <li><a href="/server" style="padding:.8em;text-align:center;">管理后台</a></li>
{{else}} {{else}}
<li><a href="/login">登录</a></li> <li><a href="/login">登录</a></li>
{{end}} {{end}}
</ul> </ul>
</nav> </nav>
</section>
</header> </header>
<main> <main>
<div id="app"> <div id="app">
<div class="server-info-container" v-for="server in servers" :id="server.ID"> <div class="server-info-container" v-for='server in servers' :id="server.ID">
<div class="info-body"> <div class="info-body">
<ul class="server-info-body-container"> <ul class="server-info-body-container">
<li> <li>
@ -51,7 +57,8 @@
<li> <li>
<h3>@#server.Name#@</h3> <h3>@#server.Name#@</h3>
</li> </li>
<li><img :src="'/static/theme-daynight/img/flag/'+(server.Host&&server.Host.CountryCode?server.Host.CountryCode.toUpperCase():'CN')+'.png'" :title="server.Host.CountryCode.toUpperCase()" /></li> <li><img :src="'/static/theme-daynight/img/flag/'+(server.Host&&server.Host.CountryCode?server.Host.CountryCode.toUpperCase():'CN')+'.png'"
:title="server.Host.CountryCode.toUpperCase()" /></li>
<li>@#server.Host.Platform#@</li> <li>@#server.Host.Platform#@</li>
<li>@#server.Host.CountryCode.toUpperCase()#@</li> <li>@#server.Host.CountryCode.toUpperCase()#@</li>
<li>@#formatByteSize(server.State.MemUsed)#@ / @#formatByteSize(server.Host.MemTotal)#@</li> <li>@#formatByteSize(server.State.MemUsed)#@ / @#formatByteSize(server.Host.MemTotal)#@</li>
@ -65,8 +72,10 @@
<div> <div>
<h4>CPU</h4> <h4>CPU</h4>
</div> </div>
<div v-if="server.State" :class="formatPercent(server.live,server.State.CPU, 100).class" :title="formatPercent(server.live,server.State.CPU,100).percent+'%'"> <div v-if="server.State" :class="formatPercent(server.live,server.State.CPU, 100).class"
<div class="progress-bar" role="progressbar" :aria-valuenow="formatPercent(server.live,server.State.CPU,100).percent" aria-valuemin="0" aria-valuemax="100" :style="formatPercent(server.live,server.State.CPU, 100).style"> :title="formatPercent(server.live,server.State.CPU,100).percent+'%'">
<div class="progress-bar" role="progressbar" :aria-valuenow="formatPercent(server.live,server.State.CPU,100).percent" aria-valuemin="0" aria-valuemax="100"
:style="formatPercent(server.live,server.State.CPU, 100).style">
<p>@#formatPercent(server.live,server.State.CPU,100).percent#@%</p> <p>@#formatPercent(server.live,server.State.CPU,100).percent#@%</p>
</div> </div>
</div> </div>
@ -77,8 +86,11 @@
<div> <div>
<h4>RAM</h4> <h4>RAM</h4>
</div> </div>
<div v-if="server.State" :class="formatPercent(server.live,server.State.MemUsed, server.Host.MemTotal).class" :title="parseInt(server.State?server.State.MemUsed/server.Host.MemTotal*100:0)+'%'"> <div v-if="server.State"
<div class="progress-bar" role="progressbar" :aria-valuenow="parseInt(server.State?server.State.MemUsed/server.Host.MemTotal*100:0)" aria-valuemin="0" aria-valuemax="100" :style="formatPercent(server.live,server.State.MemUsed, server.Host.MemTotal).style"> :class="formatPercent(server.live,server.State.MemUsed, server.Host.MemTotal).class"
:title="parseInt(server.State?server.State.MemUsed/server.Host.MemTotal*100:0)+'%'">
<div class="progress-bar" role="progressbar" :aria-valuenow="parseInt(server.State?server.State.MemUsed/server.Host.MemTotal*100:0)" aria-valuemin="0" aria-valuemax="100"
:style="formatPercent(server.live,server.State.MemUsed, server.Host.MemTotal).style">
<p>@#parseInt(server.State?server.State.MemUsed/server.Host.MemTotal*100:0)#@%</p> <p>@#parseInt(server.State?server.State.MemUsed/server.Host.MemTotal*100:0)#@%</p>
</div> </div>
</div> </div>
@ -89,8 +101,11 @@
<div> <div>
<h4>硬盘</h4> <h4>硬盘</h4>
</div> </div>
<div v-if="server.State" :class="formatPercent(server.live,server.State.DiskUsed, server.Host.DiskTotal).class" :title="parseInt(server.State?server.State.DiskUsed/server.Host.DiskTotal*100:0)+'%'"> <div v-if="server.State"
<div class="progress-bar" role="progressbar" :aria-valuenow="parseInt(server.State?server.State.DiskUsed/server.Host.DiskTotal*100:0)" aria-valuemin="0" aria-valuemax="100" :style="formatPercent(server.live,server.State.DiskUsed, server.Host.DiskTotal).style"> :class="formatPercent(server.live,server.State.DiskUsed, server.Host.DiskTotal).class"
:title="parseInt(server.State?server.State.DiskUsed/server.Host.DiskTotal*100:0)+'%'">
<div class="progress-bar" role="progressbar" :aria-valuenow="parseInt(server.State?server.State.DiskUsed/server.Host.DiskTotal*100:0)" aria-valuemin="0" aria-valuemax="100"
:style="formatPercent(server.live,server.State.DiskUsed, server.Host.DiskTotal).style">
<p>@#parseInt(server.State?server.State.DiskUsed/server.Host.DiskTotal*100:0)#@%</p> <p>@#parseInt(server.State?server.State.DiskUsed/server.Host.DiskTotal*100:0)#@%</p>
</div> </div>
</div> </div>
@ -109,7 +124,7 @@
<li><i class="fas fa-list-ul" title="列表视图"></i><span>列表视图</span></li> <li><i class="fas fa-list-ul" title="列表视图"></i><span>列表视图</span></li>
</ul> </ul>
</div> </div>
</main> </main>
<section class="dark-light-toggle"> <section class="dark-light-toggle">
<label class="switcher"> <label class="switcher">
@ -125,22 +140,16 @@
<footer> <footer>
<div class="footer-container"> <div class="footer-container">
<div> <div><a href="https://github.com/naiba/nezha" target="_blank">Powered by 哪吒面板 · {{.Version}}</a>
<a href="https://github.com/naiba/nezha" target="_blank">Powered by 哪吒面板 · {{.Version}}</a> <p>&copy; <span id="copyright-date">
<p> <script>document.getElementById('copyright-date').appendChild(document.createTextNode(new Date().getFullYear()))</script>
&copy; </span> · <a href="https://blog.jackiesung.com" target="_blank">Theme designed by Jackie Sung</a>
<span id="copyright-date">
<script>
document.getElementById("copyright-date").appendChild(document.createTextNode(new Date().getFullYear()));
</script>
</span>
· <a href="https://blog.jackiesung.com" target="_blank">Theme designed by Jackie Sung</a>
</p> </p>
</div> </div>
</div> </div>
</footer> </footer>
<script src="/static/theme-daynight/js/main.js?v202101290086"></script> <script src="/static/theme-daynight/js/main.js?v202101301768" ></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@10"></script> <script src="https://cdn.jsdelivr.net/npm/sweetalert2@10"></script>
@ -268,6 +277,7 @@
} }
</script> </script>
</body> </body>
</html> </html>
{{end}} {{end}}

View File

@ -7,17 +7,20 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{{.Title}}</title> <title>{{.Title}}</title>
<link rel="shortcut icon" type="image/png" href="/static/logo.png" /> <link rel="shortcut icon" type="image/png" href="/static/logo.png" />
<link rel="stylesheet" href="/static/theme-daynight/css/service.css?v202101290086" /> <link rel="stylesheet" href="/static/theme-daynight/css/service.css?v202101301768" />
<link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/5.15.1/css/all.min.css" rel="stylesheet" /> <link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/5.15.1/css/all.min.css" rel="stylesheet" />
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
{{if ts .CustomCode}} {{.CustomCode|safe}} {{end}} {{if ts .CustomCode}}
{{.CustomCode|safe}}
{{end}}
</head> </head>
<body data-theme="light" data-gridlist="list"> <body data-theme="light" data-gridlist="list">
<article> <article>
<header class="nav-bar clearfix"> <header>
<section class="nav-bar clearfix">
<figure class="logo"><a href="/">{{.Conf.Site.Brand}}</a></figure> <figure class="logo"><a href="/">{{.Conf.Site.Brand}}</a></figure>
<div class="icon-container"> <div class="icon-container">
<div class="row cf"> <div class="row cf">
@ -31,12 +34,13 @@
<li><a href="/">首页</a></li> <li><a href="/">首页</a></li>
<li><a href="/service">服务状态</a></li> <li><a href="/service">服务状态</a></li>
{{if .Admin}} {{if .Admin}}
<li><a href="/server" style="padding: 0.8em; text-align: center">管理后台</a></li> <li><a href="/server" style="padding:.8em;text-align:center;">管理后台</a></li>
{{else}} {{else}}
<li><a href="/login">登录</a></li> <li><a href="/login">登录</a></li>
{{end}} {{end}}
</ul> </ul>
</nav> </nav>
</section>
</header> </header>
<main> <main>
@ -92,7 +96,7 @@
</li> </li>
<li> <li>
<label class="switcher"> <label class="switcher">
<input type="checkbox" name="service-grid" id="grid-list" checked /> <input type="checkbox" name="service-grid" id="grid-list" checked/>
<div> <div>
<i class="fas fa-grip-horizontal"></i> <i class="fas fa-grip-horizontal"></i>
</div> </div>
@ -122,7 +126,8 @@
<a id="back-to-top"></a> <a id="back-to-top"></a>
</article> </article>
<script src="/static/theme-daynight/js/service.js?v202101290086"></script> <script src="/static/theme-daynight/js/service.js?v202101301768"></script>
</body> </body>
</html> </html>
{{end}} {{end}}