diff --git a/wiki/files/bt.js b/wiki/files/bt.js
index ccfd775..45dc444 100644
--- a/wiki/files/bt.js
+++ b/wiki/files/bt.js
@@ -163,6 +163,19 @@ if("undefined" != typeof database && database.hasOwnProperty("del_database")){
}
],
success: function () {
+ $('#check_layer_content').find('.glyphicon-info-sign').click(function (e) {
+ var msg = $(this).parent().prop('title')
+ msg = msg.replace('数据库:','
数据库:')
+ layer.tips(msg, $(this).parent(), { tips: [1, 'red'], time: 3000 })
+ $(document).click(function (ev) {
+ layer.closeAll('tips');
+ $(this).unbind('click');
+ ev.stopPropagation();
+ ev.preventDefault();
+ });
+ e.stopPropagation();
+ e.preventDefault();
+ });
if ($('.remote_database').length) {
$('.remote_database').each(function (index, el) {
var id = $(el).parent().parent().parent().index()
diff --git a/wiki/files/win/bt.js b/wiki/files/win/bt.js
index f0ce2f6..9b353b8 100644
--- a/wiki/files/win/bt.js
+++ b/wiki/files/win/bt.js
@@ -43,66 +43,128 @@ if("undefined" != typeof bt && bt.hasOwnProperty("prompt_confirm")){
}
if("undefined" != typeof database && database.hasOwnProperty("del_database")){
database.del_database = function (wid, dbname,obj, callback) {
- var tips = '是否确认【删除数据库】,删除后可能会影响业务使用!';
- if(obj && obj.db_type > 0) tips = '远程数据库不支持数据库回收站,删除后将无法恢复,请谨慎操作';
- var title = typeof dbname === "function" ?'批量删除数据库':'删除数据库 [ '+ dbname +' ]';
- layer.open({
- type:1,
- title:title,
- icon:0,
- skin:'delete_site_layer',
- area: "530px",
- closeBtn: 2,
- shadeClose: true,
- content:"
",
- btn:[lan.public.ok,lan.public.cancel],
- yes:function(indexs){
- var data = {id: wid,name: dbname};
- if(typeof dbname === "function"){
- delete data.id;
- delete data.name;
- }
- layer.close(indexs)
- if(typeof dbname === "function"){
- dbname(data)
- }else{
- bt.database.del_database(data, function (rdata) {
- layer.closeAll()
- if (rdata.status) database_table.$refresh_table_list(true);
- if (callback) callback(rdata);
- bt.msg(rdata);
- })
- }
- }
- })
+ var title = '',
+ tips = '是否确认【删除数据库】,删除后可能会影响业务使用!';
+ if(obj && obj.db_type > 0) tips = '远程数据库不支持数据库回收站,删除后将无法恢复,请谨慎操作';
+ title = typeof dbname === "function" ?'批量删除数据库':'删除数据库 [ '+ dbname +' ]';
+ layer.open({
+ type:1,
+ title:title,
+ icon:0,
+ skin:'delete_site_layer',
+ area: "530px",
+ closeBtn: 2,
+ shadeClose: true,
+ content:"",
+ btn:[lan.public.ok,lan.public.cancel],
+ yes:function(indexs){
+ var data = {id: wid,name: dbname};
+ 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" ?'二次验证信息,批量删除数据库':'二次验证信息,删除数据库 [ ' + dbname + ' ]';
+ var loadT = bt.load('正在检测数据库数据信息,请稍后...')
+
+ bt_tools.send({url:'database/'+bt.data.db_tab_name+'/check_del_data',data:{data:JSON.stringify({ids: ids})}},function(res){
+ loadT.close()
+ layer.open({
+ type:1,
+ title:title,
+ closeBtn: 2,
+ skin: 'verify_site_layer_info',
+ area: '740px',
+ content: '' +
+ '
' +
+ '
堡塔温馨提示您,请冷静几秒钟,确认是否要删除以下数据。
' +
+ '
' +
+ '
风险事项:当前未开启数据库回收站功能,删除数据库后,数据库将永久消失!
' +
+ '
注意:请仔细阅读以上要删除信息,防止数据库被误删
' +
+ '
',
+ btn: ['确认删除', '取消删除'],
+ 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 = '注意:此数据库较大,可能为重要数据,请谨慎操作.\n数据库:' + database_size;
+
+ return '' +
+ '数据库:' + item.name + '' +
+ '大小:' + f_size +'' +
+ '创建时间:' + database_time + '' +
+ '
'
+ }(item))
+ if(database_html !== '') html += '' + database_html +'
';
+ }
+ if(html === '') html = '无数据
'
+ $('.check_layer_content').html(html)
+ },
+ yes:function(indes,layers){
+ if(typeof dbname === "function"){
+ dbname(data)
+ }else{
+ bt.database.del_database(data, function (rdata) {
+ layer.closeAll()
+ if (rdata.status) database_table.$refresh_table_list(true);
+ if (callback) callback(rdata);
+ bt.msg(rdata);
+ })
+ }
+ }
+ })
+ })
+ }
+ })
}
}
if("undefined" != typeof site && site.hasOwnProperty("del_site")){
site.del_site = function(wid, wname, callback) {
- var title = typeof wname === "function" ?'批量删除站点':'删除站点 [ '+ wname +' ]';
+ var title = typeof wname === "function" ? '批量删除站点' : '删除站点 [ ' + wname + ' ]';
+ recycle_bin_open = bt.get_cookie("is_recycle") || bt.get_cookie("is_recycle") == null ? true : false
layer.open({
- type:1,
- title:title,
- icon:0,
- skin:'delete_site_layer',
+ type: 1,
+ title: title,
+ icon: 0,
+ skin: 'delete_site_layer',
area: "440px",
closeBtn: 2,
shadeClose: true,
- content:"",
- btn:[lan.public.ok,lan.public.cancel],
- success:function(layers,indexs){
+ btn: [lan.public.ok, lan.public.cancel],
+ success: function (layers, indexs) {
$(layers).find('.check_type_group label').hover(function () {
var name = $(this).find('input').attr('name');
if (name === 'data' && !recycle_bin_db_open) {
@@ -114,14 +176,14 @@ if("undefined" != typeof site && site.hasOwnProperty("del_site")){
layer.closeAll('tips');
})
},
- yes:function(indexs){
- var data = {id: wid,webname: wname};
+ yes: function (indexs) {
+ var data = { id: wid, webname: wname };
$('#site_delete_form input[type=checkbox]').each(function (index, item) {
- if($(item).is(':checked')) data[$(item).attr('name')] = 1
+ if ($(item).is(':checked')) data[$(item).attr('name')] = 1
})
- var is_database = data.hasOwnProperty('database'),is_path = data.hasOwnProperty('path'),is_ftp = data.hasOwnProperty('ftp');
- if((!is_database && !is_path) && (!is_ftp || is_ftp)){
- if(typeof wname === "function"){
+ var is_database = data.hasOwnProperty('database'), is_path = data.hasOwnProperty('path'), is_ftp = data.hasOwnProperty('ftp');
+ if ((!is_database && !is_path) && (!is_ftp || is_ftp)) {
+ if (typeof wname === "function") {
wname(data)
return false;
}
@@ -132,24 +194,104 @@ if("undefined" != typeof site && site.hasOwnProperty("del_site")){
})
return false
}
- if(typeof wname === "function"){
+ if (typeof wname === "function") {
delete data.id;
delete data.webname;
}
layer.close(indexs)
- if(typeof wname === "function"){
- console.log(data)
- wname(data)
- }else{
- bt.site.del_site(data, function (rdata) {
- layer.closeAll()
- if (rdata.status) site.get_list();
- if (callback) callback(rdata);
- bt.msg(rdata);
+ var arrs = wid instanceof Array ? wid : [wid]
+ var ids = JSON.stringify(arrs), countDown = 9;
+ if (arrs.length == 1) countDown = 4
+ title = typeof wname === "function" ? '二次验证信息,批量删除站点' : '二次验证信息,删除站点 [ ' + wname + ' ]';
+ var loadT = bt.load('正在检测站点数据信息,请稍后...')
+ bt.send('check_del_data', 'site/check_del_data', { ids: ids }, function (res) {
+ loadT.close()
+ layer.open({
+ type: 1,
+ title: title,
+ closeBtn: 2,
+ skin: 'verify_site_layer_info',
+ area: '740px',
+ content: '' +
+ '
' +
+ '
堡塔温馨提示您,请冷静几秒钟,确认以下要删除的数据。
' +
+ '
' +
+ '
风险事项:当前未开启数据库回收站功能,删除数据库后,数据库将永久消失!
' +
+ '
风险事项:当前未开启文件回收站功能,删除站点目录后,站点目录将永久消失!
' +
+ '
注意:请仔细阅读以上要删除信息,防止网站数据被误删
' +
+ '
',
+ // recycle_bin_db_open &&
+ // recycle_bin_open &&
+ btn: ['确认删除', '取消删除'],
+ success: function (layers) {
+ var html = '', rdata = res.data;
+ for (var i = 0; i < rdata.length; i++) {
+ var item = rdata[i], newTime = parseInt(new Date().getTime() / 1000),
+ t_icon = '';
+
+ site_html = (function (item) {
+ if (!is_path) return ''
+ var is_time_rule = (newTime - item.st_time) > (86400 * 30) && (item.total > 1024 * 10),
+ is_path_rule = res.file_size <= item.total,
+ dir_time = bt.format_data(item.st_time, 'yyyy-MM-dd'),
+ dir_size = bt.format_size(item.total);
+
+ var f_html = ' ' + dir_size + ' ' + (is_path_rule ? t_icon : '');
+ var f_title = (is_path_rule ? '注意:此目录较大,可能为重要数据,请谨慎操作.\n' : '') + '目录:' + item.path + '(' + (item.limit ? '大于' : '') + dir_size + ')';
+
+ return '' +
+ '站点名:' + item.name + '' +
+ '目录:' + item.path + ' (' + f_html + ')' +
+ '创建时间:' + dir_time + '' +
+ '
'
+ }(item)),
+ database_html = (function (item) {
+ if (!is_database || !item.database) return '';
+ var is_time_rule = (newTime - item.st_time) > (86400 * 30) && (item.total > 1024 * 10),
+ is_database_rule = res.db_size <= item.database.total,
+ database_time = bt.format_data(item.database.st_time, 'yyyy-MM-dd'),
+ database_size = bt.format_size(item.database.total);
+
+ var f_size = ' ' + database_size + ' ' + (is_database_rule ? t_icon : '');
+ var t_size = '注意:此数据库较大,可能为重要数据,请谨慎操作.\n数据库:' + database_size;
+
+ return '' +
+ '数据库:' + item.database.name + '' +
+ '大小:' + f_size + '' +
+ '创建时间:' + database_time + '' +
+ '
'
+ }(item))
+ if ((site_html + database_html) !== '') html += '' + site_html + database_html + '
';
+ }
+ if (html === '') html = '无数据
'
+ $('.check_layer_content').html(html)
+ },
+ yes: function (indes, layers) {
+ if (typeof wname === "function") {
+ wname(data)
+ } else {
+ bt.site.del_site(data, function (rdata) {
+ layer.closeAll()
+ if (rdata.status) site.get_list();
+ if (callback) callback(rdata);
+ bt.msg(rdata);
+ })
+ }
+ }
})
- }
+ })
}
})
+ if(bt.get_cookie("is_recycle") || bt.get_cookie("is_recycle")==null){
+ $('[name="path"]').attr('checked',true)
+ }else{
+ $('[name="path"]').removeProp('checked');
+ }
}
}
if("undefined" != typeof bt && bt.hasOwnProperty("firewall") && bt.firewall.hasOwnProperty("add_accept_port")){
diff --git a/wiki/update.md b/wiki/update.md
index 1e1821a..065e19d 100644
--- a/wiki/update.md
+++ b/wiki/update.md
@@ -16,9 +16,7 @@
- 全局搜索替换 https://www.bt.cn/api/ => http://www.example.com/api/(需排除clearModel.py、scanningModel.py、ipsModel.py)
-- class/panelAuth.py 替换 http://www.bt.cn/api/ => http://www.example.com/api/
-
-- 全局搜索替换 http://download.bt.cn/install/update6.sh => http://www.example.com/install/update6.sh
+- 全局搜索替换 https://download.bt.cn/install/update6.sh => http://www.example.com/install/update6.sh
- class/ajax.py 文件 \#是否执行升级程序 下面的 public.get_url() 改成 public.GetConfigValue('home')
@@ -56,12 +54,14 @@
temp_file = temp_file.replace('wget -O Tpublic.sh', '#wget -O Tpublic.sh')
temp_file = temp_file.replace('\cp -rpa Tpublic.sh', '#\cp -rpa Tpublic.sh')
temp_file = temp_file.replace('http://download.bt.cn/install/public.sh', 'http://www.example.com/install/public.sh')
+ temp_file = temp_file.replace('https://download.bt.cn/install/public.sh', 'http://www.example.com/install/public.sh')
```
- install/install_soft.sh 在bash执行之前加入以下代码
```shell
sed -i "s/http:\/\/download.bt.cn\/install\/public.sh/http:\/\/www.example.com\/install\/public.sh/" lib.sh
+ sed -i "s/https:\/\/download.bt.cn\/install\/public.sh/http:\/\/www.example.com\/install\/public.sh/" lib.sh
sed -i "/wget -O Tpublic.sh/d" $name.sh
```
diff --git a/wiki/updatewin.md b/wiki/updatewin.md
index d05f18b..95f4ca3 100644
--- a/wiki/updatewin.md
+++ b/wiki/updatewin.md
@@ -52,10 +52,12 @@ Windows版宝塔由于加密文件太多,无法全部解密,因此无法做
- 删除最下面 logs_analysis() 这1行
-- 去除首页广告:BTPanel/static/js/index.js 文件删除最下面index.recommend_paid_version()这一行
+- 去除首页广告:BTPanel/static/js/index.js 文件删除最下面index.recommend_paid_version()这一行以及index.consultancy_services()这一行
- 去除首页自动检测更新,避免频繁请求云端:BTPanel/static/js/index.js 文件注释掉bt.system.check_update这一段代码外的setTimeout
+- 去除内页广告:BTPanel/templates/default/layout.html 删除getPaymentStatus();这一行
+
- [可选]去除各种计算题:复制win/bt.js到 BTPanel/static/ ,在 BTPanel/templates/default/layout.html 的尾部加入
```javascript