You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
6.6 KiB
HTML

<extend name="Public/base"/>
<block name="body">
<div class="main-place">
<span class="main-placetitle">位置</span>
<ul class="main-placeul">
<li><a href="{:U('Model/index')}">系统</a></li>
<li><a href="{:U('Database/index',array('type'=>'export'))}">数据备份</a></li>
<li><a href="#">{$meta_title}</a></li>
</ul>
</div>
<div class="cf top_nav_list">
<div class="fl button_list">
<a id="export" class="" href="javascript:;" autocomplete="off"><span class="button_icon button_icon1"></span>立即备份</a>
<a id="optimize" class="" href="{:U('optimize')}"><span class="button_icon button_icon22"></span>优化表</a>
<a id="repair" class="" href="{:U('repair')}"><span class="button_icon button_icon21"></span>修复表</a>
</div>
</div>
<!-- 应用列表 -->
<div class="data_list">
<form id="export-form" method="post" action="{:U('export')}">
<table>
<thead>
<tr>
<th width="48"><input class="check-all" checked="chedked" type="checkbox" value=""></th>
<th>表名</th>
<th width="120">数据量</th>
<th width="120">数据大小</th>
<th width="160">创建时间</th>
<th width="160">备份状态</th>
<th width="120">操作</th>
</tr>
</thead>
<tbody>
<empty name="list" >
<tr>
<td colspan="7" class="text-center">aOh! 暂时还没有内容!</td>
</tr>
<else />
<volist name="list" id="table">
<tr>
<td class="num">
<input class="ids" checked="chedked" type="checkbox" name="tables[]" value="{$table.name}">
</td>
<td>{$table.name}</td>
<td>{$table.rows}</td>
<td>{$table.data_length|format_bytes}</td>
<td>{$table.create_time}</td>
<td class="info">未备份</td>
<td class="action">
<a class="ajax-get no-refresh" href="{:U('optimize?tables='.$table['name'])}">优化表</a>&nbsp;
<a class="ajax-get no-refresh" href="{:U('repair?tables='.$table['name'])}">修复表</a>
</td>
</tr>
</volist>
</empty>
</tbody>
</table>
</form>
</div>
<!-- /应用列表 -->
<div class="common_settings">
<span class="plus_icon"><span><img src="__IMG__/zwmimages/icon_jia.png"></span></span>
<form class="addShortcutIcon">
<input type="hidden" name="title" value="{$m_title}">
<input type="hidden" name="url" value="{$m_url}">
</form>
<a class="ajax-post add-butn <notempty name='commonset'>addSIsetted</notempty>" href="javascript:;" target-form="addShortcutIcon" url="{:U('Think/addShortcutIcon')}"><img src="__IMG__/zwmimages/icon_jia.png"><span><notempty name='commonset'>已添加<else />添加至常用设置</notempty></span></a>
</div>
</block>
<block name="script">
<script type="text/javascript">
highlight_subnav("{:U('Database/index/type/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.status){
updateAlert(data.info,'alert-success');
} else {
updateAlert(data.info,'alert-error');
}
setTimeout(function(){
$('#top-alert').find('button').click();
$(that).removeClass('disabled').prop('disabled',false);
},1500);
}, "json");
return false;
});
$export.click(function(){
$export.parent().children().addClass("disabled");
updateAlert("正在发送备份请求...");
$.post(
$form.attr("action"),
$form.serialize(),
function(data){
if(data.status){
tables = data.tables;
updateAlert(data.info + "开始备份,请不要关闭本页面!");
backup(data.tab);
window.onbeforeunload = function(){ return "正在备份数据库,请不要关闭!" }
} else {
updateAlert(data.info,'alert-error');
$export.parent().children().removeClass("disabled");
setTimeout(function(){
$('#tip').find('.tipclose').click();
$export.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.status){
showmsg(tab.id, data.info);
if(!$.isPlainObject(data.tab)){
$export.parent().children().removeClass("disabled");
updateAlert("备份完成,点击重新备份",'alert-success');
window.onbeforeunload = function(){ return null }
setTimeout(function(){
$('#tip').find('.tipclose').click();
$export.parent().children().removeClass("disabled");
},1500);
return;
}
backup(data.tab, tab.id != data.tab.id);
} else {
updateAlert(data.info,'alert-error');
$export.parent().children().removeClass("disabled");
setTimeout(function(){
$('#tip').find('.tipclose').click();
$export.removeClass('disabled').prop('disabled',false);
},1500);
}
}, "json");
}
function showmsg(id, msg){
$form.find("input[value=" + tables[id] + "]").closest("tr").find(".info").html(msg);
}
})(jQuery);
</script>
</block>