mirror of
https://github.com/midoks/mdserver-web.git
synced 2026-10-10 04:19:26 +08:00
a
This commit is contained in:
@@ -14,14 +14,15 @@ Install_csvn()
|
||||
mkdir -p $serverPath/tmp
|
||||
|
||||
echo '正在安装脚本文件...' > $install_tmp
|
||||
wget -O $serverPath/tmp/csvn.tar.xz https://github.com/midoks/mdserver-web/releases/download/init/CollabNetSubversionEdge-5.1.4_linux-x86_64.tar.xz
|
||||
|
||||
if [ ! -d $serverPath/tmp/csvn.tar.xz ];then
|
||||
wget -O $serverPath/tmp/csvn.tar.xz https://github.com/midoks/mdserver-web/releases/download/init/CollabNetSubversionEdge-5.1.4_linux-x86_64.tar.xz
|
||||
fi
|
||||
|
||||
cd $serverPath/tmp && tar -Jxf $serverPath/tmp/csvn.tar.xz
|
||||
mv $serverPath/tmp/csvn $serverPath/csvn
|
||||
|
||||
echo '安装完成' > $install_tmp
|
||||
|
||||
rm -rf $serverPath/tmp
|
||||
}
|
||||
|
||||
Uninstall_csvn()
|
||||
|
||||
@@ -15,19 +15,22 @@ Install_openresty()
|
||||
mkdir -p $serverPath/tmp
|
||||
echo '正在安装脚本文件...' > $install_tmp
|
||||
|
||||
#wget -O $serverPath/tmp/openresty.tar.gz https://openresty.org/download/openresty-1.13.6.2.tar.gz
|
||||
#cd $serverPath/tmp && tar -zxvf openresty.tar.gz
|
||||
if [ ! -d $serverPath/tmp/openresty.tar.gz ];then
|
||||
wget -O $serverPath/tmp/openresty.tar.gz https://openresty.org/download/openresty-1.13.6.2.tar.gz
|
||||
fi
|
||||
cd $serverPath/tmp && tar -zxvf openresty.tar.gz
|
||||
|
||||
mkdir -p $serverPath/openresty
|
||||
cd $serverPath/tmp/openresty* && ./configure --prefix=$serverPath/openresty && make && make install
|
||||
cd $serverPath/tmp/openresty* && ./configure --prefix=$serverPath/openresty \
|
||||
--with-openssl=$serverPath/tmp/openssl-1.0.2q && make && make install
|
||||
|
||||
echo '安装完成' > $install_tmp
|
||||
#rm -rf $serverPath/tmp
|
||||
}
|
||||
|
||||
Uninstall_openresty()
|
||||
{
|
||||
echo "Uninstall_safelogin"
|
||||
rm -f $serverPath/openresty
|
||||
echo '卸载完成' > $install_tmp
|
||||
}
|
||||
|
||||
action=$1
|
||||
|
||||
+25
-1
@@ -84,7 +84,31 @@ def install():
|
||||
|
||||
@plugins.route('/uninstall', methods=['POST'])
|
||||
def uninstall():
|
||||
pass
|
||||
rundir = public.getRunDir()
|
||||
name = request.form.get('name', '')
|
||||
version = request.form.get('version', '')
|
||||
if name.strip() == '':
|
||||
return public.returnJson(False, "缺少插件名称!", ())
|
||||
|
||||
if version.strip() == '':
|
||||
return public.returnJson(False, "缺少版本信息!", ())
|
||||
|
||||
infoJsonPos = __plugin_name + '/' + name + '/' + 'info.json'
|
||||
|
||||
if not os.path.exists(infoJsonPos):
|
||||
return public.retJson(False, "配置文件不存在!", ())
|
||||
|
||||
pluginInfo = json.loads(public.readFile(infoJsonPos))
|
||||
|
||||
execstr = "cd " + os.getcwd() + "/plugins/" + \
|
||||
name + " && /bin/bash " + pluginInfo["shell"] \
|
||||
+ " uninstall " + version
|
||||
|
||||
taskAdd = (None, '卸载[' + name + '-' + version + ']',
|
||||
'execshell', '0', time.strftime('%Y-%m-%d %H:%M:%S'), execstr)
|
||||
|
||||
public.M('tasks').add('id,name,type,status,addtime, execstr', taskAdd)
|
||||
return public.returnJson(True, '已将卸载任务添加到队列!')
|
||||
|
||||
|
||||
@plugins.route('/installed', methods=['POST'])
|
||||
|
||||
+22
-21
@@ -1,7 +1,13 @@
|
||||
#!/bin/bash
|
||||
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
|
||||
|
||||
curPath=`pwd`
|
||||
rootPath=$(dirname "$curPath")
|
||||
serverPath=$(dirname "$rootPath")
|
||||
tmpPath=$serverPath/tmp
|
||||
libPath=$serverPath/lib
|
||||
|
||||
mkdir -p $libPath
|
||||
|
||||
|
||||
Install_Curl()
|
||||
@@ -168,21 +174,15 @@ Install_Pcre()
|
||||
|
||||
Install_OpenSSL()
|
||||
{
|
||||
if [ ! -d "/usr/local/openssl" ];then
|
||||
cd ${run_path}
|
||||
wget ${download_Url}/src/openssl-1.0.2l.tar.gz -T 20
|
||||
tar -zxf openssl-1.0.2l.tar.gz
|
||||
rm -f openssl-1.0.2l.tar.gz
|
||||
cd openssl-1.0.2l
|
||||
./config --openssldir=/usr/local/openssl zlib-dynamic shared
|
||||
if [ ! -d ${libPath}/openssl ];then
|
||||
cd ${tmpPath}
|
||||
if [ ! -d ${tmpPath}openssl-1.0.2q.tar.gz ];then
|
||||
wget https://github.com/midoks/mdserver-web/releases/download/init/openssl-1.0.2q.tar.gz -T 20
|
||||
fi
|
||||
tar -zxf openssl-1.0.2q.tar.gz
|
||||
cd openssl-1.0.2q
|
||||
./config --openssldir=${libPath}/openssl zlib-dynamic shared
|
||||
make && make install
|
||||
echo '1.0.2l_shared' > /usr/local/openssl/version.pl
|
||||
cd ..
|
||||
rm -rf openssl-1.0.2l
|
||||
cat > /etc/ld.so.conf.d/openssl.conf <<EOF
|
||||
/usr/local/openssl/lib
|
||||
EOF
|
||||
ldconfig
|
||||
fi
|
||||
}
|
||||
Install_Lib()
|
||||
@@ -207,11 +207,12 @@ if [ ! -f "${lockFile}" ];then
|
||||
fi
|
||||
}
|
||||
|
||||
Install_Lib
|
||||
|
||||
# Install_Lib
|
||||
Install_OpenSSL
|
||||
Install_Pcre
|
||||
Install_Curl
|
||||
Install_Mhash
|
||||
Install_Libmcrypt
|
||||
Install_Mcrypt
|
||||
Install_Libiconv
|
||||
# Install_Pcre
|
||||
# Install_Curl
|
||||
# Install_Mhash
|
||||
# Install_Libmcrypt
|
||||
# Install_Mcrypt
|
||||
# Install_Libiconv
|
||||
+13
-13
@@ -24,7 +24,7 @@ function Recycle_bin(type){
|
||||
body += '<tr>\
|
||||
<td><span class=\'ico ico-folder\'></span><span class="tname" title="'+rdata.dirs[i].name+'">'+shortwebname+'</span></td>\
|
||||
<td><span title="'+rdata.dirs[i].dname+'">'+shortpath+'</span></td>\
|
||||
<td>'+ToSize(rdata.dirs[i].size)+'</td>\
|
||||
<td>'+toSize(rdata.dirs[i].size)+'</td>\
|
||||
<td>'+getLocalTime(rdata.dirs[i].time)+'</td>\
|
||||
<td style="text-align: right;">\
|
||||
<a class="btlink" href="javascript:;" onclick="ReRecycleBin(\'' + rdata.dirs[i].rname.replace(/'/,"\\'") + '\',this)">'+lan.files.recycle_bin_re+'</a>\
|
||||
@@ -58,7 +58,7 @@ function Recycle_bin(type){
|
||||
body += '<tr>\
|
||||
<td><span class="ico ico-'+(GetExtName(rdata.files[i].name))+'"></span><span class="tname" title="'+rdata.files[i].name+'">'+shortwebname+'</span></td>\
|
||||
<td><span title="'+rdata.files[i].dname+'">'+shortpath+'</span></td>\
|
||||
<td>'+ToSize(rdata.files[i].size)+'</td>\
|
||||
<td>'+toSize(rdata.files[i].size)+'</td>\
|
||||
<td>'+getLocalTime(rdata.files[i].time)+'</td>\
|
||||
<td style="text-align: right;">\
|
||||
<a class="btlink" href="javascript:;" onclick="ReRecycleBin(\'' + rdata.files[i].rname.replace(/'/,"\\'") + '\',this)">'+lan.files.recycle_bin_re+'</a>\
|
||||
@@ -78,7 +78,7 @@ function Recycle_bin(type){
|
||||
body += '<tr>\
|
||||
<td><span class=\'ico ico-folder\'></span><span class="tname" title="'+rdata.dirs[i].name+'">'+shortwebname+'</span></td>\
|
||||
<td><span title="'+rdata.dirs[i].dname+'">'+shortpath+'</span></td>\
|
||||
<td>'+ToSize(rdata.dirs[i].size)+'</td>\
|
||||
<td>'+toSize(rdata.dirs[i].size)+'</td>\
|
||||
<td>'+getLocalTime(rdata.dirs[i].time)+'</td>\
|
||||
<td style="text-align: right;">\
|
||||
<a class="btlink" href="javascript:;" onclick="ReRecycleBin(\'' + rdata.dirs[i].rname.replace(/'/,"\\'") + '\',this)">'+lan.files.recycle_bin_re+'</a>\
|
||||
@@ -99,7 +99,7 @@ function Recycle_bin(type){
|
||||
body += '<tr>\
|
||||
<td><span class="ico ico-'+(GetExtName(rdata.files[i].name))+'"></span><span class="tname" title="'+rdata.files[i].name+'">'+shortwebname+'</span></td>\
|
||||
<td><span title="'+rdata.files[i].dname+'">'+shortpath+'</span></td>\
|
||||
<td>'+ToSize(rdata.files[i].size)+'</td>\
|
||||
<td>'+toSize(rdata.files[i].size)+'</td>\
|
||||
<td>'+getLocalTime(rdata.files[i].time)+'</td>\
|
||||
<td style="text-align: right;">\
|
||||
<a class="btlink" href="javascript:;" onclick="ReRecycleBin(\'' + rdata.files[i].rname.replace(/'/,"\\'") + '\',this)">'+lan.files.recycle_bin_re+'</a>\
|
||||
@@ -120,7 +120,7 @@ function Recycle_bin(type){
|
||||
body += '<tr>\
|
||||
<td><span class="ico ico-'+(GetExtName(rdata.files[i].name))+'"></span><span class="tname" title="'+rdata.files[i].name+'">'+shortwebname+'</span></td>\
|
||||
<td><span title="'+rdata.files[i].dname+'">'+shortpath+'</span></td>\
|
||||
<td>'+ToSize(rdata.files[i].size)+'</td>\
|
||||
<td>'+toSize(rdata.files[i].size)+'</td>\
|
||||
<td>'+getLocalTime(rdata.files[i].time)+'</td>\
|
||||
<td style="text-align: right;">\
|
||||
<a class="btlink" href="javascript:;" onclick="ReRecycleBin(\'' + rdata.files[i].rname.replace(/'/,"\\'") + '\',this)">'+lan.files.recycle_bin_re+'</a>\
|
||||
@@ -143,7 +143,7 @@ function Recycle_bin(type){
|
||||
body += '<tr>\
|
||||
<td><span class="ico ico-'+(GetExtName(rdata.files[i].name))+'"></span><span class="tname" title="'+rdata.files[i].name+'">'+shortwebname+'</span></td>\
|
||||
<td><span title="'+rdata.files[i].dname+'">'+shortpath+'</span></td>\
|
||||
<td>'+ToSize(rdata.files[i].size)+'</td>\
|
||||
<td>'+toSize(rdata.files[i].size)+'</td>\
|
||||
<td>'+getLocalTime(rdata.files[i].time)+'</td>\
|
||||
<td style="text-align: right;">\
|
||||
<a class="btlink" href="javascript:;" onclick="ReRecycleBin(\'' + rdata.files[i].rname.replace(/'/,"\\'") + '\',this)">'+lan.files.recycle_bin_re+'</a>\
|
||||
@@ -368,7 +368,7 @@ function GetFiles(Path) {
|
||||
Body += "<tr class='folderBoxTr' data-path='" + rdata.PATH + "/" + fmp[0] + "' filetype='dir'>\
|
||||
<td><input type='checkbox' name='id' value='"+fmp[0]+"'></td>\
|
||||
<td class='column-name'><span class='cursor' onclick=\"GetFiles('" + rdata.PATH + "/" + fmp[0] + "')\"><span class='ico ico-folder'></span><a class='text' title='" + fmp[0] + fmp[5] + "'>" + cnametext + "</a></span></td>\
|
||||
<td>"+ToSize(fmp[1])+"</td>\
|
||||
<td>"+toSize(fmp[1])+"</td>\
|
||||
<td>"+getLocalTime(fmp[2])+"</td>\
|
||||
<td>"+fmp[3]+"</td>\
|
||||
<td>"+fmp[4]+"</td>\
|
||||
@@ -384,7 +384,7 @@ function GetFiles(Path) {
|
||||
else{
|
||||
$("#set_icon").addClass("active");
|
||||
$("#set_list").removeClass("active");
|
||||
Body += "<div class='file folderBox menufolder' data-path='" + rdata.PATH + "/" + fmp[0] + "' filetype='dir' title='"+lan.files.file_name+":" + fmp[0]+" "+lan.files.file_size+":" + ToSize(fmp[1])+" "+lan.files.file_etime+":"+getLocalTime(fmp[2])+" "+lan.files.file_auth+":"+fmp[3]+" "+lan.files.file_own+":"+fmp[4]+"'>\
|
||||
Body += "<div class='file folderBox menufolder' data-path='" + rdata.PATH + "/" + fmp[0] + "' filetype='dir' title='"+lan.files.file_name+":" + fmp[0]+" "+lan.files.file_size+":" + toSize(fmp[1])+" "+lan.files.file_etime+":"+getLocalTime(fmp[2])+" "+lan.files.file_auth+":"+fmp[3]+" "+lan.files.file_own+":"+fmp[4]+"'>\
|
||||
<input type='checkbox' name='id' value='"+fmp[0]+"'>\
|
||||
<div class='ico ico-folder' ondblclick=\"GetFiles('" + rdata.PATH + "/" + fmp[0] + "')\"></div>\
|
||||
<div class='titleBox' onclick=\"GetFiles('" + rdata.PATH + "/" + fmp[0] + "')\"><span class='tname'>" + fmp[0] + "</span></div>\
|
||||
@@ -423,7 +423,7 @@ function GetFiles(Path) {
|
||||
if(getCookie("rank")=="a"){
|
||||
Body += "<tr class='folderBoxTr' data-path='" + rdata.PATH +"/"+ fmp[0] + "' filetype='" + fmp[0] + "'><td><input type='checkbox' name='id' value='"+fmp[0]+"'></td>\
|
||||
<td class='column-name'><span class='ico ico-"+(GetExtName(fmp[0]))+"'></span><a class='text' title='" + fmp[0] + fmp[5] + "'>" + cnametext + "</a></td>\
|
||||
<td>" + (ToSize(fmp[1])) + "</td>\
|
||||
<td>" + (toSize(fmp[1])) + "</td>\
|
||||
<td>" + ((fmp[2].length > 11)?fmp[2]:getLocalTime(fmp[2])) + "</td>\
|
||||
<td>"+fmp[3]+"</td>\
|
||||
<td>"+fmp[4]+"</td>\
|
||||
@@ -438,14 +438,14 @@ function GetFiles(Path) {
|
||||
</span></td></tr>";
|
||||
}
|
||||
else{
|
||||
Body += "<div class='file folderBox menufile' data-path='" + rdata.PATH +"/"+ fmp[0] + "' filetype='"+fmp[0]+"' title='"+lan.files.file_name+":" + fmp[0]+" "+lan.files.file_size+":" + ToSize(fmp[1])+" "+lan.files.file_etime+":"+getLocalTime(fmp[2])+" "+lan.files.file_auth+":"+fmp[3]+" "+lan.files.file_own+":"+fmp[4]+"'>\
|
||||
Body += "<div class='file folderBox menufile' data-path='" + rdata.PATH +"/"+ fmp[0] + "' filetype='"+fmp[0]+"' title='"+lan.files.file_name+":" + fmp[0]+" "+lan.files.file_size+":" + toSize(fmp[1])+" "+lan.files.file_etime+":"+getLocalTime(fmp[2])+" "+lan.files.file_auth+":"+fmp[3]+" "+lan.files.file_own+":"+fmp[4]+"'>\
|
||||
<input type='checkbox' name='id' value='"+fmp[0]+"'>\
|
||||
<div class='ico ico-"+(GetExtName(fmp[0]))+"'></div>\
|
||||
<div class='titleBox'><span class='tname'>" + fmp[0] + "</span></div>\
|
||||
</div>";
|
||||
}
|
||||
}
|
||||
var dirInfo = '('+lan.files.get_size.replace('{1}',rdata.DIR.length+'').replace('{2}',rdata.DIR.length+'')+'<font id="pathSize">'+(ToSize(totalSize))+'<a class="btlink ml5" onClick="GetPathSize()">'+lan.files.get+'</a></font>)';
|
||||
var dirInfo = '('+lan.files.get_size.replace('{1}',rdata.DIR.length+'').replace('{2}',rdata.DIR.length+'')+'<font id="pathSize">'+(toSize(totalSize))+'<a class="btlink ml5" onClick="GetPathSize()">'+lan.files.get+'</a></font>)';
|
||||
$("#DirInfo").html(dirInfo);
|
||||
if(getCookie("rank")=="a"){
|
||||
var tablehtml = '<table width="100%" border="0" cellpadding="0" cellspacing="0" class="table table-hover">\
|
||||
@@ -724,7 +724,7 @@ function BatchPaste(){
|
||||
if(result.length > 0){
|
||||
var tbody = '';
|
||||
for(var i=0;i<result.length;i++){
|
||||
tbody += '<tr><td>'+result[i].filename+'</td><td>'+ToSize(result[i].size)+'</td><td>'+getLocalTime(result[i].mtime)+'</td></tr>';
|
||||
tbody += '<tr><td>'+result[i].filename+'</td><td>'+toSize(result[i].size)+'</td><td>'+getLocalTime(result[i].mtime)+'</td></tr>';
|
||||
}
|
||||
var mbody = '<div class="divtable"><table class="table table-hover" width="100%" border="0" cellpadding="0" cellspacing="0"><thead><th>文件名</th><th>大小</th><th>最后修改时间</th></thead>\
|
||||
<tbody>'+tbody+'</tbody>\
|
||||
@@ -1118,7 +1118,7 @@ function PasteFile(fileName) {
|
||||
if(result.length > 0){
|
||||
var tbody = '';
|
||||
for(var i=0;i<result.length;i++){
|
||||
tbody += '<tr><td>'+result[i].filename+'</td><td>'+ToSize(result[i].size)+'</td><td>'+getLocalTime(result[i].mtime)+'</td></tr>';
|
||||
tbody += '<tr><td>'+result[i].filename+'</td><td>'+toSize(result[i].size)+'</td><td>'+getLocalTime(result[i].mtime)+'</td></tr>';
|
||||
}
|
||||
var mbody = '<div class="divtable"><table class="table table-hover" width="100%" border="0" cellpadding="0" cellspacing="0"><thead><th>文件名</th><th>大小</th><th>最后修改时间</th></thead>\
|
||||
<tbody>'+tbody+'</tbody>\
|
||||
|
||||
+100
-7
@@ -17,7 +17,7 @@ $(function() {
|
||||
}).click(function() {
|
||||
$(this).find(".mem-re-min").hide();
|
||||
if (!($(this).hasClass("mem-action"))) {
|
||||
ReMemory();
|
||||
reMemory();
|
||||
var btlen = $(".mem-release").find(".mask span").text();
|
||||
$(this).addClass("mem-action");
|
||||
$(this).find(".mask").css({ "color": "#20a53a" });
|
||||
@@ -83,7 +83,7 @@ function rocket(sum, m) {
|
||||
$(".mem-release").find(".mask span").text(n);
|
||||
}
|
||||
//释放内存
|
||||
function ReMemory() {
|
||||
function reMemory() {
|
||||
setTimeout(function() {
|
||||
$(".mem-release").find('.mask').css({ 'color': '#20a53a', 'font-size': '14px' }).html('<span style="display:none">1</span>' + lan.index.memre_ok_0 + ' <img src="/static/img/ings.gif">');
|
||||
$.post('/system?action=ReMemory', '', function(rdata) {
|
||||
@@ -111,7 +111,7 @@ function ReMemory() {
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
function GetPercent(num, total) {
|
||||
function getPercent(num, total) {
|
||||
num = parseFloat(num);
|
||||
total = parseFloat(total);
|
||||
if (isNaN(num) || isNaN(total)) {
|
||||
@@ -120,7 +120,7 @@ function GetPercent(num, total) {
|
||||
return total <= 0 ? "0%" : (Math.round(num / total * 10000) / 100.00);
|
||||
}
|
||||
|
||||
function GetDiskInfo() {
|
||||
function getDiskInfo() {
|
||||
$.get('/system/disk_info', function(rdata) {
|
||||
var dBody;
|
||||
for (var i = 0; i < rdata.length; i++) {
|
||||
@@ -161,7 +161,7 @@ function clearSystem() {
|
||||
var loadT = layer.msg('正在清理系统垃圾 <img src="/static/img/ing.gif">', { icon: 16, time: 0, shade: [0.3, "#000"] });
|
||||
$.get('/system?action=ClearSystem', function(rdata) {
|
||||
layer.close(loadT);
|
||||
layer.msg('清理完成,共清理[' + rdata[0] + ']个文件,释放[' + ToSize(rdata[1]) + ']磁盘空间!', { icon: 1 });
|
||||
layer.msg('清理完成,共清理[' + rdata[0] + ']个文件,释放[' + toSize(rdata[1]) + ']磁盘空间!', { icon: 1 });
|
||||
});
|
||||
}
|
||||
|
||||
@@ -250,9 +250,9 @@ function getNet() {
|
||||
$("#InterfaceSpeed").html(lan.index.interfacespeed + ": 1.0Gbps");
|
||||
$("#upSpeed").html(net.up + ' KB');
|
||||
$("#downSpeed").html(net.down + ' KB');
|
||||
$("#downAll").html(ToSize(net.downTotal));
|
||||
$("#downAll").html(toSize(net.downTotal));
|
||||
$("#downAll").attr('title', lan.index.package + ':' + net.downPackets)
|
||||
$("#upAll").html(ToSize(net.upTotal));
|
||||
$("#upAll").html(toSize(net.upTotal));
|
||||
$("#upAll").attr('title', lan.index.package + ':' + net.upPackets)
|
||||
$("#core").html(net.cpu[1] + " " + lan.index.cpu_core);
|
||||
$("#state").html(net.cpu[0]);
|
||||
@@ -688,4 +688,97 @@ function showDanger(num, port) {
|
||||
</div>'
|
||||
});
|
||||
$(".showDanger td").css("padding", "8px")
|
||||
}
|
||||
|
||||
|
||||
//首页软件列表
|
||||
function indexSoft() {
|
||||
var loadT = layer.msg('正在获取列表...', { icon: 16, time: 0, shade: [0.3, '#000'] });
|
||||
$.post('/plugins/get_plugin_list', 'display=1', function(rdata) {
|
||||
layer.close(loadT);
|
||||
var con = '';
|
||||
for (var i = 0; i < rdata['data'].length - 1; i++) {
|
||||
var len = rdata.data[i].versions.length;
|
||||
var version_info = '';
|
||||
for (var j = 0; j < len; j++) {
|
||||
if (rdata.data[i].versions[j].status) continue;
|
||||
version_info += rdata.data[i].versions[j].version + '|';
|
||||
}
|
||||
if (version_info != '') {
|
||||
version_info = version_info.substring(0, version_info.length - 1);
|
||||
}
|
||||
if (rdata.data[i].display) {
|
||||
var isDisplay = false;
|
||||
if (rdata.data[i].name != 'php') {
|
||||
for (var n = 0; n < len; n++) {
|
||||
if (rdata.data[i].versions[n].status == true) {
|
||||
isDisplay = true;
|
||||
var version = rdata.data[i].versions[n].version;
|
||||
if (rdata.data[i].versions[n].run == true) {
|
||||
state = '<span style="color:#20a53a" class="glyphicon glyphicon-play"></span>'
|
||||
} else {
|
||||
state = '<span style="color:red" class="glyphicon glyphicon-pause"></span>'
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isDisplay) {
|
||||
var clickName = 'SoftMan';
|
||||
if (rdata.data[i].tip == 'lib') {
|
||||
clickName = 'PluginMan';
|
||||
version_info = rdata.data[i].title;
|
||||
}
|
||||
|
||||
con += '<div class="col-sm-3 col-md-3 col-lg-3" data-id="' + rdata.data[i].pid + '">\
|
||||
<span class="spanmove"></span>\
|
||||
<div onclick="' + clickName + '(\'' + rdata.data[i].name + '\',\'' + version_info + '\')">\
|
||||
<div class="image"><img src="/static/img/soft_ico/ico-' + rdata.data[i].name + '.png"></div>\
|
||||
<div class="sname">' + rdata.data[i].title + ' ' + version + state + '</div>\
|
||||
</div>\
|
||||
</div>'
|
||||
}
|
||||
} else {
|
||||
for (var n = 0; n < len; n++) {
|
||||
if (rdata.data[i].versions[n].status == true) {
|
||||
var version = rdata.data[i].versions[n].version;
|
||||
if (rdata.data[i].versions[n].run == true) {
|
||||
state = '<span style="color:#20a53a" class="glyphicon glyphicon-play"></span>'
|
||||
} else {
|
||||
state = '<span style="color:red" class="glyphicon glyphicon-pause"></span>'
|
||||
}
|
||||
}
|
||||
if (rdata.data[i].versions[n].display == true) {
|
||||
con += '<div class="col-sm-3 col-md-3 col-lg-3" data-id="' + rdata.data[i].pid + '">\
|
||||
<span class="spanmove"></span>\
|
||||
<div onclick="phpSoftMain(\'' + rdata.data[i].versions[n].version + '\',' + n + ')">\
|
||||
<div class="image"><img src="/static/img/soft_ico/ico-' + rdata.data[i].name + '.png"></div>\
|
||||
<div class="sname">' + rdata.data[i].title + ' ' + rdata.data[i].versions[n].version + state + '</div>\
|
||||
</div>\
|
||||
</div>'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$("#indexsoft").html(con);
|
||||
//软件位置移动
|
||||
var softboxlen = $("#indexsoft > div").length;
|
||||
var softboxsum = 12;
|
||||
var softboxcon = '';
|
||||
var softboxn = softboxlen;
|
||||
if (softboxlen <= softboxsum) {
|
||||
for (var i = 0; i < softboxsum - softboxlen; i++) {
|
||||
softboxn += 1000;
|
||||
softboxcon += '<div class="col-sm-3 col-md-3 col-lg-3 no-bg" data-id="' + softboxn + '"></div>'
|
||||
}
|
||||
$("#indexsoft").append(softboxcon);
|
||||
}
|
||||
$("#indexsoft").dragsort({ dragSelector: ".spanmove", dragBetween: true, dragEnd: saveOrder, placeHolderTemplate: "<div class='col-sm-3 col-md-3 col-lg-3 dashed-border'></div>" });
|
||||
|
||||
function saveOrder() {
|
||||
var data = $("#indexsoft > div").map(function() { return $(this).attr("data-id"); }).get();
|
||||
var ssort = data.join("|");
|
||||
$("input[name=list1SortOrder]").val(ssort);
|
||||
$.post("/plugin?action=savePluginSort", 'ssort=' + ssort, function(rdata) {});
|
||||
};
|
||||
});
|
||||
}
|
||||
+20
-33
@@ -16,14 +16,31 @@ function randomStrPwd(b) {
|
||||
return d
|
||||
}
|
||||
|
||||
function repeatPwd(a) {
|
||||
$("#MyPassword").val(RandomStrPwd(a))
|
||||
function msgTpl(msg, args){
|
||||
if (typeof args == 'string'){
|
||||
return msg.replace('{1}', args);
|
||||
} else if (typeof args == 'object'){
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
rep = '{' + (i + 1) + '}';
|
||||
msg = msg.replace(rep, args[i]);
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
|
||||
function refresh() {
|
||||
window.location.reload()
|
||||
}
|
||||
|
||||
var mdw = {
|
||||
};
|
||||
|
||||
function repeatPwd(a) {
|
||||
$("#MyPassword").val(RandomStrPwd(a))
|
||||
}
|
||||
|
||||
|
||||
|
||||
function GetBakPost(b) {
|
||||
$(".baktext").hide().prev().show();
|
||||
var c = $(".baktext").attr("data-id");
|
||||
@@ -36,36 +53,6 @@ function GetBakPost(b) {
|
||||
$(".baktext").remove()
|
||||
}
|
||||
|
||||
function setWebPs(b, e, a) {
|
||||
var d = layer.load({
|
||||
shade: true,
|
||||
shadeClose: false
|
||||
});
|
||||
var c = "ps=" + a;
|
||||
$.post("/data?action=setPs", "table=" + b + "&id=" + e + "&" + c, function(f) {
|
||||
if(f == true) {
|
||||
if(b == "sites") {
|
||||
getWeb(1)
|
||||
} else {
|
||||
if(b == "ftps") {
|
||||
getFtp(1)
|
||||
} else {
|
||||
getData(1)
|
||||
}
|
||||
}
|
||||
layer.closeAll();
|
||||
layer.msg(lan.public.edit_ok, {
|
||||
icon: 1
|
||||
});
|
||||
} else {
|
||||
layer.msg(lan.public.edit_err, {
|
||||
icon: 2
|
||||
});
|
||||
layer.closeAll();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(".menu-icon").click(function() {
|
||||
$(".sidebar-scroll").toggleClass("sidebar-close");
|
||||
$(".main-content").toggleClass("main-content-open");
|
||||
@@ -104,7 +91,7 @@ function getLocalTime(a) {
|
||||
return new Date(parseInt(a) * 1000).format("yyyy/MM/dd hh:mm:ss")
|
||||
}
|
||||
|
||||
function ToSize(a) {
|
||||
function toSize(a) {
|
||||
var d = [" B", " KB", " MB", " GB", " TB", " PB"];
|
||||
var e = 1024;
|
||||
for(var b = 0; b < d.length; b++) {
|
||||
|
||||
+7
-116
@@ -29,101 +29,8 @@ function SoftMan(name, version) {
|
||||
}
|
||||
|
||||
|
||||
//首页软件列表
|
||||
function indexsoft() {
|
||||
return;
|
||||
var loadT = layer.msg('正在获取列表...', { icon: 16, time: 0, shade: [0.3, '#000'] });
|
||||
$.post('/plugins/get_plugin_list', 'display=1', function(rdata) {
|
||||
layer.close(loadT);
|
||||
var con = '';
|
||||
for (var i = 0; i < rdata['data'].length - 1; i++) {
|
||||
var len = rdata.data[i].versions.length;
|
||||
var version_info = '';
|
||||
for (var j = 0; j < len; j++) {
|
||||
if (rdata.data[i].versions[j].status) continue;
|
||||
version_info += rdata.data[i].versions[j].version + '|';
|
||||
}
|
||||
if (version_info != '') {
|
||||
version_info = version_info.substring(0, version_info.length - 1);
|
||||
}
|
||||
if (rdata.data[i].display) {
|
||||
var isDisplay = false;
|
||||
if (rdata.data[i].name != 'php') {
|
||||
for (var n = 0; n < len; n++) {
|
||||
if (rdata.data[i].versions[n].status == true) {
|
||||
isDisplay = true;
|
||||
var version = rdata.data[i].versions[n].version;
|
||||
if (rdata.data[i].versions[n].run == true) {
|
||||
state = '<span style="color:#20a53a" class="glyphicon glyphicon-play"></span>'
|
||||
} else {
|
||||
state = '<span style="color:red" class="glyphicon glyphicon-pause"></span>'
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isDisplay) {
|
||||
var clickName = 'SoftMan';
|
||||
if (rdata.data[i].tip == 'lib') {
|
||||
clickName = 'PluginMan';
|
||||
version_info = rdata.data[i].title;
|
||||
}
|
||||
|
||||
con += '<div class="col-sm-3 col-md-3 col-lg-3" data-id="' + rdata.data[i].pid + '">\
|
||||
<span class="spanmove"></span>\
|
||||
<div onclick="' + clickName + '(\'' + rdata.data[i].name + '\',\'' + version_info + '\')">\
|
||||
<div class="image"><img src="/static/img/soft_ico/ico-' + rdata.data[i].name + '.png"></div>\
|
||||
<div class="sname">' + rdata.data[i].title + ' ' + version + state + '</div>\
|
||||
</div>\
|
||||
</div>'
|
||||
}
|
||||
} else {
|
||||
for (var n = 0; n < len; n++) {
|
||||
if (rdata.data[i].versions[n].status == true) {
|
||||
var version = rdata.data[i].versions[n].version;
|
||||
if (rdata.data[i].versions[n].run == true) {
|
||||
state = '<span style="color:#20a53a" class="glyphicon glyphicon-play"></span>'
|
||||
} else {
|
||||
state = '<span style="color:red" class="glyphicon glyphicon-pause"></span>'
|
||||
}
|
||||
}
|
||||
if (rdata.data[i].versions[n].display == true) {
|
||||
con += '<div class="col-sm-3 col-md-3 col-lg-3" data-id="' + rdata.data[i].pid + '">\
|
||||
<span class="spanmove"></span>\
|
||||
<div onclick="phpSoftMain(\'' + rdata.data[i].versions[n].version + '\',' + n + ')">\
|
||||
<div class="image"><img src="/static/img/soft_ico/ico-' + rdata.data[i].name + '.png"></div>\
|
||||
<div class="sname">' + rdata.data[i].title + ' ' + rdata.data[i].versions[n].version + state + '</div>\
|
||||
</div>\
|
||||
</div>'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$("#indexsoft").html(con);
|
||||
//软件位置移动
|
||||
var softboxlen = $("#indexsoft > div").length;
|
||||
var softboxsum = 12;
|
||||
var softboxcon = '';
|
||||
var softboxn = softboxlen;
|
||||
if (softboxlen <= softboxsum) {
|
||||
for (var i = 0; i < softboxsum - softboxlen; i++) {
|
||||
softboxn += 1000;
|
||||
softboxcon += '<div class="col-sm-3 col-md-3 col-lg-3 no-bg" data-id="' + softboxn + '"></div>'
|
||||
}
|
||||
$("#indexsoft").append(softboxcon);
|
||||
}
|
||||
$("#indexsoft").dragsort({ dragSelector: ".spanmove", dragBetween: true, dragEnd: saveOrder, placeHolderTemplate: "<div class='col-sm-3 col-md-3 col-lg-3 dashed-border'></div>" });
|
||||
|
||||
function saveOrder() {
|
||||
var data = $("#indexsoft > div").map(function() { return $(this).attr("data-id"); }).get();
|
||||
var ssort = data.join("|");
|
||||
$("input[name=list1SortOrder]").val(ssort);
|
||||
$.post("/plugin?action=savePluginSort", 'ssort=' + ssort, function(rdata) {});
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
//插件设置菜单
|
||||
function PluginMan(name, title) {
|
||||
function pluginMan(name, title) {
|
||||
loadT = layer.msg(lan.soft.menu_temp, { icon: 16, time: 0, shade: [0.3, '#000'] });
|
||||
$.get('/plugins/setting?name=' + name, function(rhtml) {
|
||||
layer.close(loadT);
|
||||
@@ -245,8 +152,8 @@ function GetSList(isdisplay) {
|
||||
if (plugin.status == true) {
|
||||
isSetup = true;
|
||||
if (plugin.tip == 'lib') {
|
||||
var mupdate = (plugin.versions[n].no == plugin.versions[n].version) ? '' : '<a class="btlink" onclick="SoftUpdate(\'' + plugin.name + '\',\'' + plugin.versions[n].version + '\',\'' + plugin.versions[n].version + '\')">更新</a> | ';
|
||||
handle = mupdate + '<a class="btlink" onclick="PluginMan(\'' + plugin.name + '\',\'' + plugin.title + '\')">' + lan.soft.setup + '</a> | <a class="btlink" onclick="UninstallVersion(\'' + plugin.name + '\',\'' + plugin.versions[n].version + '\',\'' + plugin.title + '\')">卸载</a>';
|
||||
var mupdate = (plugin.versions[n].no == plugin.versions[n].version) ? '' : '<a class="btlink" onclick="SoftUpdate(\'' + plugin.name + '\',\'' + plugin.versions + '\',\'' + plugin.versions[n].version + '\')">更新</a> | ';
|
||||
handle = mupdate + '<a class="btlink" onclick="PluginMan(\'' + plugin.name + '\',\'' + plugin.title + '\')">' + lan.soft.setup + '</a> | <a class="btlink" onclick="UninstallVersion(\'' + plugin.name + '\',\'' + plugin.versions + '\',\'' + plugin.title + '\')">卸载</a>';
|
||||
titleClick = 'onclick="PluginMan(\'' + plugin.name + '\',\'' + plugin.title + '\')" style="cursor:pointer"';
|
||||
} else {
|
||||
console.log(plugin, n);
|
||||
@@ -254,7 +161,7 @@ function GetSList(isdisplay) {
|
||||
|
||||
var mupdate = '';//(plugin.versions[n] == plugin.updates[n]) '' : '<a class="btlink" onclick="SoftUpdate(\'' + plugin.name + '\',\'' + plugin.versions[n].version + '\',\'' + plugin.updates[n] + '\')">更新</a> | ';
|
||||
if (plugin.versions[n] == '') mupdate = '';
|
||||
handle = mupdate + '<a class="btlink" onclick="SoftMan(\'' + plugin.name + '\',\'' + version_info + '\')">' + lan.soft.setup + '</a> | <a class="btlink" onclick="UninstallVersion(\'' + plugin.name + '\',\'' + plugin.versions[n].version + '\',\'' + plugin.title + '\')">卸载</a>';
|
||||
handle = mupdate + '<a class="btlink" onclick="SoftMan(\'' + plugin.name + '\',\'' + version_info + '\')">' + lan.soft.setup + '</a> | <a class="btlink" onclick="UninstallVersion(\'' + plugin.name + '\',\'' + plugin.versions + '\',\'' + plugin.title + '\')">卸载</a>';
|
||||
titleClick = 'onclick="SoftMan(\'' + plugin.name + '\',\'' + version_info + '\')" style="cursor:pointer"';
|
||||
}
|
||||
|
||||
@@ -329,7 +236,7 @@ function SoftUpdate(name, version, update) {
|
||||
//独立安装
|
||||
function oneInstall(name, version) {
|
||||
var isError = false
|
||||
|
||||
|
||||
var optw = '';
|
||||
if (name == 'mysql') {
|
||||
optw = "<br><br><li style='color:red;'>" + lan.soft.mysql_f + "</li>"
|
||||
@@ -486,26 +393,10 @@ function AddVersion(name, ver, type, obj, title) {
|
||||
|
||||
//卸载软件
|
||||
function UninstallVersion(name, version, title) {
|
||||
var isError = false
|
||||
if (name == 'mysql') {
|
||||
var sUrl = '/data?action=getData&table=databases';
|
||||
$.ajax({
|
||||
url: sUrl,
|
||||
type: "GET",
|
||||
async: false,
|
||||
success: function(dataD) {
|
||||
if (dataD.data.length > 0) {
|
||||
layer.msg(lan.soft.mysql_del_err + '<p style="color:red">强行卸载: curl http://h.bt.cn/mu.sh|bash</p>', { icon: 5, time: 8000 });
|
||||
isError = true;;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
if (isError) return;
|
||||
layer.confirm(lan.soft.uninstall_confirm.replace('{1}', title).replace('{2}', version), { icon: 3, closeBtn: 2 }, function() {
|
||||
layer.confirm(msgTpl('您真的要卸载[{1}-{2}]吗?', [title, version]), { icon: 3, closeBtn: 2 }, function() {
|
||||
var data = 'name=' + name + '&version=' + version;
|
||||
var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] });
|
||||
$.post('/plugins?action=unInstall', data, function(rdata) {
|
||||
$.post('/plugins/uninstall', data, function(rdata) {
|
||||
layer.close(loadT)
|
||||
GetSList();
|
||||
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
|
||||
|
||||
@@ -133,11 +133,11 @@ var serverType = getCookie('serverType');
|
||||
<script type="text/javascript" src="/static/js/index.js?v={{config.version}}"></script>
|
||||
<script type="text/javascript">
|
||||
setTimeout(function() {
|
||||
GetDiskInfo();
|
||||
getDiskInfo();
|
||||
}, 500)
|
||||
|
||||
setTimeout(function() {
|
||||
indexsoft();
|
||||
indexSoft();
|
||||
}, 1000);
|
||||
|
||||
setTimeout(function() {
|
||||
|
||||
Reference in New Issue
Block a user