function str2Obj(str){
var data = {};
kv = str.split('&');
for(i in kv){
v = kv[i].split('=');
data[v[0]] = v[1];
}
return data;
}
function pm2Post(method,args,callback){
var _args = null;
if (typeof(args) == 'string'){
_args = JSON.stringify(str2Obj(args));
} else {
_args = JSON.stringify(args);
}
var loadT = layer.msg('正在获取中...', { icon: 16, time: 0, shade: 0.3 });
$.post('/plugins/run', {name:'pm2', func:method, args:_args}, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function pm2List() {
var con = '
';
$(".soft-man-con").html(con);
pm2Post('list','', function(data){
var rdata = $.parseJSON(data.data);
console.log(rdata);
if (!rdata['status']){
layer.msg(rdata['msg'],{icon:2,time:2000,shade: [0.3, '#000']});
return;
}
var tbody = '';
var tmp = rdata['data'];
for(var i=0;i启动 | ';
}else{
var opt = '停止 | 重启 | 映射 | ';
}
tmp[i].path = tmp[i].path.replace('//','');
var status = '';
if(tmp[i].status != 'online'){
status = '';
}
tbody += '\
'+tmp[i].name+' | \
'+tmp[i].mode+' | \
'+tmp[i].port+' | \
'+status+' | \
'+tmp[i].restart+' | \
'+tmp[i].uptime+' | \
'+tmp[i].cpu+' | \
'+tmp[i].mem+' | \
打开 | \
\
'+opt+'删除\
| \
';
}
$("#pmlist").html(tbody);
});
}
//取版本号列表
function getNodeVersions(){
var loadT = layer.msg('正在获取版本列表...',{icon:16,time:0,shade: [0.3, '#000']});
$.get('/plugin?action=a&s=Versions&name=pm2',function(versions){
layer.close(loadT);
});
pm2Post('versions', '', function(data){
console.log(data);
return;
var opt = '';
for(var i=0;i'+versions.list[i]+'';
}else{
opt += '';
}
}
var con = '\
当前版本\
\
\
- 当前版本为['+versions.version+']
\
- 版本切换是全局的,切换版本后可能影响您正在运行的项目
\
\
';
// $("#webEdit-con").html(con);
$(".soft-man-con").html(con);
});
}
function addNode(){
var data = {path:$("input[name='path']").val(),pname:$("input[name='pname']").val(),run:$("input[name='run']").val()}
if(!data.path || !data.pname || !data.run){
layer.msg('表单不完整,请检查!',{icon:2});
return;
}
pm2Post('add', data, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg,{icon:rdata.status?1:2});
pm2List();
});
}
function delNode(pname){
safeMessage('删除项目['+pname+']','删除['+pname+']项目后,该项目将无法被访问,继续吗?',function(){
var data = "pname="+pname;
pm2Post('delete', data, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg,{icon:rdata.status?1:2});
pm2List();
});
});
}
function nodeStop(pname){
var data = 'pname=' + pname;
pm2Post('stop', data, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg,{icon:rdata.status?1:2});
pm2List();
});
}
function nodeStart(pname){
var data = 'pname=' + pname;
pm2Post('start', data, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg,{icon:rdata.status?1:2});
pm2List();
});
}
function onekeyCodeSite(codename, port, path){
}