Update mysql.js

pull/224/head
midoks 3 years ago
parent a211746de7
commit e88544d290
  1. 189
      plugins/mysql/js/mysql.js

@ -1,18 +1,9 @@
function str2Obj(str){
var data = {};
kv = str.split('&');
for(i in kv){
v = kv[i].split('=');
data[v[0]] = v[1];
}
return data;
}
function myPost(method,args,callback, title){ function myPost(method,args,callback, title){
var _args = null; var _args = null;
if (typeof(args) == 'string'){ if (typeof(args) == 'string'){
_args = JSON.stringify(str2Obj(args)); _args = JSON.stringify(toArrayObject(args));
} else { } else {
_args = JSON.stringify(args); _args = JSON.stringify(args);
} }
@ -40,7 +31,7 @@ function myPostN(method,args,callback, title){
var _args = null; var _args = null;
if (typeof(args) == 'string'){ if (typeof(args) == 'string'){
_args = JSON.stringify(str2Obj(args)); _args = JSON.stringify(toArrayObject(args));
} else { } else {
_args = JSON.stringify(args); _args = JSON.stringify(args);
} }
@ -59,7 +50,7 @@ function myPostN(method,args,callback, title){
function myAsyncPost(method,args){ function myAsyncPost(method,args){
var _args = null; var _args = null;
if (typeof(args) == 'string'){ if (typeof(args) == 'string'){
_args = JSON.stringify(str2Obj(args)); _args = JSON.stringify(toArrayObject(args));
} else { } else {
_args = JSON.stringify(args); _args = JSON.stringify(args);
} }
@ -606,7 +597,7 @@ function setDbAccess(username){
yes:function(index){ yes:function(index){
var data = $("#set_db_access").serialize(); var data = $("#set_db_access").serialize();
data = decodeURIComponent(data); data = decodeURIComponent(data);
var dataObj = str2Obj(data); var dataObj = toArrayObject(data);
if(!dataObj['access']){ if(!dataObj['access']){
dataObj['access'] = dataObj['dataAccess']; dataObj['access'] = dataObj['dataAccess'];
if ( dataObj['dataAccess'] == 'ip'){ if ( dataObj['dataAccess'] == 'ip'){
@ -675,7 +666,7 @@ function addDatabase(type){
if (type==1){ if (type==1){
var data = $("#add_db").serialize(); var data = $("#add_db").serialize();
data = decodeURIComponent(data); data = decodeURIComponent(data);
var dataObj = str2Obj(data); var dataObj = toArrayObject(data);
if(!dataObj['address']){ if(!dataObj['address']){
dataObj['address'] = dataObj['dataAccess']; dataObj['address'] = dataObj['dataAccess'];
} }
@ -881,8 +872,11 @@ function openPhpmyadmin(name,username,password){
} }
} }
function delBackup(filename,name){ function delBackup(filename,name,path){
myPost('delete_db_backup',{filename:filename},function(){ if(typeof(path) == "undefined"){
path = "";
}
myPost('delete_db_backup',{filename:filename,path:path},function(){
layer.msg('执行成功!'); layer.msg('执行成功!');
setTimeout(function(){ setTimeout(function(){
$('.layui-layer-close2').click(); $('.layui-layer-close2').click();
@ -902,6 +896,132 @@ function importBackup(file,name){
}); });
} }
function importDbExternal(file,name){
myPost('import_db_external',{file:file,name:name}, function(data){
layer.msg('执行成功!');
});
}
function setLocalImport(db_name){
//上传文件
function uploadDbFiles(upload_dir){
var up_db = layer.open({
type:1,
closeBtn: 1,
title:"上传导入文件["+upload_dir+']',
area: ['500px','300px'],
shadeClose:false,
content:'<div class="fileUploadDiv">\
<input type="hidden" id="input-val" value="'+upload_dir+'" />\
<input type="file" id="file_input" multiple="true" autocomplete="off" />\
<button type="button" id="opt" autocomplete="off">添加文件</button>\
<button type="button" id="up" autocomplete="off" >开始上传</button>\
<span id="totalProgress" style="position: absolute;top: 7px;right: 147px;"></span>\
<span style="float:right;margin-top: 9px;">\
<font>文件编码:</font>\
<select id="fileCodeing" >\
<option value="byte">二进制</option>\
<option value="utf-8">UTF-8</option>\
<option value="gb18030">GB2312</option>\
</select>\
</span>\
<button type="button" id="filesClose" autocomplete="off">关闭</button>\
<ul id="up_box"></ul>\
</div>',
success:function(){
$('#filesClose').click(function(){
layer.close(up_db);
});
}
});
uploadStart(function(){
getList();
});
}
function getList(){
myPost('get_db_backup_import_list',{}, function(data){
var rdata = $.parseJSON(data.data);
var file_list = rdata.data.list;
var upload_dir = rdata.data.upload_dir;
var tbody = '';
for (var i = 0; i < file_list.length; i++) {
tbody += '<tr>\
<td><span> ' + file_list[i]['name'] + '</span></td>\
<td><span> ' + file_list[i]['size'] + '</span></td>\
<td><span> ' + file_list[i]['time'] + '</span></td>\
<td style="text-align: right;">\
<a class="btlink" onclick="importDbExternal(\'' + file_list[i]['name'] + '\',\'' +db_name+ '\')">导入</a> | \
<a class="btlink del" index="'+i+'">删除</a>\
</td>\
</tr>';
}
$('#import_db_file_list').html(tbody);
$('input[name="upload_dir"]').val(upload_dir);
$("#import_db_file_list .del").on('click',function(){
var index = $(this).attr('index');
var filename = file_list[index]["name"];
myPost('delete_db_backup',{filename:filename,path:upload_dir},function(){
showMsg('执行成功!', function(){
getList();
},{icon:1},2000);
});
});
});
}
var layerIndex = layer.open({
type: 1,
title: "从文件导入数据",
area: ['600px', '380px'],
closeBtn: 1,
shadeClose: false,
content: '<div class="pd15">\
<div class="db_list">\
<button id="btn_file_upload" class="btn btn-success btn-sm" type="button">从本地上传</button>\
</div >\
<div class="divtable">\
<input type="hidden" name="upload_dir" value=""> \
<div id="database_fix" style="height:150px;overflow:auto;border:#ddd 1px solid">\
<table class="table table-hover "style="border:none">\
<thead>\
<tr>\
<th>文件名称</th>\
<th>文件大小</th>\
<th>备份时间</th>\
<th style="text-align: right;">操作</th>\
</tr>\
</thead>\
<tbody id="import_db_file_list" class="gztr"></tbody>\
</table>\
</div>\
<ul class="help-info-text c7">\
<li>仅支持sqlzipsql.gz(tar.gz|gz|tgz)</li>\
<li>ziptar.gz压缩包结构test.zip或test.tar.gz压缩包内必需包含test.sql</li>\
<li>若文件过大您还可以使用SFTP工具将数据库文件上传到/www/backup/import</li>\
</ul>\
</div>\
</div>',
success:function(index){
$('#btn_file_upload').click(function(){
var upload_dir = $('input[name="upload_dir"]').val();
uploadDbFiles(upload_dir);
});
getList();
},
});
}
function setBackup(db_name,obj){ function setBackup(db_name,obj){
myPost('get_db_backup_list', {name:db_name}, function(data){ myPost('get_db_backup_list', {name:db_name}, function(data){
@ -914,21 +1034,21 @@ function setBackup(db_name,obj){
<td><span> ' + rdata.data[i]['time'] + '</span></td>\ <td><span> ' + rdata.data[i]['time'] + '</span></td>\
<td style="text-align: right;">\ <td style="text-align: right;">\
<a class="btlink" onclick="importBackup(\'' + rdata.data[i]['name'] + '\',\'' +db_name+ '\')">导入</a> | \ <a class="btlink" onclick="importBackup(\'' + rdata.data[i]['name'] + '\',\'' +db_name+ '\')">导入</a> | \
<a class="btlink" onclick="downloadBackup(\'' + rdata.data[i]['file'] + '\')">下载</a> | \
<a class="btlink" onclick="delBackup(\'' + rdata.data[i]['name'] + '\',\'' +db_name+ '\')">删除</a>\ <a class="btlink" onclick="delBackup(\'' + rdata.data[i]['name'] + '\',\'' +db_name+ '\')">删除</a>\
</td>\ </td>\
</tr> '; </tr> ';
} }
var s = layer.open({ var layerIndex = layer.open({
type: 1, type: 1,
title: "数据库备份详情", title: "数据库备份详情",
area: ['600px', '280px'], area: ['600px', '280px'],
closeBtn: 2, closeBtn: 1,
shadeClose: false, shadeClose: false,
content: '<div class="pd15">\ content: '<div class="pd15">\
<div class="db_list">\ <div class="db_list">\
<button id="btn_backup" class="btn btn-success btn-sm" type="button">备份</button>\ <button id="btn_backup" class="btn btn-success btn-sm" type="button">备份</button>\
<button id="btn_local_import" class="btn btn-success btn-sm" type="button">外部导入</button>\
</div >\ </div >\
<div class="divtable">\ <div class="divtable">\
<div id="database_fix" style="height:150px;overflow:auto;border:#ddd 1px solid">\ <div id="database_fix" style="height:150px;overflow:auto;border:#ddd 1px solid">\
@ -945,18 +1065,21 @@ function setBackup(db_name,obj){
</table>\ </table>\
</div>\ </div>\
</div>\ </div>\
</div>' </div>',
}); success:function(index){
$('#btn_backup').click(function(){
$('#btn_backup').click(function(){ myPost('set_db_backup',{name:db_name}, function(data){
myPost('set_db_backup',{name:db_name}, function(data){ showMsg('执行成功!', function(){
layer.msg('执行成功!'); layer.close(layerIndex);
setBackup(db_name,obj);
}, {icon:1}, 2000);
});
});
setTimeout(function(){ $('#btn_local_import').click(function(){
layer.close(s); setLocalImport(db_name);
setBackup(db_name,obj); });
},2000); },
});
}); });
}); });
} }
@ -1332,7 +1455,7 @@ function addMasterRepSlaveUser(){
yes:function(index){ yes:function(index){
var data = $("#add_master").serialize(); var data = $("#add_master").serialize();
data = decodeURIComponent(data); data = decodeURIComponent(data);
var dataObj = str2Obj(data); var dataObj = toArrayObject(data);
if(!dataObj['address']){ if(!dataObj['address']){
dataObj['address'] = dataObj['dataAccess']; dataObj['address'] = dataObj['dataAccess'];
} }
@ -1377,7 +1500,7 @@ function updateMasterRepSlaveUser(username){
$('#submit_update_master').click(function(){ $('#submit_update_master').click(function(){
var data = $("#update_master").serialize(); var data = $("#update_master").serialize();
data = decodeURIComponent(data); data = decodeURIComponent(data);
var dataObj = str2Obj(data); var dataObj = toArrayObject(data);
myPost('update_master_rep_slave_user', data, function(data){ myPost('update_master_rep_slave_user', data, function(data){
var rdata = $.parseJSON(data.data); var rdata = $.parseJSON(data.data);
showMsg(rdata.msg,function(){ showMsg(rdata.msg,function(){
@ -1488,7 +1611,7 @@ function setDbMasterAccess(username){
yes:function(index){ yes:function(index){
var data = $("#set_db_access").serialize(); var data = $("#set_db_access").serialize();
data = decodeURIComponent(data); data = decodeURIComponent(data);
var dataObj = str2Obj(data); var dataObj = toArrayObject(data);
if(!dataObj['access']){ if(!dataObj['access']){
dataObj['access'] = dataObj['dataAccess']; dataObj['access'] = dataObj['dataAccess'];
if ( dataObj['dataAccess'] == 'ip'){ if ( dataObj['dataAccess'] == 'ip'){

Loading…
Cancel
Save