Simple Linux Panel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mdserver-web/plugins/mongodb/js/mongodb.js

190 lines
7.9 KiB

1 year ago
function mgPost(method, version, args,callback){
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
var req_data = {};
req_data['name'] = 'mongodb';
req_data['func'] = method;
req_data['version'] = version;
if (typeof(args) == 'string'){
req_data['args'] = JSON.stringify(toArrayObject(args));
} else {
req_data['args'] = JSON.stringify(args);
}
$.post('/plugins/run', req_data, function(data) {
layer.close(loadT);
if (!data.status){
//错误展示10S
layer.msg(data.msg,{icon:0,time:2000,shade: [10, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
3 years ago
function mongoStatus() {
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
$.post('/plugins/run', {name:'mongodb', func:'run_info'}, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
var rdata = $.parseJSON(data.data);
1 year ago
var con = '<div class="divtable">\
3 years ago
<table class="table table-hover table-bordered" style="width: 490px;">\
<thead><th>字段</th><th></th><th></th></thead>\
<tbody>\
1 year ago
<tr><th>host</th><td>' + rdata.host + '</td><td></td></tr>\
3 years ago
<tr><th>version</th><td>' + rdata.version + '</td><td></td></tr>\
<tr><th>db_path</th><td>' + rdata.db_path + '</td><td></td></tr>\
<tr><th>uptime</th><td>' + rdata.uptime + '</td><td></td></tr>\
<tr><th>connections</th><td>' + rdata.connections + '</td><td></td></tr>\
<tr><th>collections</th><td>' + rdata.collections + '</td><td></td></tr>\
1 year ago
<tr><th>insert</th><td>' + rdata.pf['insert'] + '</td><td></td></tr>\
<tr><th>query</th><td>' + rdata.pf['query'] + '</td><td></td></tr>\
<tr><th>update</th><td>' + rdata.pf['update'] + '</td><td></td></tr>\
<tr><th>delete</th><td>' + rdata.pf['delete'] + '</td><td></td></tr>\
<tr><th>getmore</th><td>' + rdata.pf['getmore'] + '</td><td>getmore</td></tr>\
<tr><th>command</th><td>' + rdata.pf['command'] + '</td><td></td></tr>\
3 years ago
<tbody>\
1 year ago
</table></div>';
$(".soft-man-con").html(con);
},'json');
}
function mongoDocStatus() {
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
$.post('/plugins/run', {name:'mongodb', func:'run_doc_info'}, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
var rdata = $.parseJSON(data.data);
3 years ago
var t = '';
for(var i=0; i<rdata.dbs.length;i++){
t += '<tr>';
t += '<th>'+rdata.dbs[i]["db"]+'</th>';
t += '<th>'+toSize(rdata.dbs[i]["totalSize"])+'</th>';
t += '<th>'+toSize(rdata.dbs[i]["storageSize"])+'</th>';
t += '<th>'+toSize(rdata.dbs[i]["dataSize"])+'</th>';
t += '<th>'+toSize(rdata.dbs[i]["indexSize"])+'</th>';
t += '<th>'+rdata.dbs[i]["indexes"]+'</th>';
t += '<th>'+rdata.dbs[i]["objects"]+'</th>';
t += '</tr>';
}
// console.log(t);
1 year ago
var con = '<div class="divtable">\
3 years ago
<table class="table table-hover table-bordered" style="width: 490px;">\
<thead><th>库名</th><th></th><th></th><th></th><th></th><th></th><th></th></thead>\
<tbody>'+t+'<tbody>\
</table></div>';
// console.log(rdata.dbs);
1 year ago
$(".soft-man-con").html(con);
3 years ago
},'json');
1 year ago
}
function mongoReplStatus() {
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
$.post('/plugins/run', {name:'mongodb', func:'run_repl_info'}, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
var rdata = $.parseJSON(data.data);
var rdata = rdata.data;
var tbody = '';
if (rdata.status == '无'){
tbody += '<tr><td colspan="3" style="text-align:center;">无数据</td></tr>';
} else{
tbody += '<tr><th>状态</th><td>' + rdata.status + '</td><td>/</td></tr>\
<tr><th>同步文档</th><td>' + rdata.setName + '</td><td></td></tr>\
1 year ago
<tr><th>hosts</th><td><span class="overflow_hide" style="width:260px;" title="'+rdata.hosts+'">' + rdata.hosts + '</span></td><td></td></tr>\
<tr><th>primary</th><td>' + rdata.primary + '</td><td>primary</td></tr>\
<tr><th>me</th><td>' + rdata.me + '</td><td>me</td></tr>';
}
1 year ago
var con = '<div class="divtable">\
<table class="table table-hover table-bordered" style="width: 490px;">\
<thead><th>字段</th><th></th><th></th></thead>\
<tbody>\
'+tbody+'\
1 year ago
<tbody>\
</table>\
</div>';
$(".soft-man-con").html(con);
},'json');
}
1 year ago
//配置修改
function mongoSetConfig() {
mgPost('get_config', '','',function(data){
var rdata = $.parseJSON(data.data);
1 year ago
if (!rdata['status']){
layer.msg(rdata['msg']);
return;
}
1 year ago
rdata = rdata.data;
1 year ago
if (rdata['security']['authorization'] == 'enabled'){
var body_auth = '<input class="btswitch btswitch-ios" id="auth" type="checkbox" checked><label style="float: left;top: -3px;" class="btswitch-btn" for="auth" onclick="mongoConfigAuth();"></label>';
} else {
var body_auth = '<input class="btswitch btswitch-ios" id="auth" type="checkbox"><label style="float: left;top: -3px;" class="btswitch-btn" for="auth" onclick="mongoConfigAuth();"></label>';
}
1 year ago
var body = "<div class='bingfa'>" +
"<p class='line'><span class='span_tit'>IP:</span><input class='bt-input-text' type='text' name='bind_ip' value='" + rdata['net']['bindIp'] + "' />,<font>监听IP请勿随意修改</font></p>" +
"<p class='line'><span class='span_tit'>port: </span><input class='bt-input-text' type='number' name='port' value='" + rdata['net']['port'] + "' />,<font>监听端口,一般无需修改</font></p>" +
1 year ago
"<p class='line'><span class='span_tit'>dbPath:</span><input class='bt-input-text' type='text' name='data_path' value='" + rdata['storage']['dbPath'] + "' />,<font>数据存储位置</font></p>" +
"<p class='line'><span class='span_tit'>path:</span><input class='bt-input-text' type='text' name='log' value='" + rdata['systemLog']['path'] + "' />,<font>日志文件位置</font></p>" +
"<p class='line'><span class='span_tit'>pidFilePath:</span><input class='bt-input-text' type='text' name='pid_file_path' value='" + rdata['processManagement']['pidFilePath'] + "' />,<font>PID保存路径</font></p>" +
"<p class='line'><span class='span_tit' style='float:left;'>安全认证:</span>"+body_auth+"</p>" +
"<div class='mtb15' style='padding-top: 10px;text-align: center;'>\
<button class='btn btn-success btn-sm mr5' onclick='mongoSetConfig();'>刷新</button>\
<button class='btn btn-success btn-sm' onclick='mongoConfigSave();'>保存</button>" +
"</div></div>";
// console.log(body);
$(".soft-man-con").html(body);
});
}
1 year ago
function mongoConfigAuth(){
mgPost('set_config_auth', '','',function(rdata){
var rdata = $.parseJSON(rdata.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
});
}
1 year ago
function mongoConfigSave(){
1 year ago
var data = {};
data['bind_ip'] = $('input[name="bind_ip"]').val();
data['port'] = $('input[name="port"]').val();
data['data_path'] = $('input[name="data_path"]').val();
data['log'] = $('input[name="log"]').val();
data['pid_file_path'] = $('input[name="pid_file_path"]').val();
mgPost('set_config', '',data,function(rdata){
// console.log(rdata);
var rdata = $.parseJSON(rdata.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
1 year ago
});
}