Files
App-Installer-For-Windows-8…/shared/html/js/pages.js
2025-11-21 12:55:08 +08:00

121 lines
3.8 KiB
JavaScript

(function(global) {
"use strict";
Object.defineProperty(global, "pagecontainer", {
get: function() { return document.querySelector(".pagecontainer"); }
});
function getPage() {
return pagecontainer.querySelector(".page");
}
var supportPageList = [
"splash",
"loading",
"select",
"preinstall",
"installing",
"installsuccess",
"installfailed"
];
var supportMulPageList = [
"preinstall",
"installing",
"installsuccess",
"installfailed"
];
var splashBackColor = "";
function setPage(swPageLabel, bIsMulti) {
var page = getPage();
swPageLabel = ("" + (swPageLabel || ""));
for (var i = 0; i < supportPageList.length; i++) {
if (Bridge.NString.equals(swPageLabel, supportPageList[i])) {
page.classList.add(supportPageList[i]);
} else {
if (page.classList.contains(supportPageList[i])) page.classList.remove(supportPageList[i]);
}
}
if (Bridge.NString.equals(swPageLabel, "splash")) {
if (splashBackColor) {
page.style.backgroundColor = splashBackColor;
}
} else {
page.style.backgroundColor = "";
}
if (page.classList.contains("multiple")) page.classList.remove("multiple");
for (var j = 0; j < supportMulPageList.length; j++) {
if (Bridge.NString.equals(swPageLabel, supportMulPageList[j]) && bIsMulti) {
page.classList.add("multiple");
break;
}
}
}
function getPageLabel() {
var page = getPage();
for (var i = 0; i < supportPageList.length; i++) {
if (page.classList.contains(supportPageList[i])) {
return supportPageList[i];
}
}
return "";
}
function isMultiPage() {
var page = getPage();
return page.classList.contains("multiple");
}
function setPageMultiple(bIsMulti) {
setPage(getPageLabel(), bIsMulti);
}
function getSplashPage() {
var page = document.querySelector(".page.splash");
if (!page) return null;
var ret = {};
Object.defineProperty(ret, "background", {
get: function() {
var page = document.querySelector(".page.splash");
return page.style.backgroundColor || splashBackColor;
},
set: function(value) {
splashBackColor = value;
var page = document.querySelector(".page.splash");
if (page) page.style.backgroundColor = value;
}
});
Object.defineProperty(ret, "imagesrc", {
get: function() {
var splashimg = page.querySelector("img.splash");
return splashimg.src;
},
set: function(value) {
var splashimg = page.querySelector("img.splash");
splashimg.src = value;
}
});
Object.defineProperty(ret, "content", {
get: function() {
var content = page.querySelector(".content.splash");
return content;
},
});
return ret;
}
module.exports = {
Page: {}
};
Object.defineProperty(Page, "current", {
get: function() { return getPageLabel(); },
set: function(swPageLabel) { setPage(swPageLabel, isMultiPage()); }
});
Object.defineProperty(Page, "multiple", {
get: function() { return isMultiPage(); },
set: function(bIsMulti) { setPage(getPageLabel(), bIsMulti); }
});
Object.defineProperty(Page, "splash", {
get: function() { return getSplashPage(); }
});
})(this);