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

438 lines
13 KiB

3 years ago
/* 鍒濆?鍖栦竴浜涘叏灞€鍙橀噺 */
var lf = "<br />";
var needupVerList = [];
var curVer = "";
var nextVer = "";
var iframe = null;
var notice = null;
var ui = "";
/* Ajax璁剧疆 */
Ajax.onRunning = null;
Ajax.onComplete = null;
/* 鍦ㄥ崌绾ц繃绋嬩腑璋冪敤璇ユ柟娉 */
function startNotice() {
$("js-monitor-loading").src = "images/loading.gif";
$("js-monitor-wait-please").innerHTML = "<strong style='color:blue'>"
+ $_LANG["wait_please"] + "</strong>";
$("js-monitor-rollback").innerHTML = '';
};
/* 鍗囩骇瀹屾瘯璋冪敤璇ユ柟娉 */
function stopNotice() {
$("js-monitor-loading").src = "images/loading2.gif";
$("js-monitor-wait-please").innerHTML = $_LANG["has_been_stopped"];
$("js-monitor-rollback").innerHTML = $_LANG["rollback"];
};
/* 椤甸潰鍔犺浇瀹屾瘯鎵ц?涓€浜涙搷浣 */
window.onload = function () {
if ($("js-submit")) {
$("js-submit").onclick = function () {
this.setAttribute("disabled", "true");
upgrade();
};
}
if ($("js-submit-uc")) {
$("js-submit-uc").onclick = function () {
this.setAttribute("disabled", "true");
importUCenterData();
}
}
iframe = frames[0];
notice = $("js-notice", iframe);
var d = new Draggable();
d.bindDragNode("js-monitor", "js-monitor-title");
var detail = $("js-monitor-view-detail")
detail.innerHTML = $_LANG["display_detail"];
detail.onclick = function () {
var mn = $("js-monitor-notice");
if (mn.style.display === "block") {
mn.style.display = "none"
this.innerHTML = $_LANG["display_detail"];
} else {
mn.style.display = "block"
this.innerHTML = $_LANG["hide_detail"];
}
};
$("js-monitor-rollback").onclick = function ()
{
this.setAttribute("disabled", "true");
rollback();
}
$("js-monitor-close").onclick = function () {
$("js-monitor").style.display = "none";
if ($("js-submit")) {
$("js-submit").removeAttribute("disabled");
}
if ($("js-submit-uc")) {
$("js-submit-uc").removeAttribute("disabled");
}
};
ui = QueryString('ui');
if (ui == '') {
ui = 'ecshop';
}
};
/**
* 鍗囩骇绋嬪簭涓绘柟娉
*/
function upgrade() {
startNotice();
$("js-monitor").style.display = "block";
notice.innerHTML = $_LANG["initialize"] + $_LANG["suspension_points"];
delay(1);
try {
var result = getVerList();
if (result === false) {
displayErrorMsg();
return;
}
curVer = result["cur_ver"];
needupVerList = result["needup_ver_list"];
// if (needupVerList.length === 0) {
// notice.innerHTML += $_LANG["fail"] + lf
// + lf + lf + $_LANG["is_last_version"] + lf;
//displayErrorMsg();
//} else {
notice.innerHTML += $_LANG["success"] + lf;
go();
// }
} catch (ex) {
ex = typeof(ex) === "object" ? ex.message : ex;
location.href="index.php?step=error&msg="
+ encodeURI(ex);
}
}
/**
* 鐢ㄤ簬閫掕?璋冪敤鐨勬柟娉
*/
function go() {
if (needupVerList.length === 0) {
goToDone();
return;
}
nextVer = needupVerList.shift();
notice.innerHTML += lf + lf + " " +$_LANG["from"] + " " + curVer + " "
+ $_LANG["to"] + " " + nextVer + lf;
notice.innerHTML += "<div><span id='js-dump-"+nextVer+"'></span>"
+ "<div id='js-files-"+nextVer+"'></div>"
+ "<div><span id='js-structure-"+nextVer+"'></span>"
+ "<span id='js-percent-"+nextVer+"'></span></div>"
+ "<div id='js-data-"+nextVer+"'></div>"
+ "<div id='js-result-"+nextVer+"'></div>";
dump_database();
}
/**
* 澶囦唤鏂囦欢
*/
function dump_database()
{
localize("js-bottom", iframe);
var dump = $("js-dump-"+nextVer, iframe);
dump.innerHTML += lf + $_LANG["dump_database"]
+ $_LANG["suspension_points"];
var params="next_ver=" + nextVer;
Ajax.call("./index.php?step=dump_database", params, function (result){
if (result.replace(/^\s+/g, '') === "OK") {
dump.innerHTML += $_LANG["success"];
updateFiles();
} else {
dump.innerHTML += $_LANG["fail"];
notice.innerHTML += result;
displayErrorMsg();
}
});
}
/**
* 鍗囩骇鏂囦欢
*/
function updateFiles() {
localize("js-bottom", iframe);
$("js-files-"+nextVer, iframe).innerHTML += lf + $_LANG["update_files"]
+ $_LANG["suspension_points"];
var params = "next_ver=" + nextVer;
Ajax.call("./index.php?step=update_files", params, function (result) {
var type="",
msg = "";
if (typeof(result) === "object") {
if (result["msg"] === "OK") {
type = $_LANG["success"];
} else if (result["type"] === "NOTICE") {
type = $_LANG["notice"];
msg = result["msg"];
} else {
type = $_LANG["fail"];
msg = result["msg"];
}
} else {
type = $_LANG["fail"];
msg = result;
}
$("js-files-"+nextVer, iframe).innerHTML += type;
notice.innerHTML += msg;
if (result["msg"] === "OK" || result["type"] === "NOTICE") {
var recNum = getRecordNumber('structure');
updateStructure(1, recNum);
} else {
displayErrorMsg();
}
}, "GET", "JSON");
}
/**
* 鍗囩骇鏁版嵁缁撴瀯
*/
function updateStructure(curPos, recNum) {
localize("js-bottom", iframe);
var structure = $("js-structure-"+nextVer, iframe);
structure.innerHTML = lf + $_LANG["update_structure"];
if (!recNum) {
structure.innerHTML += $_LANG["suspension_points"] + $_LANG["success"];
updateData();
return;
}
var params ="next_ver=" + nextVer + "&cur_pos=" + curPos;
Ajax.call("./index.php?step=update_structure", params, function (result) {
var percent = $("js-percent-"+nextVer, iframe);
if (result.replace(/^\s+/g, '') === "OK") {
percent.innerHTML = " (" + curPos + '/' + recNum + ")"
+ $_LANG["suspension_points"];
if (++curPos <= recNum) {
updateStructure(curPos, recNum);
} else {
percent.innerHTML += $_LANG["success"];
updateData();
}
} else {
percent.innerHTML += $_LANG["fail"];
notice.innerHTML += result;
displayErrorMsg();
}
});
}
/**
* 鍗囩骇鏁版嵁
*/
function updateData() {
localize("js-bottom", iframe);
var data = $("js-data-"+nextVer, iframe);
data.innerHTML += lf + $_LANG["update_others"]
+ $_LANG["suspension_points"];
var params="next_ver=" + nextVer;
Ajax.call("./index.php?step=update_data", params, function (result){
if (result.replace(/^\s+/g, '') === "OK") {
data.innerHTML += $_LANG["success"];
curVer = nextVer;
updateVersion();
} else {
data.innerHTML += $_LANG["fail"];
$("js-result-"+nextVer, iframe).innerHTML = result;
displayErrorMsg();
}
data = null;
});
}
/**
* 鍗囩骇鐗堟湰
*/
function updateVersion() {
if ((ui == 'ucenter') && (nextVer == 'v2.6.0') && typeof(arguments[0]) == 'undefined') {
goToUCenter();
} else {
var params = "next_ver=" + nextVer;
Ajax.call("./index.php?step=update_version", params, function (result) {
if (result.replace(/^\s+/g, '') === "OK") {
go();
} else {
notice.innerHTML += $_LANG["fail"] + lf
notice.innerHTML += result;
displayErrorMsg();
}
});
}
}
/**
* 鑾峰緱鐗堟湰鍒楄
*/
function getVerList() {
var params = "IS_AJAX_REQUEST=yes",
result = Ajax.call("./index.php?step=get_ver_list", params, null, "GET", "JSON", false);
if (typeof(result) === "object" && result["msg"] === "OK") {
return result;
} else {
notice.innerHTML += $_LANG["fail"] + lf
notice.innerHTML += result;
displayErrorMsg();
return false;
}
}
/**
* 鑾峰緱璁板綍鏁
*/
function getRecordNumber(type) {
var params = "next_ver=" + nextVer + "&" + "type=" + type,
result = null;
try {
result = Ajax.call("./index.php?step=get_record_number", params, null, "GET", "JSON", false);
} catch (ex) {
notice.innerHTML += lf + $_LANG["exception"] + lf
notice.innerHTML += ex;
displayErrorMsg();
return false;
}
if (typeof(result) === "object" && result["msg"] === "OK") {
return result["rec_num"];
} else {
notice.innerHTML += $_LANG["fail"] + lf
notice.innerHTML += result;
displayErrorMsg();
return false;
}
}
function rollback()
{
localize("js-bottom", iframe);
var dump = $("js-result-"+nextVer, iframe);
dump.innerHTML = lf + $_LANG["rollback"] + $_LANG["suspension_points"];
var params ="next_ver=" + nextVer;
Ajax.call("./index.php?step=rollback", params, function (result){
if (result.replace(/^\s+/g, '') === "OK") {
dump.innerHTML += $_LANG["success"];
// goToDone();
} else {
dump.innerHTML += $_LANG["fail"];
notice.innerHTML += result;
displayErrorMsg();
}
});
return;
}
/**
* 璺冲埌瀹屾垚椤
*/
function goToDone() {
stopNotice();
window.setTimeout(function () {
location.href = "./index.php?step=done&ui="+ui;
}, 1000);
}
/**
* 鐢ㄤ簬寤舵椂鐨勬柟娉
*/
function delay(seconds) {
window.setTimeout(function () {
}, seconds * 1000);
}
/**
* 鏄剧ず閿欒?
*/
function displayErrorMsg() {
stopNotice();
$("js-monitor-view-detail"). innerHTML = $_LANG["hide_detail"];
$("js-monitor-notice").style.display = "block";
localize("js-bottom", iframe);
}
/**
* 椤甸潰鍏冪礌瀹氫綅鏂规硶
*/
function localize(target, winHDL) {
if (typeof(winHDL) === "undefined") {
winHDL = window;
}
target = typeof(target) === "string" ? $(target, winHDL) : target;
var pageYOffset = winHDL.document.body.scrollTop || winHDL.pageYOffset || 0,
y;
y = target.offsetTop + pageYOffset;
winHDL.scrollTo(0, y);
}
/**
* 璺冲埌 UCenter 瀹夎?椤甸潰
*/
function goToUCenter(){
stopNotice();
window.setTimeout(function () {
location.href = "./index.php?step=uccheck";
}, 1000);
}
/**
* 瀹夎?UCenter鐨勬暟鎹
*/
function importUCenterData() {
startNotice();
$("js-monitor").style.display = "block";
notice.innerHTML = $_LANG["initialize"] + $_LANG["suspension_points"];
delay(1);
try {
var merge = ($("js-merge-1").checked == true)?$("js-merge-1").value : $("js-merge-2").value;
var params ="merge=" + merge;
Ajax.call("./index.php?step=userimporttouc", params, function (result) {
if (result.error > 0) {
notice.innerHTML += result.message + lr;
$("js-monitor-notice").style.display = "block";
stopNotice();
} else {
var result = getVerList();
if (result === false) {
displayErrorMsg();
return;
}
curVer = result["cur_ver"];
needupVerList = result["needup_ver_list"];
//if (needupVerList.length === 0) {
// notice.innerHTML += $_LANG["fail"] + lf
// + lf + lf + $_LANG["is_last_version"] + lf;
// displayErrorMsg();
// } else {
notice.innerHTML += $_LANG["success"] + lf;
nextVer = needupVerList.shift();
updateVersion(true);
// }
}
}, "POST", "JSON");
} catch (ex) {
ex = typeof(ex) === "object" ? ex.message : ex;
location.href="index.php?step=error&msg="
+ encodeURI(ex);
}
3 years ago
}