diff --git a/class/core/config_api.py b/class/core/config_api.py
index b22558350..d581f8fcf 100755
--- a/class/core/config_api.py
+++ b/class/core/config_api.py
@@ -27,7 +27,7 @@ from flask import request
class config_api:
- __version = '0.15.0.2'
+ __version = '0.15.0.3'
__api_addr = 'data/api.json'
def __init__(self):
diff --git a/plugins/nezha/index.py b/plugins/nezha/index.py
index 05af3ba72..ae9064c3d 100755
--- a/plugins/nezha/index.py
+++ b/plugins/nezha/index.py
@@ -264,6 +264,21 @@ class App:
mw.execShell('systemctl disable nezha')
return 'ok'
+ def initd_status_agent(self):
+ cmd = 'systemctl status nezha-agent | grep loaded | grep "enabled;"'
+ data = mw.execShell(cmd)
+ if data[0] == '':
+ return 'fail'
+ return 'ok'
+
+ def initd_install_agent(self):
+ mw.execShell('systemctl enable nezha-agent')
+ return 'ok'
+
+ def initd_uinstall_agent(self):
+ mw.execShell('systemctl disable nezha-agent')
+ return 'ok'
+
def conf(self):
return self.getServerDir() + '/dashboard/data/config.yaml'
diff --git a/route/static/app/public.js b/route/static/app/public.js
index 6f51ad838..9ac7de369 100755
--- a/route/static/app/public.js
+++ b/route/static/app/public.js
@@ -233,16 +233,41 @@ function changePathCallback(default_dir, callback) {
closeBtn: 1,
shift: 5,
shadeClose: false,
- content: "
\
@@ -1325,12 +1430,26 @@ function getReloads() {
c += f[e] + "
"
}
if(h.task[g].name.indexOf("扫描") != -1) {
- b = "
" + h.task[g].name + "正在扫描
| 关闭" + c + "
"
+ b = "
\
+ " + h.task[g].name + "\
+ 正在扫描
| 关闭\
+ \
+ " + c + "
\
+ ";
} else {
- b = "
" + h.task[g].name + "正在安装
| 关闭" + c + "
"
+ b = "
\
+ " + h.task[g].name + "\
+ 正在安装
| 关闭\
+ " + c + "
\
+ ";
}
} else {
- b = "
" + h.task[g].name + "" + (toSize(h.msg.used) + "/" + toSize(h.msg.total)) + "" + h.msg.pre + "%"+lan.bt.task_downloading+"
| "+lan.public.close+""
+ b = "
\
+ \
+ " + h.task[g].name + "" + (toSize(h.msg.used) + "/" + toSize(h.msg.total)) + "\
+ " + h.msg.pre + "%\
+ "+lan.bt.task_downloading+"
| "+lan.public.close+"\
+ "
}
} else {
d += "
" + h.task[g].name + "等待 | 删除'
@@ -1380,14 +1499,24 @@ function tasklist(a){
case "-1":
f = true;
if(g.data[d].type != "download") {
- b = "
" + g.data[d].name + "正在安装
| 关闭"
+ b = "
\
+ " + g.data[d].name + "\
+ 正在安装
| 关闭\
+ \
+ ";
} else {
- b = "
" + g.data[d].name + "0.0M/12.5M0%下载中
| 关闭"
+ b = "
\
+ " + g.data[d].name + "0.0M/12.5M\
+ 0%下载中
| 关闭\
+ ";
}
task_count++;
break;
case "0":
- c += "
" + g.data[d].name + "等待 | "+lan.public.del+"";
+ c += "
\
+ " + g.data[d].name + "\
+ 等待 | "+lan.public.del+"\
+ ";
task_count++;
break;
}
@@ -1704,7 +1833,8 @@ function showSpeed(filename) {
* 显示进度窗口
*/
function showSpeedWindow(msg, speed_log_func_name, callback){
- var speed_msg = "
[MSG]
";
+ var speed_msg = "
[MSG]
";
var showSpeedKey = layer.open({
title: false,
type: 1,
@@ -2227,14 +2357,18 @@ function pluginConfigSave(fileName) {
},'json');
}
-
-
-function pluginInitD(_name,_version){
+function pluginInitD(_name, _version, _suffix_name=''){
if (typeof _version == 'undefined'){
_version = '';
}
+
+ var default_name = 'initd_status';
+ if ( _suffix_name != '' ){
+ default_name = 'initd_status_'+_suffix_name;
+ }
+
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
- $.post('/plugins/run', {name:_name, func:'initd_status',version : _version}, function(data) {
+ $.post('/plugins/run', {name:_name, func:default_name, version : _version}, function(data) {
layer.close(loadT);
if( !data.status ){
layer.msg(data.msg,{icon:0,time:3000,shade: [0.3, '#000']});
@@ -2245,35 +2379,48 @@ function pluginInitD(_name,_version){
return;
}
if (data.data == 'ok'){
- pluginSetInitD(_name, _version, true);
+ pluginSetInitD(_name, _version, true, _suffix_name);
} else {
- pluginSetInitD(_name, _version, false);
+ pluginSetInitD(_name, _version, false, _suffix_name);
}
},'json');
}
-function pluginSetInitD(_name, _version, status){
+function pluginSetInitD(_name, _version, status,_suffix_name=''){
+
+ var default_name = (status?'initd_uninstall':'initd_install');
+ if ( _suffix_name != '' ){
+ default_name = default_name + '_' + _suffix_name;
+ }
+
var serviceCon ='
当前状态:'+(status ? '已加载' : '未加载' )+
'
\
- \
+ \
';
$(".soft-man-con").html(serviceCon);
}
-function pluginOpInitD(a, _version, b) {
+function pluginOpInitD(a, _version, b, _suffix_name='') {
var c = "name=" + a + "&func=" + b + "&version="+_version;
var d = "";
+ b = b.split('_'+_suffix_name)[0];
switch(b) {
case "initd_install":d = '加载';break;
case "initd_uninstall":d = '卸载';break;
}
- layer.confirm( msgTpl('您真的要{1}{2}{3}服务吗?', [d,a,_version]), {icon:3,closeBtn: 1}, function() {
- var e = layer.msg(msgTpl('正在{1}{2}{3}服务,请稍候...',[d,a,_version]), {icon: 16,time: 0});
+
+ _ver = _version;
+ if(_version != ''){
+ _ver = '【' + _version + '】';
+ }
+
+ layer.confirm( msgTpl('您真的要{1}{2}{3}服务吗?', [d,a,_ver]), {icon:3,closeBtn: 1}, function() {
+ var e = layer.msg(msgTpl('正在{1}{2}{3}服务,请稍候...',[d,a,_ver]), {icon: 16,time: 0});
$.post("/plugins/run", c, function(g) {
layer.close(e);
- var f = g.data == 'ok' ? msgTpl('{1}{3}服务已{2}',[a,d,_version]) : msgTpl('{1}{3}服务{2}失败!',[a,d,_version]);
+ var f = g.data == 'ok' ? msgTpl('{1}{3}服务已{2}',[a,d,_ver]) : msgTpl('{1}{3}服务{2}失败!',[a,d,_ver]);
layer.msg(f, {icon: g.data == 'ok' ? 1 : 2});
if ( b == 'initd_install' && g.data == 'ok' ) {