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:"
" + - "" + - "
"+tips+"
" + - "
注意:数据无价,请谨慎操作!!!"+(!recycle_bin_db_open?'
风险操作:当前数据库回收站未开启,删除数据库将永久消失!':'')+"
" + - "
", - 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:"
" + + "" + + "
"+tips+"
" + + "
注意:数据无价,请谨慎操作!!!"+(!recycle_bin_db_open?'
风险操作:当前数据库回收站未开启,删除数据库将永久消失!':'')+"
" + + "
", + 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:"
" + + content: "
" + '' + "
是否要删除关联的FTP、数据库、站点目录!
" + "
" + "" + - "" + - "" + - "
"+ + "" + + "" + + "
" + "
", - 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