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: "
\ -
当前路径:
计算机
\ -
    \ - \ - \ -
    文件名修改时间权限所有者
    \ - \ - \ - \ -
    ", + content: "
    \ +
    \ + \ +
    当前路径:
    \ +
    \ +
    \ +
    \ +
    计算机
    \ +
    \ +
    \ +
      \ +
      \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ +
      文件名修改时间权限所有者
      \ +
      \ +
      \ +
      \ +
      \ +
      \ + \ + \ + \ +
      ", success:function(layero,layer_index){ $('.btn-close').click(function(){ layer.close(layer_index); @@ -274,16 +299,38 @@ function changePath(d) { closeBtn: 1, shift: 5, shadeClose: false, - content: "
      \ -
      当前路径:
      计算机
      \ -
        \ - \ - \ -
        文件名修改时间权限所有者
        \ + content: "\ +
        \ +
        \ + \ +
        当前路径:
        \ +
        \ +
        \ +
        计算机
        \ +
        \ +
          \ +
          \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ +
          文件名修改时间权限所有者
          \ +
          \ +
          \ +
          \ +
          \ +
          \ \ \ \ -
          " +
          " }); setCookie("changePath", c); var b = $("#" + d).val(); @@ -323,7 +370,13 @@ function getDiskList(b) { e = e.substring(0, 10) + "..." } } - d += "" + e + "" + getLocalTime(g[2]) + "" + g[3] + "" + g[4] + "X" + d += "\ + \ + " + e + "" + getLocalTime(g[2]) + "\ + " + g[3] + "\ + " + g[4] + "\ + X\ + "; } if(h.FILES != null && h.FILES != "") { for(var f = 0; f < h.FILES.length; f++) { @@ -337,7 +390,13 @@ function getDiskList(b) { e = e.substring(0, 10) + "..." } } - d += "" + e + "" + getLocalTime(g[2]) + "" + g[3] + "" + g[4] + "" + d += "\ + " + e + "\ + " + getLocalTime(g[2]) + "\ + " + g[3] + "\ + " + g[4] + "\ + \ + "; } } $(".default").hide(); @@ -720,7 +779,12 @@ function safeMessage(j, h, g, f) { area: "350px", closeBtn: 1, shadeClose: true, - content: "

          " + h + "

          " + f + "
          "+lan.bt.cal_msg+"" + sumtext + "=
          " + content: "
          \ +

          " + h + "

          " + f + "
          "+lan.bt.cal_msg+"" + sumtext + "=
          \ +
          \ + \ +
          \ +
          " }); $("#vcodeResult").focus().keyup(function(a) { if(a.keyCode == 13) { @@ -856,16 +920,32 @@ function GetTaskList(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%下载中 | "+lan.public.close+"
        • " + b = "
        • \ +
          \ + " + g.data[d].name + "0.0M/12.5M\ + 0%\ + 下载中 | "+lan.public.close+"\ + \ +
        • "; } break; case "0": - c += "
        • " + g.data[d].name + "等待 | 删除
        • "; + c += "
        • \ + " + g.data[d].name + "\ + 等待 | 删除\ +
        • "; break; case "1": - e += "
        • " + g.data[d].name + "" + g.data[d].addtime + " "+'已完成'+" "+ '耗时' + (g.data[d].end - g.data[d].start)+"秒
        • " + e += "
        • \ + " + g.data[d].name + "\ + " + g.data[d].addtime + " "+'已完成'+" "+ '耗时' + (g.data[d].end - g.data[d].start)+"秒\ +
        • "; } } $("#srunning").html(b + c); @@ -1070,7 +1150,8 @@ function bindPanel(a,type,ip,btid,url,user,pw){ btn = ""; } else { titleName = '修改关联' + ip; - btn = ""; + btn = "\ + "; } if(url == undefined) url="http://"; if(user == undefined) user=""; @@ -1255,13 +1336,37 @@ function remind(a){ for(var d = 0; d < g.data.length; d++) { if(g.data[d].status != '1'){ task_count++; - e += '
          '+g.data[d].name+'【'+lan.bt.task_the+'】耗时['+ getSFM(g.data[d].end - g.data[d].start) +']
          '+g.data[d].addtime+'' + e += '\ + \ + \ +
          \ + '+g.data[d].name+'\ + 【'+lan.bt.task_the+'】\ + 耗时['+ getSFM(g.data[d].end - g.data[d].start) +']\ +
          \ + \ + '+g.data[d].addtime+'\ + '; } else{ - e += '
          '+g.data[d].name+'【'+lan.bt.task_ok+'】耗时['+ getSFM(g.data[d].end - g.data[d].start) +']
          '+g.data[d].addtime+''; + e += '\ + \ + \ +
          '+g.data[d].name+'\ + 【'+lan.bt.task_ok+'】\ + 耗时['+ getSFM(g.data[d].end - g.data[d].start) +']\ +
          \ + \ + '+g.data[d].addtime+'\ + '; } } var con = '
          \ - \ + \ + \ + \ + \ + \ + \ '+e+'\
          '+lan.bt.task_name+''+lan.bt.task_time+'
          '+lan.bt.task_name+''+lan.bt.task_time+'
          \
          \ @@ -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' ) {