// 系统升级 js 文件
$(document).ready(function(){
$("#a_upgrade").click(function(){
btn_upgrade(this, 0);
});
});
function btn_upgrade(obj, type)
{
var v = '';
var filelist = $("#upgrade_filelist").html();
if (undefined == filelist || !filelist) {
parent.layer.closeAll();
var alert1 = layer.alert("请清除后台缓存以及Ctrl+F5强制刷新页面,再尝试升级!", {icon: 7, title:false}, function(){
layer.close(alert1);
var url = eyou_basefile + "?m="+module_name+"&c=System&a=clear_cache";
var iframe = $(obj).data('iframe');
if ('parent' == iframe) {
workspace.window.location.href = url;
} else {
window.location.href = url;
}
});
return false;
}
var version = $(obj).data('version');
var max_version = $(obj).data('max_version');
var curent_version = $(obj).data('curent_version');
var intro = $("#upgrade_intro").html();
var notice = $("#upgrade_notice").html();
intro += '';
// 截图前50个文件记录
var filelist_arr = filelist.split('
');
if (filelist_arr.length > 50) {
filelist_arr = filelist_arr.slice(0,50);
filelist_arr.push("……");
filelist_arr.push("此次更新涉及的全部文件,点击这里查看!");
filelist = filelist_arr.join('
');
}
v = notice + intro + '
' + filelist;
var title = '检测系统最新版本:'+version;
var btn = [];
if (0 == type) {
btn = ['升级','忽略'];
} else if (1 == type) {
btn = ['升级','忽略','不再提醒'];
}
if (1 == VarSecurityPatch) {
btn = ['升级','忽略'];
title = '检测系统安全补丁最新版本:'+version;
}
/*显示顶部导航更新提示*/
$("#upgrade_filelist", window.parent.document).html($("#upgrade_filelist").html());
$("#upgrade_intro", window.parent.document).html($("#upgrade_intro").html());
$("#upgrade_notice", window.parent.document).html($("#upgrade_notice").html());
$('#a_upgrade', window.parent.document).attr('data-version',version)
.attr('data-max_version',max_version)
.show();
/*--end*/
//询问框
parent.layer.confirm(v, {
title: title
,shade: layer_shade
,area: ['580px','400px']
,btn: btn //按钮
,success: function () {
$(".layui-layer-content").css('text-align', 'left');
}
,btn3: function(index){
var url = $(obj).data('tips_url');
$.getJSON(url, {show_popup_upgrade:-1,_ajax:1}, function(){});
parent.layer.msg('【核心设置】里可以开启该提醒', {
btnAlign: 'c',
time: 20000, //20s后自动关闭
btn: ['知道了']
});
return false;
}
}, function(){
parent.layer.closeAll();
setTimeout(function(){
checkdir(obj); // 请求后台
},200);
}, function(){
parent.layer.msg('不升级可能有安全隐患', {
btnAlign: 'c',
time: 20000, //20s后自动关闭
btn: ['明白了']
});
return false;
}
);
}
/**
* 检测升级文件的目录权限
*/
function checkdir(obj) {
layer_loading2('检测系统');
$.ajax({
type : "POST",
url : $(obj).data('check_authority'),
timeout : 360000, //超时时间设置,单位毫秒 设置了 1小时
data : {filelist:0,_ajax:1},
error: function(e) {
var msg = e.responseText;
if (msg.indexOf('错误代码') == -1) {
msg = "检测不通过,可能被服务器防火墙拦截,请添加白名单!";
}
parent.layer.closeAll();
parent.layer.alert(msg, {icon: 2, title:false}, function(){
top.location.reload();
});
},
success: function(res) {
parent.layer.closeAll();
if (1 == res.code) {
upgrade($(obj));
} else {
//提示框
if (2 == res.data.code) {
var alert = parent.layer.alert(res.msg, {icon: 2, title:false, btn: ['立即查看']}, function(){
window.parent.open('https://www.eyoucms.com/plus/view.php?aid=9105');
});
} else {
var confirm = parent.layer.confirm(res.msg, {
title: '检测系统结果'
,area: ['580px','400px']
,btn: ['关闭'] //按钮
}, function(){
parent.layer.close(confirm);
return false;
}
);
}
}
}
});
}
/**
* 升级系统
*/
function upgrade(obj){
layer_loading2('升级中');
var version = $(obj).data('version');
var max_version = $(obj).data('max_version');
var timer = '';
var speed = 0.01;
$.ajax({
type : "GET",
url : $(obj).data('upgrade_url'),
timeout : 360000, //超时时间设置,单位毫秒 设置了 1小时
data : {_ajax:1},
beforeSend:function(){
timer = setInterval(function(){
random = Math.floor(Math.random()*89+10);
random = random.toString();
random = '1.' + random;
speed = speed + parseFloat(random);
speed = Math.floor(speed * 100) / 100;
if (speed >= 98) {
speed = 98;
}
$('#upgrade_speed', window.parent.document).html(speed+'%');
}, 500);
},
error: function(request) {
parent.layer.closeAll();
parent.layer.alert("空间超时请稍后再试,或手工升级!", {icon: 2, title:false}, function(){
top.location.reload();
});
},
success: function(res) {
$('#upgrade_speed', window.parent.document).html('100%');
clearInterval(timer);
if(1 == res.code){
// setTimeout(function(){
setTimeout(function(){
var finish = false; // 是否升到最新版
if (2 == res.data.code) {
var title = res.msg;
var btn = ['关闭'];
}else if (version < max_version) { // 当前升级之后的版本还不是官方最新版本,将继续连续更新
var title = '已升级版本:'+version+',官方最新版本:'+max_version+'。';
var btn = ['开始检测'];
} else { // 升级版本是官方最新版本,将引导到备份新数据
finish = true;
var title = '已升级最新版本!';
var btn = ['关闭'];
$('#a_upgrade', window.parent.document).hide(); // 隐藏顶部的更新提示
}
if (true == finish) {
parent.layer.closeAll();
var full = parent.layer.alert(title, {
title: false,
icon: 1,
closeBtn: 0,
btn: btn //按钮
}, function(){
parent.layer.close(full);
top.location.href = eyou_basefile;
}
);
// export_data();
} else {
var full = parent.layer.alert(title, {
title: false,
icon: 1,
closeBtn: 0,
btn: btn //按钮
}, function(){
if (version < max_version) { // 当前升级之后的版本还不是官方最新版本,将继续连续更新
top.location.reload();
} else { // 升级版本是官方最新版本,将引导到备份新数据
parent.layer.close(full);
var url = eyou_basefile + "?m="+module_name+"&c=Tools&a=index";
var iframe = $(obj).data('iframe');
if ('parent' == iframe) {
top.location.href = eyou_basefile;
// workspace.window.location.href = url;
} else {
top.location.href = eyou_basefile;
// window.location.href = url;
}
}
}
);
}
},500);
// },40000); // 睡眠1分钟,让复制文件执行完
}
else if (-2 == res.data.code) {
parent.layer.closeAll();
parent.layer.alert(res.msg, {icon: 2, title:false, btn: ['立即查看']}, function(){
window.parent.open('https://www.eyoucms.com/plus/view.php?aid=9105');
});
}
else if (-3 == res.data.code) {
parent.layer.closeAll();
var msg = '' + res.msg;
parent.layer.alert(msg, {
shade: layer_shade,
area: ['480px', '230px'],
move: false,
title: '温馨提示',
btnAlign:'r',
closeBtn: 3,
btn: ['购买授权', '确定'],
success: function(){
$(".layui-layer-btn", window.parent.document).find('a.layui-layer-btn1').removeClass('layui-layer-btn1').addClass('layui-layer-btn2');
$(".layui-layer-btn", window.parent.document).find('a.layui-layer-btn0').removeClass('layui-layer-btn0').addClass('layui-layer-btn1');
$(".layui-layer-btn", window.parent.document).find('a.layui-layer-btn2').removeClass('layui-layer-btn2').addClass('layui-layer-btn0');
}
}, function(){
window.open('https://www.eyoucms.com/buy');
});
}
else {
parent.layer.closeAll();
parent.layer.alert(res.msg, {icon: 2, title:false}, function(){
top.location.reload();
});
}
}
});
}
function layer_loading2(msg){
var loading = parent.layer.msg(
msg+'... 请勿刷新页面',
{
icon: 1,
time: 3600000, //1小时后后自动关闭
shade: [0.2] //0.1透明度的白色背景
});
//loading层
var index = parent.layer.load(3, {
shade: [0.1,'#fff'] //0.1透明度的白色背景
});
return loading;
}
function export_data(){
parent.layer.msg('已完成升级,正在备份数据,请勿刷新页面!',
{
icon: 1,
time: 3600000, //1小时后后自动关闭
shade: [0.2] //0.1透明度的白色背景
});
setTimeout(function(){
var url = eyou_basefile + "?m="+module_name+"&c=Tools&a=export&_ajax=1";
$.ajax({
url: url,
data: {tables:'all'},
type:'post',
dataType:'json',
success:function(res){
parent.layer.closeAll();
if(res.code){
tables = res.tables;
var loading = parent.layer.msg('正在备份表('+res.tab.table+')……0.01%',
{
icon: 1,
time: 3600000, //1小时后后自动关闭
shade: [0.2] //0.1透明度的白色背景
});
backup_data(res.tab);
} else {
var _parent = parent;
_parent.layer.alert('已升级最新版本,自动备份数据库失败,请立即前往备份!', {icon: 1, title:false}, function(){
_parent.layer.closeAll();
var url = eyou_basefile + "?m="+module_name+"&c=Tools&a=index";
_parent.workspace.window.location.href = url;
});
}
},
error : function() {
var _parent = parent;
_parent.layer.alert('已升级最新版本,自动备份数据库失败,请立即前往备份!', {icon: 1, title:false}, function(){
_parent.layer.closeAll();
var url = eyou_basefile + "?m="+module_name+"&c=Tools&a=index";
_parent.workspace.window.location.href = url;
});
}
});
}, 1500);
}
function backup_data(tab){
var url = eyou_basefile + "?m="+module_name+"&c=Tools&a=export&_ajax=1";
$.ajax({
url: url,
data: tab,
type:'post',
dataType:'json',
success:function(res){
if(res.code){
if (tab.table) {
$('#upgrade_backup_table', window.parent.document).html(tab.table);
$('#upgrade_backup_speed', window.parent.document).html(tab.speed);
}
if(!$.isPlainObject(res.tab)){
var loading = parent.layer.msg('备份完成……100%,请勿刷新页面!',
{
icon: 1,
time: 2000, //1小时后后自动关闭
shade: [0.2] //0.1透明度的白色背景
});
setTimeout(function(){
parent.layer.closeAll();
var full = parent.layer.alert('已升级最新版本!', {
title: false,
icon: 1,
closeBtn: 0,
btn: ['关闭'] //按钮
}, function(){
parent.layer.close(full);
top.location.href = eyou_basefile;
}
);
}, 1000);
return;
}
setTimeout(function () {
backup_data(res.tab);
}, 350);
} else {
var full = parent.layer.alert('已升级最新版本!', {
title: false,
icon: 1,
closeBtn: 0,
btn: ['关闭'] //按钮
}, function(){
parent.layer.close(full);
top.location.href = eyou_basefile;
}
);
}
},
error : function() {
var _parent = parent;
_parent.layer.alert('已升级最新版本,自动备份数据库失败,请立即前往备份!', {icon: 1, title:false}, function(){
_parent.layer.closeAll();
var url = eyou_basefile + "?m="+module_name+"&c=Tools&a=index";
_parent.workspace.window.location.href = url;
});
}
});
}