'
});
tableFixed('database_fix');
//表格头固定
function tableFixed(name) {
var tableName = document.querySelector('#' + name);
tableName.addEventListener('scroll', scrollHandle);
}
function scrollHandle(e) {
var scrollTop = this.scrollTop;
//this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)';
$(this).find("thead").css({ "transform": "translateY(" + scrollTop + "px)", "position": "relative", "z-index": "1" });
}
});
},
selected_tools: function (my_obj, db_name) {
var is_checked = false
if (my_obj) is_checked = my_obj.checked;
var db_tools = $("input[value^='dbtools_']");
var n = 0;
for (var i = 0; i < db_tools.length; i++) {
if (my_obj) db_tools[i].checked = is_checked;
if (db_tools[i].checked) n++;
}
if (n > 0) {
var my_btns = ''
$("#db_tools").html(my_btns);
} else {
$("#db_tools").html('');
}
},
rep_database: function (db_name, tables) {
dbs = database.rep_checkeds(tables)
var loadT = layer.msg(lan.database.send_repair_command, { icon: 16, time: 0 });
bt.send('ReTable', 'database/ReTable', { db_name: db_name, tables: JSON.stringify(dbs) }, function (rdata) {
layer.close(loadT)
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
database.rep_tools(db_name, true);
});
},
op_database: function (db_name, tables) {
dbs = database.rep_checkeds(tables)
var loadT = layer.msg(lan.database.send_opt_command, { icon: 16, time: 0 });
bt.send('OpTable', 'database/OpTable', { db_name: db_name, tables: JSON.stringify(dbs) }, function (rdata) {
layer.close(loadT)
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
database.rep_tools(db_name, true);
});
},
to_database_type: function (db_name, tables, type) {
dbs = database.rep_checkeds(tables)
var loadT = layer.msg(lan.database.send_change_command, { icon: 16, time: 0, shade: [0.3, "#000"] });
bt.send('AlTable', 'database/AlTable', { db_name: db_name, tables: JSON.stringify(dbs), table_type: type }, function (rdata) {
layer.close(loadT);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
database.rep_tools(db_name, true);
});
},
rep_checkeds: function (tables) {
var dbs = []
if (tables) {
dbs.push(tables)
} else {
var db_tools = $("input[value^='dbtools_']");
for (var i = 0; i < db_tools.length; i++) {
if (db_tools[i].checked) dbs.push(db_tools[i].value.replace('dbtools_', ''));
}
}
if (dbs.length < 1) {
layer.msg(lan.database.choose_at_least_one_tb, { icon: 2 });
return false;
}
return dbs;
},
sync_to_database: function (type) {
var data = [];
$('input[type="checkbox"].check:checked').each(function () {
if (!isNaN($(this).val())) data.push($(this).val());
});
bt.database.sync_to_database({ type: type, ids: JSON.stringify(data) }, function (rdata) {
if (rdata.status) database_table.$refresh_table_list(true);
});
},
add_database: function () {
bt.database.add_database(function (rdata) {
if (rdata.status) database_table.$refresh_table_list(true);
})
},
batch_database: function (type, arr, result) {
if (arr == undefined) {
arr = [];
result = { count: 0, error_list: [] };
$('input[type="checkbox"].check:checked').each(function () {
var _val = $(this).val();
if (!isNaN(_val)) arr.push($(this).parents('tr').data('item'));
})
bt.show_confirm(lan.database.del_all_title, "" + lan.get('del_all_database', [arr.length]) + "", function () {
bt.closeAll();
database.batch_database(type, arr, result);
});
return;
}
var item = arr[0];
switch (type) {
case 'del':
if (arr.length < 1) {
database_table.$refresh_table_list(true);
bt.msg({ msg: lan.get('del_all_database_ok', [result.count]), icon: 1, time: 5000 });
return;
}
bt.database.del_database({ id: item.id, name: item.name }, function (rdata) {
if (rdata.status) {
result.count += 1;
} else {
result.error_list.push({ name: item.item, err_msg: rdata.msg });
}
arr.splice(0, 1)
database.batch_database(type, arr, result);
})
break;
}
},
del_database: function (wid, dbname, obj, callback) {
var rendom = bt.get_random_code();
var num1 = rendom['num1'];
var num2 = rendom['num2'];
var title = '';
var tips = 'The deletion may affect the business!';
title = typeof dbname === "function" ?'Batch delete databases':'Delete database [ '+ dbname +' ]';
if (obj && obj.db_type > 0) {
tips = lan.database.del_cloud_database_tips;
}
layer.open({
type:1,
title:title,
icon:0,
skin:'delete_site_layer',
area: "530px",
closeBtn: 2,
shadeClose: true,
content:"
" +
"" +
"
" + tips + "
" +
"
Note: The data is priceless, please operate with caution! ! !"+(!recycle_bin_db_open?'
Risk: The DB recycle bin is not enabled, deleting will disappear forever!':'')+"
" +
"
" + lan.bt.cal_msg + ""+ num1 +" + "+ num2 +"=
" +
"
",
btn:[lan.public.ok,lan.public.cancel],
yes:function(indexs){
var vcodeResult = $('#vcodeResult'),data = {id: wid,name: dbname};
if(vcodeResult.val() === ''){
layer.tips('Calculation result cannot be empty', vcodeResult, {tips: [1, 'red'],time:3000})
vcodeResult.focus()
return false;
}else if(parseInt(vcodeResult.val()) !== (num1 + num2)){
layer.tips('Incorrect calculation result', vcodeResult, {tips: [1, 'red'],time:3000})
vcodeResult.focus()
return false;
}
if(typeof dbname === "function"){
delete data.id;
delete data.name;
}
layer.close(indexs)
var arrs = wid instanceof Array ? wid : [wid]
var ids = JSON.stringify(arrs), countDown = 9;
if (arrs.length == 1) countDown = 4
title = typeof dbname === "function" ?'Confirm the information again, delete the database in batches':'Confirm the information again, Delete Database [ ' + dbname + ' ]';
var loadT = bt.load('Checking database data information, please wait...')
bt.send('check_del_data', 'database/check_del_data', {ids: ids}, function (res) {
loadT.close()
layer.open({
type:1,
title:title,
closeBtn: 2,
skin: 'verify_site_layer_info active',
area: '740px',
content: '
' +
'' +
'
aaPanel kindly reminds you, please calm down for a few seconds, and then confirm whether you want to delete the data.
' +
'
' +
'
' +
'' +
'' +
'
' +
'
' +
'
Risk: The database recycle bin is not enabled. After the database is deleted, the database will disappear forever!
' +
'
Please read the above information to be deleted carefully to prevent the database from being deleted by mistake. Confirm the deletion and there is still ' + countDown + ' seconds to operate.
' +
'
',
btn: ['Delete (Can be operated after ' + countDown + ' seconds)', 'Cancel'],
success: function (layers) {
var html = '', rdata = res.data;
var filterData = rdata.filter(function(el){
return ids.indexOf(el.id) != -1
})
for (var i = 0; i < filterData.length; i++) {
var item = filterData[i], newTime = parseInt(new Date().getTime() / 1000),
t_icon = '';
database_html = (function(item){
var is_time_rule = (newTime - item.st_time) > (86400 * 30) && (item.total > 1024 * 10),
is_database_rule = res.db_size <= item.total,
database_time = bt.format_data(item.st_time, 'yyyy-MM-dd'),
database_size = bt.format_size(item.total);
var f_size = ' ' + database_size + ' ' + (is_database_rule ? t_icon : '');
var t_size = 'Note: This database is large and may be important data. Please operate with caution.\nDatabase: ' + database_size;
return '