115 lines
3.2 KiB
JavaScript
115 lines
3.2 KiB
JavaScript
define(['jquery', 'sent', 'form'], function($, sent, form){
|
|
var database = {
|
|
export: function(){
|
|
var $form = $("#export-form"), $export = $("#export"), tables
|
|
$optimize = $("#optimize"), $repair = $("#repair");
|
|
|
|
$optimize.add($repair).click(function(){
|
|
$.post(this.href, $form.serialize(), function(data){
|
|
if(data.code){
|
|
sent.msg(data.msg,'success');
|
|
} else {
|
|
sent.msg(data.msg,'error');
|
|
}
|
|
setTimeout(function(){
|
|
$('#top-alert').find('button').click();
|
|
$(this).removeClass('disabled').prop('disabled',false);
|
|
},1500);
|
|
}, "json");
|
|
return false;
|
|
});
|
|
|
|
$export.click(function(){
|
|
$export.parent().children().addClass("disabled");
|
|
$export.html("正在发送备份请求...");
|
|
$.post(
|
|
$form.attr("action"),
|
|
$form.serialize(),
|
|
function(data){
|
|
if(data.code){
|
|
tables = data.data.tables;
|
|
$export.html(data.msg + "开始备份,请不要关闭本页面!");
|
|
backup(data.data.tab);
|
|
window.onbeforeunload = function(){ return "正在备份数据库,请不要关闭!" }
|
|
} else {
|
|
sent.msg(data.msg,'error');
|
|
$export.parent().children().removeClass("disabled");
|
|
$export.html("立即备份");
|
|
setTimeout(function(){
|
|
$('#top-alert').find('button').click();
|
|
$(this).removeClass('disabled').prop('disabled',false);
|
|
},1500);
|
|
}
|
|
},
|
|
"json"
|
|
);
|
|
return false;
|
|
});
|
|
|
|
function backup(tab, status){
|
|
status && showmsg(tab.id, "开始备份...(0%)");
|
|
$.get($form.attr("action"), tab, function(data){
|
|
if(data.code){
|
|
var info = data.data;
|
|
showmsg(tab.id, data.msg);
|
|
|
|
if(!$.isPlainObject(info.tab)){
|
|
$export.parent().children().removeClass("disabled");
|
|
$export.html("备份完成,点击重新备份");
|
|
window.onbeforeunload = function(){ return null }
|
|
return;
|
|
}
|
|
backup(info.tab, tab.id != info.tab.id);
|
|
} else {
|
|
updateAlert(data.msg,'alert-error');
|
|
$export.parent().children().removeClass("disabled");
|
|
$export.html("立即备份");
|
|
setTimeout(function(){
|
|
$('#top-alert').find('button').click();
|
|
$(that).removeClass('disabled').prop('disabled',false);
|
|
},1500);
|
|
}
|
|
}, "json");
|
|
|
|
}
|
|
|
|
function showmsg(id, msg){
|
|
$form.find("input[value=" + tables[id] + "]").closest("tr").find(".info").html(msg);
|
|
}
|
|
},
|
|
import: function(){
|
|
$(".db-import").click(function(){
|
|
var self = this, status = ".";
|
|
$.get(self.href, success, "json");
|
|
window.onbeforeunload = function(){ return "正在还原数据库,请不要关闭!" }
|
|
return false;
|
|
|
|
function success(data){
|
|
if(data.code){
|
|
if(data.data.gz){
|
|
data.msg += status;
|
|
if(status.length === 5){
|
|
status = ".";
|
|
} else {
|
|
status += ".";
|
|
}
|
|
}
|
|
$(self).parent().prev().text(data.msg);
|
|
if(data.data.part){
|
|
$.get(self.href,
|
|
{"part" : data.data.part, "start" : data.data.start},
|
|
success,
|
|
"json"
|
|
);
|
|
} else {
|
|
window.onbeforeunload = function(){ return null; }
|
|
}
|
|
} else {
|
|
sent.msg(data.msg,'error');
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
return database;
|
|
}) |