mirror of
https://github.com/modernw/App-Installer-For-Windows-8.x-Reset.git
synced 2026-04-18 05:34:51 +10:00
Update reader.
This commit is contained in:
@@ -35,6 +35,8 @@
|
||||
try {
|
||||
inst.sendAsync(body, encoding, function(resp) {
|
||||
if (c) c(resp);
|
||||
}, function(err) {
|
||||
if (e) e(err);
|
||||
});
|
||||
} catch (ex) { if (e) e(ex); }
|
||||
});
|
||||
|
||||
285
shared/html/js/polyfill-winrt.js
Normal file
285
shared/html/js/polyfill-winrt.js
Normal file
@@ -0,0 +1,285 @@
|
||||
(function(global) {
|
||||
function isString(obj) {
|
||||
return typeof obj === "string" || obj instanceof String;
|
||||
}
|
||||
|
||||
function isFunction(obj) {
|
||||
return typeof obj === "function";
|
||||
}
|
||||
|
||||
function isBool(obj) {
|
||||
return typeof obj === "boolean" || obj instanceof Boolean;
|
||||
}
|
||||
|
||||
function isNumber(obj) {
|
||||
return typeof obj === "number" || obj instanceof Number;
|
||||
}
|
||||
|
||||
function isDate(obj) {
|
||||
return obj instanceof Date;
|
||||
}
|
||||
|
||||
function isDevToolsOpen() {
|
||||
if (window.__IE_DEVTOOLBAR_CONSOLE_COMMAND_LINE) {
|
||||
return true; // IE10 或更早版本
|
||||
}
|
||||
if (window.__BROWSERTOOLS_CONSOLE) {
|
||||
return true; // IE11
|
||||
}
|
||||
if (window.__BROWSERTOOLS_DOMEXPLORER_ADDED) {
|
||||
return true; // IE11
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var APIs = [
|
||||
"Windows.ApplicationModel.DesignMode.designModeEnabled",
|
||||
"Windows.ApplicationModel.Resources.Core.ResourceContext",
|
||||
"Windows.ApplicationModel.Resources.Core.ResourceManager",
|
||||
"Windows.ApplicationModel.Search.Core.SearchSuggestionManager",
|
||||
"Windows.ApplicationModel.Search.SearchQueryLinguisticDetails",
|
||||
"Windows.Data.Text.SemanticTextQuery",
|
||||
"Windows.Foundation.Collections.CollectionChange",
|
||||
"Windows.Foundation.Uri",
|
||||
"Windows.Globalization.ApplicationLanguages",
|
||||
"Windows.Globalization.Calendar",
|
||||
"Windows.Globalization.DateTimeFormatting",
|
||||
"Windows.Globalization.Language",
|
||||
"Windows.Phone.UI.Input.HardwareButtons",
|
||||
"Windows.Storage.ApplicationData",
|
||||
"Windows.Storage.CreationCollisionOption",
|
||||
"Windows.Storage.BulkAccess.FileInformationFactory",
|
||||
"Windows.Storage.FileIO",
|
||||
"Windows.Storage.FileProperties.ThumbnailType",
|
||||
"Windows.Storage.FileProperties.ThumbnailMode",
|
||||
"Windows.Storage.FileProperties.ThumbnailOptions",
|
||||
"Windows.Storage.KnownFolders",
|
||||
"Windows.Storage.Search.FolderDepth",
|
||||
"Windows.Storage.Search.IndexerOption",
|
||||
"Windows.Storage.Streams.RandomAccessStreamReference",
|
||||
"Windows.UI.ApplicationSettings.SettingsEdgeLocation",
|
||||
"Windows.UI.ApplicationSettings.SettingsCommand",
|
||||
"Windows.UI.ApplicationSettings.SettingsPane",
|
||||
"Windows.UI.Core.AnimationMetrics",
|
||||
"Windows.UI.Input.EdgeGesture",
|
||||
"Windows.UI.Input.EdgeGestureKind",
|
||||
"Windows.UI.Input.PointerPoint",
|
||||
"Windows.UI.ViewManagement.HandPreference",
|
||||
"Windows.UI.ViewManagement.InputPane",
|
||||
"Windows.UI.ViewManagement.UISettings",
|
||||
"Windows.UI.WebUI.Core.WebUICommandBar",
|
||||
"Windows.UI.WebUI.Core.WebUICommandBarBitmapIcon",
|
||||
"Windows.UI.WebUI.Core.WebUICommandBarClosedDisplayMode",
|
||||
"Windows.UI.WebUI.Core.WebUICommandBarIconButton",
|
||||
"Windows.UI.WebUI.Core.WebUICommandBarSymbolIcon",
|
||||
"Windows.UI.WebUI.WebUIApplication",
|
||||
];
|
||||
for (var i = 0; i < APIs.length; i++) {
|
||||
var api = APIs[i];
|
||||
apiNs = api.split(".");
|
||||
var lastNs = global;
|
||||
for (var j = 0; j < apiNs.length - 1; j++) {
|
||||
var ns = apiNs[j];
|
||||
if (typeof lastNs[ns] === "undefined") lastNs[ns] = {};
|
||||
lastNs = lastNs[ns];
|
||||
}
|
||||
var leaf = apiNs[apiNs.length - 1];
|
||||
if ("abcdefghijklmnopqrstuvwxyz".indexOf(leaf[0]) < 0) {
|
||||
lastNs[leaf] = {};
|
||||
Object.defineProperty(lastNs[leaf], "current", {
|
||||
get: function() { return null; },
|
||||
enumerable: true,
|
||||
});
|
||||
}
|
||||
}
|
||||
Object.defineProperty(Windows.ApplicationModel.DesignMode, "designModeEnabled", {
|
||||
get: isDevToolsOpen,
|
||||
enumerable: true,
|
||||
});
|
||||
Windows.Foundation.Collections.CollectionChange = {
|
||||
reset: 0,
|
||||
itemInserted: 1,
|
||||
itemRemoved: 2,
|
||||
itemChanged: 3
|
||||
};
|
||||
Windows.Foundation.Uri = function(uri) {
|
||||
var inst = null;
|
||||
if (arguments.length === 2) {
|
||||
inst = external.Utilities.createUri2(uri, arguments[1]);
|
||||
} else {
|
||||
inst = external.Utilities.createUri(uri);
|
||||
}
|
||||
inst.jsType = this;
|
||||
return inst;
|
||||
};
|
||||
Windows.Globalization.ApplicationLanguages = {};
|
||||
Object.defineProperty(Windows.Globalization.ApplicationLanguages, "languages", {
|
||||
get: function() {
|
||||
try {
|
||||
var list = [];
|
||||
var langs = external.System.Locale.recommendLocaleNames;
|
||||
langs.forEach(function(item) {
|
||||
list.push(item);
|
||||
});
|
||||
return list;
|
||||
} catch (e) {
|
||||
return navigator.languages;
|
||||
}
|
||||
},
|
||||
enumerable: true,
|
||||
});
|
||||
Object.defineProperty(Windows.Globalization.ApplicationLanguages, "Languages", {
|
||||
get: function() {
|
||||
return Windows.Globalization.ApplicationLanguages.languages;
|
||||
},
|
||||
enumerable: true,
|
||||
});
|
||||
Windows.Globalization.LanguageLayoutDirection = {
|
||||
ltr: 0,
|
||||
rtl: 1,
|
||||
ttbLtr: 2,
|
||||
ttbRtl: 3
|
||||
};
|
||||
Windows.Globalization.Language = function(languageTag) {
|
||||
var inst = external.System.Locale.createLanguage(languageTag);
|
||||
inst.jsType = this;
|
||||
return inst;
|
||||
};
|
||||
Object.defineProperty(Windows.Globalization.Language, "currentInputMethodLanguageTag", {
|
||||
get: function() {
|
||||
return external.System.Locale.currentInputMethodLanguageTag;
|
||||
},
|
||||
enumerable: true,
|
||||
});
|
||||
Windows.Globalization.Language.isWellFormed = external.System.Locale.isWellFormed;
|
||||
Windows.Globalization.Language.getMuiCompatibleLanguageListFromLanguageTags = external.System.Locale.getMuiCompatibleLanguageListFromLanguageTags;
|
||||
Windows.Globalization.Calendar = function(args) {
|
||||
var inst = null;
|
||||
if (arguments.length === 0) {
|
||||
inst = external.Utilities.createCalendar(args);
|
||||
} else if (arguments.length === 1) {
|
||||
inst = external.Utilities.createCalendar2(args);
|
||||
} else if (arguments.length === 3) {
|
||||
inst = external.Utilities.createCalendar3(args, arguments[1], arguments[2], arguments[3]);
|
||||
} else if (arguments.length === 4) {
|
||||
inst = external.Utilities.createCalendar4(args, arguments[1], arguments[2], arguments[3], arguments[4]);
|
||||
}
|
||||
return inst;
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting = {};
|
||||
Windows.Globalization.DateTimeFormatting.DayFormat = {
|
||||
default: 1,
|
||||
none: 0
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.DayOfWeekFormat = {
|
||||
none: 0,
|
||||
default: 1,
|
||||
abberviated: 2,
|
||||
full: 3
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.HourFormat = {
|
||||
none: 0,
|
||||
default: 1
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.MinuteFormat = {
|
||||
none: 0,
|
||||
default: 1
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.MonthFormat = {
|
||||
none: 0,
|
||||
default: 1,
|
||||
abberviated: 2,
|
||||
full: 3,
|
||||
numeric: 4
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.SecondFormat = {
|
||||
default: 1,
|
||||
none: 0
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.YearFormat = {
|
||||
default: 1,
|
||||
none: 0,
|
||||
abberviated: 2,
|
||||
full: 3,
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.DateTimeFormatter = function() {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
var inst = null;
|
||||
if (args.length === 1) inst = external.Utilities.createDateTimeFormatterFromTemplate(args[0]);
|
||||
else if (args.length === 2) inst = external.Utilities.CreateDateTimeFormatterFromTemplateAndLanguages(args[0], args[1]);
|
||||
else if (args.length === 3) inst = external.Utilities.CreateDateTimeFormatterFromTimeEnums(args[0], args[1], args[2]);
|
||||
else if (args.length === 4) inst = external.Utilities.CreateDateTimeFormatterFromDateEnums(args[0], args[1], args[2], args[3]);
|
||||
else if (args.length === 5) inst = external.Utilities.CreateDateTimeFormatterFromTemplateFull(args[0], args[1], args[2], args[3], args[4]);
|
||||
else if (args.length === 8) inst = external.Utilities.CreateDateTimeFormatterFromDateTimeEnums(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
|
||||
else if (args.length === 11) inst = external.Utilities.CreateDateTimeFormatterFromDateTimeEnumsFull(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10]);
|
||||
return inst;
|
||||
};
|
||||
Windows.Storage.CreationCollisionOption = {
|
||||
generateUniqueName: 0,
|
||||
replaceExisting: 1,
|
||||
failIfExists: 2,
|
||||
openIfExists: 3
|
||||
};
|
||||
Windows.Storage.FileProperties = {
|
||||
ThumbnailType: {
|
||||
image: 0,
|
||||
icon: 1
|
||||
},
|
||||
ThumbnailMode: {
|
||||
pictureView: 0,
|
||||
videosView: 1,
|
||||
musicView: 2,
|
||||
documentsView: 3,
|
||||
listView: 4,
|
||||
singleItem: 5
|
||||
},
|
||||
ThumbnailType: {
|
||||
image: 0,
|
||||
icon: 1
|
||||
},
|
||||
VideoOrientation: {
|
||||
normal: 0,
|
||||
rotate90: 90,
|
||||
rotate180: 180,
|
||||
rotate270: 270
|
||||
},
|
||||
PhotoOrientation: {
|
||||
unspecified: 0,
|
||||
normal: 1,
|
||||
flipHorizontal: 2,
|
||||
rotate180: 3,
|
||||
flipVertical: 4,
|
||||
transpose: 5,
|
||||
rotate270: 6,
|
||||
transverse: 7,
|
||||
rotate90: 8
|
||||
},
|
||||
};
|
||||
Windows.Storage.Search = {
|
||||
FolderDepth: function() {},
|
||||
IndexerOption: function() {}
|
||||
};
|
||||
Windows.Storage.Search.FolderDepth.deep = 1;
|
||||
Windows.Storage.Search.FolderDepth.shallow = 0;
|
||||
Windows.Storage.Search.IndexerOption.useIndexerWhenAvailable = 0;
|
||||
Windows.Storage.Search.IndexerOption.onlyUseIndexer = 1;
|
||||
Windows.Storage.Search.IndexerOption.doNotUseIndexer = 2;
|
||||
Windows.Storage.Search.IndexerOption.onlyUseIndexerAndOptimizeForIndexedProperties = 3;
|
||||
Windows.UI.ApplicationSettings.SettingsEdgeLocation = {
|
||||
right: 0,
|
||||
left: 1
|
||||
};
|
||||
Windows.UI.Input.EdgeGestureKind = {
|
||||
touch: 0,
|
||||
keyboard: 1,
|
||||
mouse: 2
|
||||
};
|
||||
Windows.UI.ViewManagement.HandPreference = {
|
||||
leftHanded: 0,
|
||||
rightHanded: 1
|
||||
};
|
||||
Windows.UI.WebUI.Core.WebUICommandBarClosedDisplayMode = {
|
||||
default: 0,
|
||||
minimal: 1,
|
||||
compact: 2
|
||||
};
|
||||
})(this);
|
||||
@@ -2,6 +2,7 @@
|
||||
var strres = external.StringResources;
|
||||
var conf = external.Config.current;
|
||||
var set = conf.getSection("Settings");
|
||||
var metadata = conf.getSection("PackageReader:AppMetadatas");
|
||||
|
||||
function createLocalizedCompare(locale) {
|
||||
return function(a, b) {
|
||||
@@ -15,6 +16,26 @@
|
||||
};
|
||||
}
|
||||
var pagemgr = new PageManager();
|
||||
(function() {
|
||||
var nstrutil = Bridge.NString;
|
||||
var boolTrue = ["true", "1", "yes", "on", "y", "t", "zhen", "真"];
|
||||
var boolFalse = ["false", "0", "no", "off", "n", "f", "jia", "假"];
|
||||
global.parseBool = function(str) {
|
||||
if (typeof str === "boolean") return str;
|
||||
str = "" + str;
|
||||
for (var i = 0; i < boolTrue.length; i++) {
|
||||
if (nstrutil.equals(str, boolTrue[i])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < boolFalse.length; i++) {
|
||||
if (nstrutil.equals(str, boolFalse[i])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
})();
|
||||
OnLoad.add(function() {
|
||||
var mgr = Package.manager;
|
||||
var nstr = Bridge.NString;
|
||||
@@ -24,8 +45,59 @@
|
||||
return Bridge.String.tolower(Bridge.String.trim(item.Identity.FullName));
|
||||
});
|
||||
var themeColor = Bridge.UI.themeColor;
|
||||
var reader = Package.reader;
|
||||
var appitems = [
|
||||
"Id",
|
||||
"StartPage",
|
||||
"EntryPoint",
|
||||
"Executable",
|
||||
"BackgroundColor",
|
||||
"DisplayName",
|
||||
"Description",
|
||||
"ShortName",
|
||||
"ForegroundText",
|
||||
"SmallLogo",
|
||||
"Square30x30Logo",
|
||||
"Square44x44Logo",
|
||||
"Square70x70Logo",
|
||||
"Square71x71Logo",
|
||||
"Logo",
|
||||
"Square150x150Logo",
|
||||
"WideLogo",
|
||||
"Wide310x150Logo",
|
||||
"Square310x310Logo",
|
||||
"Tall150x310Logo",
|
||||
"LockScreenLogo",
|
||||
"LockScreenNotification",
|
||||
"DefaultSize",
|
||||
"AppListEntry",
|
||||
"VisualGroup",
|
||||
"MinWidth",
|
||||
];
|
||||
var defaultItems = [
|
||||
"Id",
|
||||
"DisplayName",
|
||||
"BackgroundColor",
|
||||
"ForegroundText",
|
||||
"ShortName",
|
||||
"Square44x44Logo",
|
||||
"SmallLogo"
|
||||
];
|
||||
var metaitemlist = [];
|
||||
for (var i = 0; i < appitems.length; i++) {
|
||||
var item = appitems[i];
|
||||
var isenable = metadata.getKey(item).value;
|
||||
if (isenable === null || isenable === void 0 || isenable === "") {
|
||||
isenable = defaultItems.indexOf(item) >= 0;
|
||||
}
|
||||
if (parseBool(isenable) == true) {
|
||||
metaitemlist.push(item);
|
||||
}
|
||||
}
|
||||
reader.updateApplicationReadItems(metaitemlist);
|
||||
pagemgr.register("reader", document.getElementById("tag-reader"), document.getElementById("page-reader"));
|
||||
pagemgr.register("acquire", document.getElementById("tag-acquire"), document.getElementById("page-acquire"));
|
||||
pagemgr.register("search", document.getElementById("tag-search"), document.getElementById("page-search"));
|
||||
pagemgr.go("reader");
|
||||
});
|
||||
})(this);
|
||||
@@ -57,6 +57,7 @@
|
||||
try {
|
||||
var obj = nodes[i].getAttribute('data-res-resxml');
|
||||
var strres = external.StringResources;
|
||||
if (!strres) strres = Bridge.External.WinJsStringRes;
|
||||
if (strres) {
|
||||
try {
|
||||
nodes[i].textContent = strres.get(obj);
|
||||
|
||||
@@ -8,10 +8,13 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="js/module.js"></script>
|
||||
<script type="text/javascript" src="js/polyfill-ie.js"></script>
|
||||
<script type="text/javascript" src="js/polyfill-winrt.js"></script>
|
||||
<link rel="stylesheet" href="libs/winjs/1.0/css/ui-light.css" id="winjs-style-1">
|
||||
<link rel="stylesheet" href="libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="libs/winjs/1.0/js/en-us/base.strings.js"></script>
|
||||
<script type="text/javascript" src="libs/winjs/1.0/js/en-us/ui.strings.js"></script>
|
||||
<script type="text/javascript" src="js/color.js"></script>
|
||||
<script type="text/javascript" src="js/promise.js"></script>
|
||||
<script type="text/javascript" src="js/bridge.js"></script>
|
||||
@@ -60,13 +63,13 @@
|
||||
<div class="page full guide fold">
|
||||
<main class="main">
|
||||
<div id="page-reader" style="display: none;" class="ispage padding">
|
||||
<h2>读取</h2>
|
||||
<p>请选择一个包,获取其信息。</p>
|
||||
<h2 data-res-resxml="READER_READER_TITLE"></h2>
|
||||
<p data-res-resxml="READER_READER_DESC"></p>
|
||||
<div>
|
||||
<label for="read-pkgpath">文件路径</label>
|
||||
<label for="read-pkgpath" data-res-resxml="READER_READER_FILEPATH"></label>
|
||||
<div class="itemrow">
|
||||
<input type="text" id="read-pkgpath" style="margin-right: 10px;">
|
||||
<button id="read-browse">浏览</button>
|
||||
<button id="read-browse" data-res-resxml="READER_READER_BROWSER"></button>
|
||||
</div>
|
||||
<script>
|
||||
(function() {
|
||||
@@ -76,7 +79,9 @@
|
||||
readBrowse.onclick = function() {
|
||||
var explorer = external.Storage.Explorer;
|
||||
explorer.file(
|
||||
"{appxpkg}|*.appx;*.appxbundle;*.msix;*.msixbundle|{allfiles}|*.*",
|
||||
"{appxpkg}|*.appx;*.appxbundle;*.msix;*.msixbundle|{allfiles}|*.*"
|
||||
.replace("{appxpkg}", stringRes("READER_READER_APPXFILE"))
|
||||
.replace("{allfiles}", stringRes("READER_READER_ALLFILES")),
|
||||
lastDir,
|
||||
function(result) {
|
||||
if (!result) return;
|
||||
@@ -90,20 +95,20 @@
|
||||
</div>
|
||||
<div class="itemrow">
|
||||
<input type="checkbox" id="read-usepri" style="margin-left: 0;">
|
||||
<label for="read-usepri">需要解析 PRI 资源文件</label>
|
||||
<label for="read-usepri" data-res-resxml="READER_READER_USEPRI"></label>
|
||||
</div>
|
||||
<style>
|
||||
.part-read-button {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
</style>
|
||||
<button id="read-btn" class="part-read-button">读取</button>
|
||||
<button id="read-result-save" class="part-read-button">将读取结果保存为文件</button>
|
||||
<button id="read-result-xml" class="part-read-button">保存为 XML 文件</button>
|
||||
<button id="read-result-json" class="part-read-button">保存为 JSON 文件</button>
|
||||
<button id="read-btn" class="part-read-button" data-res-resxml="READER_READER_READ"></button>
|
||||
<button id="read-result-save" class="part-read-button" data-res-resxml="READER_READER_SAVEFILE"></button>
|
||||
<button id="read-result-xml" class="part-read-button" data-res-resxml="READER_READER_SAVEXML"></button>
|
||||
<button id="read-result-json" class="part-read-button" data-res-resxml="READER_READER_SAVEJSON"></button>
|
||||
<br>
|
||||
<progress id="read-loading" style="display: none;"></progress>
|
||||
<p style="margin-bottom: 2px; margin-top: 5px;">读取结果:</p>
|
||||
<p style="margin-bottom: 2px; margin-top: 5px;" data-res-resxml="READER_READER_RESULT"></p>
|
||||
<iframe id="read-result" width="100%" frameborder="0" src="report.html"></iframe>
|
||||
<script>
|
||||
(function() {
|
||||
@@ -112,7 +117,7 @@
|
||||
|
||||
function readResultResizeEvent(e) {
|
||||
var parent = readResult.parentElement.parentElement;
|
||||
var newHeight = parent.getBoundingClientRect().height - readResult.getBoundingClientRect().top - 24;
|
||||
var newHeight = parent.getBoundingClientRect().height - readResult.getBoundingClientRect().top - 60;
|
||||
//console.log(e, parent.getBoundingClientRect().height, readResult.getBoundingClientRect().top, newHeight);
|
||||
readResult.style.height = parseInt(newHeight) + "px";
|
||||
}
|
||||
@@ -123,6 +128,8 @@
|
||||
</script>
|
||||
<script>
|
||||
(function(global) {
|
||||
var conf = external.Config.current;
|
||||
var set = conf.getSection("Settings");
|
||||
var readBtn = document.getElementById("read-btn");
|
||||
var readResult = document.getElementById("read-result");
|
||||
var readPkgpath = document.getElementById("read-pkgpath");
|
||||
@@ -132,6 +139,7 @@
|
||||
var readSave = document.getElementById("read-result-save");
|
||||
var readToXml = document.getElementById("read-result-xml");
|
||||
var readToJson = document.getElementById("read-result-json");
|
||||
readUsepri.checked = set.getKey("PackageReader:DefaultParsingPriFile").readBool();
|
||||
readResult.style.display = "none";
|
||||
readBtn.onclick = function() {
|
||||
var self = this;
|
||||
@@ -160,7 +168,7 @@
|
||||
onCompleted();
|
||||
readResult.contentWindow.setReport({
|
||||
status: false,
|
||||
message: "请选择一个有效文件"
|
||||
message: stringRes("READER_READER_PLEASESELECT")
|
||||
});
|
||||
self.disabled = false;
|
||||
return;
|
||||
@@ -187,7 +195,7 @@
|
||||
progress.classList.add("win-ring");
|
||||
progress.style.color = "white";
|
||||
var span = document.createElement("span");
|
||||
span.textContent = "正在保存文件";
|
||||
span.textContent = stringRes("READER_READER_SAVINGHTML");
|
||||
progress.style.marginRight = "10px";
|
||||
cont.setAttribute("style", "display: flex; flex-direction: row; align-items: center; display: -ms-flexbox; -ms-flex-direction: row; -ms-align-items: center;")
|
||||
cont.appendChild(progress);
|
||||
@@ -199,7 +207,7 @@
|
||||
return dlg.show().then(function(id) {
|
||||
return new Promise(function(c, e) {
|
||||
external.Storage.save(
|
||||
"{htmlfile}|*.html;*.htm",
|
||||
"{htmlfile}|*.html;*.htm".replace("{htmlfile}", stringRes("READER_READER_HTMLFILE")),
|
||||
lastDir,
|
||||
"report-" + new Date().getTime(),
|
||||
c
|
||||
@@ -216,7 +224,7 @@
|
||||
});
|
||||
}).then(null, function(err) {
|
||||
dlg.hide().then(function() {
|
||||
dlg.title = "保存时发生问题";
|
||||
dlg.title = stringRes("READER_READER_SAVEERR");
|
||||
dlg.content = err.message || err;
|
||||
dlg.commands.push(new WinJS.UI.ContentDialogCommand(
|
||||
getPublicRes(800)
|
||||
@@ -238,7 +246,7 @@
|
||||
progress.classList.add("win-ring");
|
||||
progress.style.color = "white";
|
||||
var span = document.createElement("span");
|
||||
span.textContent = "正在生成 JSON 文件,请稍候... \n这可能需要比较长的时间。";
|
||||
span.textContent = stringRes("READER_READER_SAVEINGJSON");
|
||||
progress.style.marginRight = "10px";
|
||||
cont.setAttribute("style", "display: flex; flex-direction: row; align-items: center; display: -ms-flexbox; -ms-flex-direction: row; -ms-align-items: center;")
|
||||
cont.appendChild(progress);
|
||||
@@ -250,7 +258,7 @@
|
||||
return dlg.show().then(function(id) {
|
||||
return new Promise(function(c, e) {
|
||||
external.Storage.save(
|
||||
"{jsonzipfile}|*.zip",
|
||||
"{jsonzipfile}|*.zip".replace("{jsonzipfile}", stringRes("READER_READER_JSONFILE")),
|
||||
lastDir,
|
||||
"report-" + new Date().getTime(),
|
||||
c
|
||||
@@ -259,7 +267,7 @@
|
||||
}).then(function(filepath) {
|
||||
return new Promise(function(c, e) {
|
||||
if (!readPkgpath.value) {
|
||||
e(new Error("请选择一个有效文件"));
|
||||
e(new Error(stringRes("READER_READER_PLEASESELECT")));
|
||||
return;
|
||||
}
|
||||
try {
|
||||
@@ -284,7 +292,7 @@
|
||||
});
|
||||
}).then(null, function(err) {
|
||||
dlg.hide().then(function() {
|
||||
dlg.title = "保存时发生问题";
|
||||
dlg.title = stringRes("READER_READER_SAVEERR");
|
||||
dlg.content = err.message || err;
|
||||
dlg.commands.push(new WinJS.UI.ContentDialogCommand(
|
||||
getPublicRes(800)
|
||||
@@ -307,7 +315,7 @@
|
||||
progress.classList.add("win-ring");
|
||||
progress.style.color = "white";
|
||||
var span = document.createElement("span");
|
||||
span.textContent = "正在生成 XML 文件,请稍候... \n这可能需要比较长的时间。";
|
||||
span.textContent = stringRes("READER_READER_SAVEINGXML");
|
||||
progress.style.marginRight = "10px";
|
||||
cont.setAttribute("style", "display: flex; flex-direction: row; align-items: center; display: -ms-flexbox; -ms-flex-direction: row; -ms-align-items: center;")
|
||||
cont.appendChild(progress);
|
||||
@@ -319,7 +327,7 @@
|
||||
return dlg.show().then(function(id) {
|
||||
return new Promise(function(c, e) {
|
||||
external.Storage.save(
|
||||
"{xmlzipfile}|*.zip",
|
||||
"{xmlzipfile}|*.zip".replace("{xmlzipfile}", stringRes("READER_READER_XMLFILE")),
|
||||
lastDir,
|
||||
"report-" + new Date().getTime(),
|
||||
c
|
||||
@@ -329,7 +337,7 @@
|
||||
return new Promise(function(c, e) {
|
||||
try {
|
||||
if (!readPkgpath.value) {
|
||||
e(new Error("请选择一个有效文件"));
|
||||
e(new Error(stringRes("READER_READER_PLEASESELECT")));
|
||||
return;
|
||||
}
|
||||
var pkg = Package.reader.package(readPkgpath.value);
|
||||
@@ -353,7 +361,7 @@
|
||||
});
|
||||
}).then(null, function(err) {
|
||||
dlg.hide().then(function() {
|
||||
dlg.title = "保存时发生问题";
|
||||
dlg.title = stringRes("READER_READER_SAVEERR");
|
||||
dlg.content = err.message || err;
|
||||
dlg.commands.push(new WinJS.UI.ContentDialogCommand(
|
||||
getPublicRes(800)
|
||||
@@ -369,35 +377,35 @@
|
||||
</script>
|
||||
</div>
|
||||
<div id="page-acquire" style="display: none;" class="ispage padding">
|
||||
<h2>获取</h2>
|
||||
<h2 data-res-resxml="READER_ACQUIRE_TITLE"></h2>
|
||||
<div id="acquire-forbidden" style="width: 100%;">
|
||||
<p>由于来自 store.rg-adguard.net 的限制,现在暂时无法实现对包的获取。请自行打开下面 URL 进行访问。</p>
|
||||
<p data-res-resxml="READER_ACQUIRE_PROHIBIT"></p>
|
||||
<a onclick="external.Process.open ('https://store.rg-adguard.net')">store.rg-adguard.net</a>
|
||||
</div>
|
||||
<div id="acquire-enable" style="width: 100%;">
|
||||
<p>请在下面的输入框中输入要查询的内容,设置好参数后将进行查询。</p>
|
||||
<p data-res-resxml="READER_ACQUIRE_DESC"></p>
|
||||
<div>
|
||||
<div>
|
||||
<input type="text" id="acquire-input">
|
||||
<select id="acquire-valuetype" name="type">
|
||||
<option value="url">分享链接</option>
|
||||
<option value="ProductId">产品 ID</option>
|
||||
<option value="PackageFamilyName">包系列名</option>
|
||||
<option value="CategoryId">类别 ID</option>
|
||||
<select id="acquire-valuetype" name="type" value="url">
|
||||
<option value="url" data-res-resxml="READER_ACQUIRE_SHAREDURL"></option>
|
||||
<option value="ProductId" data-res-resxml="READER_ACQUIRE_PRODUCTID"></option>
|
||||
<option value="PackageFamilyName" data-res-resxml="READER_ACQUIRE_PFN"></option>
|
||||
<option value="CategoryId" data-res-resxml="READER_ACQUIRE_CATEGORYID"></option>
|
||||
</select>
|
||||
<select id="acquire-channel" name="ring">
|
||||
<option title="Windows Insider Fast" value="WIF">快速</option>
|
||||
<option title="Windows Insider Slow" value="WIS">慢速</option>
|
||||
<option title="Release Preview" value="RP" selected>发布预览</option>
|
||||
<option title="Default OS" value="Retail">正式</option>
|
||||
<select id="acquire-channel" name="ring" value="RP">
|
||||
<option title="Windows Insider Fast" value="WIF" data-res-resxml="READER_ACQUIRE_WIF"></option>
|
||||
<option title="Windows Insider Slow" value="WIS" data-res-resxml="READER_ACQUIRE_WIS"></option>
|
||||
<option title="Release Preview" value="RP" data-res-resxml="READER_ACQUIRE_RP"></option>
|
||||
<option title="Default OS" value="Retail" data-res-resxml="READER_ACQUIRE_RETAIL"></option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<div class="itemrow">
|
||||
<input type="checkbox" id="acquire-smartquery" style="margin-left: 0px;">
|
||||
<label for="acquire-smartquery">自动查询</label>
|
||||
<label for="acquire-smartquery" data-res-resxml="READER_ACQUIRE_SMARTQUERY"></label>
|
||||
</div>
|
||||
<button id="acquire-query">查询</button>
|
||||
<button id="acquire-query" data-res-resxml="READER_ACQUIRE_QUERY"></button>
|
||||
</div>
|
||||
</div>
|
||||
<style>
|
||||
@@ -492,17 +500,19 @@
|
||||
}
|
||||
</style>
|
||||
<div id="acquire-template" class="acquire-item" style="display: none;">
|
||||
<div id="name" class="top" title="Identity Name">Identity Name</div>
|
||||
<div id="name" class="top" title="Identity Name"></div>
|
||||
<div class="medium">
|
||||
<div id="ext" title="File Type">Appx</div>
|
||||
<div id="version" title="Version">1.0.0.0</div>
|
||||
<div id="architecture" title="Processor Architecture">neutral</div>
|
||||
<div id="ext" title="File Type"></div>
|
||||
<div id="version" title="Version"></div>
|
||||
<div id="architecture" title="Processor Architecture"></div>
|
||||
<div id="publisherId" title="Identity Publisher Id"></div>
|
||||
<div id="size" title="File Size"></div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div id="hashpart"><span>SHA-1: </span><span id="hash"></span></div>
|
||||
<div><a download id="download" href="">点击下载</a></div>
|
||||
<div>
|
||||
<a download id="download" href="" data-res-resxml="READER_ACQUIRE_CLICKDOWNLOAD"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="acquire-loading">
|
||||
@@ -514,17 +524,17 @@
|
||||
</div>
|
||||
</div>
|
||||
<div id="acquire-result" style="width: 100%;">
|
||||
<p style="font-weight: normal;" title="Category ID"><span>类别 ID</span>: <span id="acquire-categoryid" style="user-select: text; -ms-user-select: element;"></span></p>
|
||||
<h3>以下可能为检索到的应用</h3>
|
||||
<p style="font-weight: normal;" title="Category ID"><span data-res-resxml="READER_ACQUIRE_CATEGORYID"></span>: <span id="acquire-categoryid" style="user-select: text; -ms-user-select: element;"></span></p>
|
||||
<h3 data-res-resxml="READER_ACQUIRE_RESULTAPPS"></h3>
|
||||
<div id="acquire-list-app" style="width: 100%;"></div>
|
||||
<h3>以下可能为检索到的依赖项</h3>
|
||||
<h3 data-res-resxml="READER_ACQUIRE_RESULTDEPS"></h3>
|
||||
<div id="acquire-list-dep" style="width: 100%;"></div>
|
||||
</div>
|
||||
<script>
|
||||
(function(global) {
|
||||
var conf = external.Config.current;
|
||||
var set = conf.getSection("Settings");
|
||||
var isForbidden = !set.getKey("EnableAcquire").readBool(false);
|
||||
var isForbidden = !set.getKey("PackageReader:EnableAcquire").readBool(false);
|
||||
var acquireInput = document.getElementById("acquire-input");
|
||||
var acquireValuetype = document.getElementById("acquire-valuetype");
|
||||
var acquireChannel = document.getElementById("acquire-channel");
|
||||
@@ -578,7 +588,7 @@
|
||||
keys.forEach(function(k, i) {
|
||||
var listview = listView[k];
|
||||
var p = document.createElement("p");
|
||||
p.textContent = "还没有内容...";
|
||||
p.textContent = stringRes("READER_ACQUIRE_NOCONTENT");
|
||||
listview.emptyView = p;
|
||||
});
|
||||
acquireLoading.statusBar = new TransitionPanel(acquireLoading, {
|
||||
@@ -607,7 +617,7 @@
|
||||
acquireValuetype.disabled =
|
||||
acquireChannel.disabled = true;
|
||||
queryFunc = StoreRG.test;
|
||||
acquireLoadingLabel.textContent = "正在查询...";
|
||||
acquireLoadingLabel.textContent = stringRes("READER_ACQUIRE_QUERYING");
|
||||
queryFunc(acquireInput.value, acquireValuetype.value, acquireChannel.value).then(function(result) {
|
||||
acquireCategoryid.textContent = result.categoryId;
|
||||
var applist = [];
|
||||
@@ -628,7 +638,7 @@
|
||||
return item.file;
|
||||
});
|
||||
listView.deps.refresh();
|
||||
acquireLoadingLabel.textContent = "已获取到 {0} 个信息"
|
||||
acquireLoadingLabel.textContent = stringRes("READER_ACQUIRE_RESULTCNT")
|
||||
.replace("{0}", applist.length + deplist.length);
|
||||
}, function(err) {
|
||||
dataSrc.apps.clear();
|
||||
@@ -654,6 +664,13 @@
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div id="page-search" style="display: none;" class="ispage padding">
|
||||
<h2 data-res-resxml="READER_SEARCH_TITLE"></h2>
|
||||
<div id="search-forbidden" style="width: 100%;">
|
||||
<p data-res-resxml="READER_SEARCH_PROHIBIT"></p>
|
||||
<a onclick="external.Process.open ('https://dbox.tools')">dbox.tools</a>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<aside class="win-ui-dark">
|
||||
<nav class="container">
|
||||
@@ -677,15 +694,19 @@
|
||||
<ul class="list">
|
||||
<li id="tag-reader">
|
||||
<div role="img"></div>
|
||||
<span class="win-type-base" data-res-resxml="MANAGER_MANAGE"></span>
|
||||
<span class="win-type-base" data-res-resxml="READER_READER_TITLE"></span>
|
||||
</li>
|
||||
<li id="tag-acquire">
|
||||
<div role="img"></div>
|
||||
<span class="win-type-base" data-res-resxml="MANAGER_MANAGE"></span>
|
||||
<span class="win-type-base" data-res-resxml="READER_ACQUIRE_TITLE"></span>
|
||||
</li>
|
||||
<li id="tag-search">
|
||||
<div role="img"></div>
|
||||
<span class="win-type-base" data-res-resxml="READER_SEARCH_TITLE"></span>
|
||||
</li>
|
||||
<li id="tag-settings">
|
||||
<div role="img"></div>
|
||||
<span class="win-type-base" data-res-resxml="MANAGER_SETTINGS"></span>
|
||||
<span class="win-type-base" data-res-resxml="READER_SETTINGS_TITLE"></span>
|
||||
</li>
|
||||
<script>
|
||||
(function(global) {
|
||||
|
||||
@@ -195,6 +195,42 @@
|
||||
</table>
|
||||
<script>
|
||||
(function(global) {
|
||||
var imageItem = [
|
||||
"LockScreenLogo",
|
||||
"Logo",
|
||||
"SmallLogo",
|
||||
"Square150x150Logo",
|
||||
"Square30x30Logo",
|
||||
"Square310x310Logo",
|
||||
"Square44x44Logo",
|
||||
"Square70x70Logo",
|
||||
"Square71x71Logo",
|
||||
"Tall150x310Logo",
|
||||
"WideLogo",
|
||||
"Wide310x150Logo"
|
||||
];
|
||||
|
||||
function toLowerCase(str) {
|
||||
if (typeof str !== "string") return "";
|
||||
return str.replace(/[A-Z]/g, function(ch) {
|
||||
return String.fromCharCode(ch.charCodeAt(0) + 32);
|
||||
});
|
||||
}
|
||||
|
||||
function trim(str) {
|
||||
return str.replace(/^\s+|\s+$/g, "");
|
||||
}
|
||||
|
||||
function isImageItem(item) {
|
||||
var tl = trim(toLowerCase(item));
|
||||
for (var i = 0; i < imageItem.length; i++) {
|
||||
var lower = trim(toLowerCase(imageItem[i]));
|
||||
if (lower == tl) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if (typeof Array.prototype.forEach !== "function") {
|
||||
Array.prototype.forEach = function(callback, thisArg) {
|
||||
var T, k;
|
||||
@@ -317,7 +353,7 @@
|
||||
var tdv = document.createElement("td");
|
||||
tdk.textContent = key;
|
||||
tdv.textContent = t[key];
|
||||
if (typeof t[key + "_Base64"] !== "undefined") {
|
||||
if (typeof t[key + "_Base64"] !== "undefined" && isImageItem(key)) {
|
||||
tdv.innerHTML = "";
|
||||
var img = document.createElement("img");
|
||||
img.src = t[key + "_Base64"];
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
var settingItems = {
|
||||
appinstaller: getSettingsItem("appinstaller.html", getLibRes("appinstaller.exe", 300)),
|
||||
manager: getSettingsItem("manager.html", getStringRes("MANAGER_APPTITLE")),
|
||||
reader: getSettingsItem("reader.html", getStringRes("READER_APPTITLE")),
|
||||
settings: getSettingsItem("settings.html", getLibRes("settings.exe", 200)),
|
||||
};
|
||||
Object.defineProperty(global, "settingPages", {
|
||||
|
||||
56
shared/html/settings/reader.html
Normal file
56
shared/html/settings/reader.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Package Manager Settings</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="../js/module.js"></script>
|
||||
<script type="text/javascript" src="../js/polyfill-ie.js"></script>
|
||||
<link rel="stylesheet" href="../libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="../libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="../libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="../js/color.js"></script>
|
||||
<script type="text/javascript" src="../js/promise.js"></script>
|
||||
<script type="text/javascript" src="../js/bridge.js"></script>
|
||||
<script type="text/javascript" src="../js/dpimodes.js"></script>
|
||||
<script type="text/javascript" src="../js/resources.js"></script>
|
||||
<script type="text/javascript" src="../js/animation.js"></script>
|
||||
<link rel="stylesheet" href="../fonts/fonts.css">
|
||||
<script type="text/javascript" src="../js/event.js"></script>
|
||||
<script type="text/javascript" src="../js/tileback.js"></script>
|
||||
<script type="text/javascript" src="../js/load.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../libs/msgbox/contentdlg.css">
|
||||
<script type="text/javascript" src="../libs/msgbox/contentdlg.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../libs/msgbox/msgbox.css">
|
||||
<script type="text/javascript" src="../libs/msgbox/msgbox.js"></script>
|
||||
<script type="text/javascript" src="../js/init.js"></script>
|
||||
<script type="text/javascript" src="initsame.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="page.css">
|
||||
<script type="text/javascript" src="reader/preinit.js"></script>
|
||||
<script type="text/javascript" src="reader/items.js"></script>
|
||||
<script type="text/javascript" src="reader/init.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="settingpage" class="pagecontainer full">
|
||||
<div class="page full guide">
|
||||
<aside class="left win-ui-dark">
|
||||
<header aria-label="Header content" role="banner" class="titlebanner" id="pagebanner" style="height: 120px;">
|
||||
<button id="back" class="win-backbutton pagetitlewb-backbutton" onclick="Bridge.Frame.callEvent ('InvokeBackPage')" style="margin-left: 20px; transform: scale(0.72);"></button>
|
||||
<h2 class="titlearea win-type-ellipsis" id="apptitle" style="">
|
||||
<span class="pagetitlewb-title" id="apptitlestr" style="margin-left: 10px; margin-right: 20px;" data-res-resxml="READER_APPTITLE"></span>
|
||||
</h2>
|
||||
</header>
|
||||
<nav class="container">
|
||||
<ul class="list">
|
||||
</ul>
|
||||
</nav>
|
||||
</aside>
|
||||
<iframe class="main right" defer loading="lazy" async></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
158
shared/html/settings/reader/appitems.html
Normal file
158
shared/html/settings/reader/appitems.html
Normal file
@@ -0,0 +1,158 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>App Installer Settings</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="../../js/module.js"></script>
|
||||
<script type="text/javascript" src="../../js/polyfill-ie.js"></script>
|
||||
<link rel="stylesheet" href="../../libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="../../js/color.js"></script>
|
||||
<script type="text/javascript" src="../../js/promise.js"></script>
|
||||
<script type="text/javascript" src="../../js/bridge.js"></script>
|
||||
<script type="text/javascript" src="../../js/dpimodes.js"></script>
|
||||
<script type="text/javascript" src="../../js/resources.js"></script>
|
||||
<script type="text/javascript" src="../../js/animation.js"></script>
|
||||
<link rel="stylesheet" href="../../fonts/fonts.css">
|
||||
<script type="text/javascript" src="../../js/event.js"></script>
|
||||
<script type="text/javascript" src="../../js/tileback.js"></script>
|
||||
<script type="text/javascript" src="../../js/load.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/contentdlg.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/contentdlg.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/msgbox.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/msgbox.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/toggle/toggle.css">
|
||||
<script type="text/javascript" src="../../libs/toggle/toggle.js"></script>
|
||||
<script type="text/javascript" src="../../js/init.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../page.css">
|
||||
<link rel="stylesheet" type="text/css" href="../subpage.css">
|
||||
<script type="text/javascript" src="preinit.js"></script>
|
||||
<script type="text/javascript" src="initsame.js"></script>
|
||||
<script>
|
||||
try {
|
||||
window.parent.setItemHighlight("appitems");
|
||||
} catch (e) {}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="pagecontainer full pagesection">
|
||||
<div class="section padding">
|
||||
<div class="bottom-compensate">
|
||||
<h2 id="page-title" data-res-resxml="READER_SETTINGS_APPITEMS"></h2>
|
||||
<div class="win-settings-section">
|
||||
<p data-res-resxml="READER_SETTINGS_APPITEMS_DESC"></p>
|
||||
<style>
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table th,
|
||||
table td {
|
||||
border: 1px solid #ccc;
|
||||
padding: 5px;
|
||||
}
|
||||
</style>
|
||||
<table style="max-width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th data-res-resxml="READER_SETTINGS_APPITEMS_ITEM"></th>
|
||||
<th data-res-resxml="READER_SETTINGS_APPITEMS_DESCRIPTION"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="appitem-list"></tbody>
|
||||
</table>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var appItemList = document.getElementById("appitem-list");
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
var appitemset = ini.getSection("PackageReader:AppMetadatas");
|
||||
var appitems = [
|
||||
"Id",
|
||||
"StartPage",
|
||||
"EntryPoint",
|
||||
"Executable",
|
||||
"BackgroundColor",
|
||||
"DisplayName",
|
||||
"Description",
|
||||
"ShortName",
|
||||
"ForegroundText",
|
||||
"SmallLogo",
|
||||
"Square30x30Logo",
|
||||
"Square44x44Logo",
|
||||
"Square70x70Logo",
|
||||
"Square71x71Logo",
|
||||
"Logo",
|
||||
"Square150x150Logo",
|
||||
"WideLogo",
|
||||
"Wide310x150Logo",
|
||||
"Square310x310Logo",
|
||||
"Tall150x310Logo",
|
||||
"LockScreenLogo",
|
||||
"LockScreenNotification",
|
||||
"DefaultSize",
|
||||
"AppListEntry",
|
||||
"VisualGroup",
|
||||
"MinWidth",
|
||||
];
|
||||
var defaultItems = [
|
||||
"Id",
|
||||
"DisplayName",
|
||||
"BackgroundColor",
|
||||
"ForegroundText",
|
||||
"ShortName",
|
||||
"Square44x44Logo",
|
||||
"SmallLogo"
|
||||
];
|
||||
for (var i = 0; i < appitems.length; i++) {
|
||||
var item = appitems[i];
|
||||
var isenable = appitemset.getKey(item).value;
|
||||
if (isenable === null || isenable === void 0 || isenable === "") {
|
||||
isenable = defaultItems.indexOf(item) >= 0;
|
||||
}
|
||||
var dispItem = stringRes("APPMETADATA_" + item);
|
||||
var tr = document.createElement("tr");
|
||||
var tdCheck = document.createElement("td");
|
||||
var tdItem = document.createElement("td");
|
||||
var tdDesc = document.createElement("td");
|
||||
tr.appendChild(tdCheck);
|
||||
tr.appendChild(tdItem);
|
||||
tr.appendChild(tdDesc);
|
||||
var checkbox = document.createElement("input");
|
||||
tdCheck.appendChild(checkbox);
|
||||
checkbox.type = "checkbox";
|
||||
checkbox.checked = isenable;
|
||||
checkbox.id = "appitem_" + item;
|
||||
checkbox.setAttribute("data-metadata", item);
|
||||
var label = document.createElement("label");
|
||||
tdItem.appendChild(label);
|
||||
label.setAttribute("for", checkbox.id);
|
||||
label.style.fontWeight = "normal";
|
||||
label.textContent = item;
|
||||
label.title = item;
|
||||
var labelDesc = document.createElement("label");
|
||||
tdDesc.appendChild(labelDesc);
|
||||
labelDesc.textContent = dispItem;
|
||||
labelDesc.title = dispItem;
|
||||
labelDesc.setAttribute("for", checkbox.id);
|
||||
labelDesc.style.fontWeight = "normal";
|
||||
appItemList.appendChild(tr);
|
||||
checkbox.onchange = function() {
|
||||
appitemset.getKey(this.getAttribute("data-metadata")).value = this.checked;
|
||||
}
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
192
shared/html/settings/reader/general.html
Normal file
192
shared/html/settings/reader/general.html
Normal file
@@ -0,0 +1,192 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>App Installer Settings</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="../../js/module.js"></script>
|
||||
<script type="text/javascript" src="../../js/polyfill-ie.js"></script>
|
||||
<link rel="stylesheet" href="../../libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="../../js/color.js"></script>
|
||||
<script type="text/javascript" src="../../js/promise.js"></script>
|
||||
<script type="text/javascript" src="../../js/bridge.js"></script>
|
||||
<script type="text/javascript" src="../../js/dpimodes.js"></script>
|
||||
<script type="text/javascript" src="../../js/resources.js"></script>
|
||||
<script type="text/javascript" src="../../js/animation.js"></script>
|
||||
<link rel="stylesheet" href="../../fonts/fonts.css">
|
||||
<script type="text/javascript" src="../../js/event.js"></script>
|
||||
<script type="text/javascript" src="../../js/tileback.js"></script>
|
||||
<script type="text/javascript" src="../../js/load.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/contentdlg.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/contentdlg.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/msgbox.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/msgbox.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/toggle/toggle.css">
|
||||
<script type="text/javascript" src="../../libs/toggle/toggle.js"></script>
|
||||
<script type="text/javascript" src="../../js/init.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../page.css">
|
||||
<link rel="stylesheet" type="text/css" href="../subpage.css">
|
||||
<script type="text/javascript" src="preinit.js"></script>
|
||||
<script type="text/javascript" src="initsame.js"></script>
|
||||
<script>
|
||||
try {
|
||||
window.parent.setItemHighlight("general");
|
||||
} catch (e) {}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="pagecontainer full pagesection">
|
||||
<div class="section padding">
|
||||
<div class="bottom-compensate">
|
||||
<h2 id="page-title" data-res-fromfile="publicRes (101)"></h2>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="save-wnd-size" id="save-wnd-size-label" data-res-fromfile="publicRes (125)"></label>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var label = document.getElementById("save-wnd-size-label");
|
||||
var toggle = new Toggle();
|
||||
toggle.create();
|
||||
toggle.parent = label.parentNode;
|
||||
toggle.showlabel = true;
|
||||
var winjsres = Bridge.External.WinJsStringRes;
|
||||
toggle.setStatusText(winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/on"), winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/off"));
|
||||
toggle.inputId = "save-wnd-size";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
toggle.addEventListener("change", function() {
|
||||
ini.set("Settings", "PackageReader:SavePosAndSizeBeforeCancel", toggle.checked);
|
||||
});
|
||||
toggle.checked = parseBool(ini.getSection("Settings").getKey("PackageReader:SavePosAndSizeBeforeCancel").value);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="default-wndwidth" data-res-fromfile="publicRes(126)"></label><br>
|
||||
<input type="number" id="default-wndwidth" inputmode="numeric"><br><br>
|
||||
<label class="win-label" for="default-wndheight" data-res-fromfile="publicRes(127)"></label><br>
|
||||
<input type="number" id="default-wndheight" inputmode="numeric">
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
var defWndWInput = document.getElementById("default-wndwidth");
|
||||
var defWndHInput = document.getElementById("default-wndheight");
|
||||
var setsect = ini.getSection("Settings");
|
||||
var defwk = setsect.getKey("PackageReader:DefaultWidth");
|
||||
var defhk = setsect.getKey("PackageReader:DefaultHeight");
|
||||
defWndWInput.value = defwk.value;
|
||||
defWndHInput.value = defhk.value;
|
||||
var eventutil = Windows.UI.Event.Util;
|
||||
|
||||
function inputDefaultWidthChangeEvent(e) {
|
||||
defwk.value = parseInt(defWndWInput.value);
|
||||
}
|
||||
|
||||
function inputDefaultHeightChangeEvent(e) {
|
||||
defhk.value = parseInt(defWndHInput.value);
|
||||
}
|
||||
var debounced_idwc = debounce(inputDefaultWidthChangeEvent, 500);
|
||||
var debounced_idhc = debounce(inputDefaultHeightChangeEvent, 500);
|
||||
eventutil.addEvent(defWndWInput, "input", debounced_idwc);
|
||||
eventutil.addEvent(defWndWInput, "propertychange", debounced_idwc);
|
||||
eventutil.addEvent(defWndWInput, "change", debounced_idwc);
|
||||
eventutil.addEvent(defWndHInput, "input", debounced_idhc);
|
||||
eventutil.addEvent(defWndHInput, "propertychange", debounced_idhc);
|
||||
eventutil.addEvent(defWndHInput, "change", debounced_idhc);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="min-wndwidth" data-res-fromfile="publicRes (128)"></label><br>
|
||||
<input type="number" id="min-wndwidth" inputmode="numeric"><br><br>
|
||||
<label class="win-label" for="min-wndheight" data-res-fromfile="publicRes (129)"></label><br>
|
||||
<input type="number" id="min-wndheight" inputmode="numeric">
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
var minWndWInput = document.getElementById("min-wndwidth");
|
||||
var minWndHInput = document.getElementById("min-wndheight");
|
||||
var setsect = ini.getSection("Settings");
|
||||
var minwk = setsect.getKey("PackageReader:MinimumWidth");
|
||||
var minhk = setsect.getKey("PackageReader:MinimumHeight");
|
||||
minWndWInput.value = minwk.value;
|
||||
minWndHInput.value = minhk.value;
|
||||
var eventutil = Windows.UI.Event.Util;
|
||||
|
||||
function inputDefaultWidthChangeEvent(e) {
|
||||
minwk.value = parseInt(minWndWInput.value);
|
||||
}
|
||||
|
||||
function inputDefaultHeightChangeEvent(e) {
|
||||
minhk.value = parseInt(minWndHInput.value);
|
||||
}
|
||||
var debounced_idwc = debounce(inputDefaultWidthChangeEvent, 500);
|
||||
var debounced_idhc = debounce(inputDefaultHeightChangeEvent, 500);
|
||||
eventutil.addEvent(minWndWInput, "input", debounced_idwc);
|
||||
eventutil.addEvent(minWndWInput, "propertychange", debounced_idwc);
|
||||
eventutil.addEvent(minWndWInput, "change", debounced_idwc);
|
||||
eventutil.addEvent(minWndHInput, "input", debounced_idhc);
|
||||
eventutil.addEvent(minWndHInput, "propertychange", debounced_idhc);
|
||||
eventutil.addEvent(minWndHInput, "change", debounced_idhc);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="enable-usepri" id="enable-usepri-label" data-res-resxml="READER_SETTINGS_USEPRI"></label>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var label = document.getElementById("enable-usepri-label");
|
||||
var toggle = new Toggle();
|
||||
toggle.create();
|
||||
toggle.parent = label.parentNode;
|
||||
toggle.showlabel = true;
|
||||
var winjsres = Bridge.External.WinJsStringRes;
|
||||
toggle.setStatusText(winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/on"), winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/off"));
|
||||
toggle.inputId = "enable-usepri";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
toggle.addEventListener("change", function() {
|
||||
ini.set("Settings", "PackageReader:DefaultParsingPriFile", toggle.checked);
|
||||
});
|
||||
toggle.checked = parseBool(ini.getSection("Settings").getKey("PackageReader:DefaultParsingPriFile").value);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="enable-acquire" id="enable-acquire-label" data-res-resxml="READER_SETTINGS_ENABLEACQUIRE"></label>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var label = document.getElementById("enable-acquire-label");
|
||||
var toggle = new Toggle();
|
||||
toggle.create();
|
||||
toggle.parent = label.parentNode;
|
||||
toggle.showlabel = true;
|
||||
var winjsres = Bridge.External.WinJsStringRes;
|
||||
toggle.setStatusText(winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/on"), winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/off"));
|
||||
toggle.inputId = "enable-acquire";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
toggle.addEventListener("change", function() {
|
||||
ini.set("Settings", "PackageReader:EnableAcquire", toggle.checked);
|
||||
});
|
||||
toggle.checked = parseBool(ini.getSection("Settings").getKey("PackageReader:EnableAcquire").value);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
62
shared/html/settings/reader/guide.html
Normal file
62
shared/html/settings/reader/guide.html
Normal file
@@ -0,0 +1,62 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>App Installer Settings</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="../../js/module.js"></script>
|
||||
<script type="text/javascript" src="../../js/polyfill-ie.js"></script>
|
||||
<link rel="stylesheet" href="../../libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="../../js/color.js"></script>
|
||||
<script type="text/javascript" src="../../js/promise.js"></script>
|
||||
<script type="text/javascript" src="../../js/bridge.js"></script>
|
||||
<script type="text/javascript" src="../../js/dpimodes.js"></script>
|
||||
<script type="text/javascript" src="../../js/resources.js"></script>
|
||||
<script type="text/javascript" src="../../js/animation.js"></script>
|
||||
<link rel="stylesheet" href="../../fonts/fonts.css">
|
||||
<script type="text/javascript" src="../../js/event.js"></script>
|
||||
<script type="text/javascript" src="../../js/tileback.js"></script>
|
||||
<script type="text/javascript" src="../../js/load.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/contentdlg.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/contentdlg.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/msgbox.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/msgbox.js"></script>
|
||||
<script type="text/javascript" src="../../js/init.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../page.css">
|
||||
<link rel="stylesheet" type="text/css" href="../subpage.css">
|
||||
<script type="text/javascript" src="preinit.js"></script>
|
||||
<script type="text/javascript" src="initsame.js"></script>
|
||||
<script>
|
||||
try {
|
||||
window.parent.setItemHighlight("guide");
|
||||
} catch (e) {}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="pagecontainer full pagesection">
|
||||
<div class="section padding">
|
||||
<div class="bottom-compensate">
|
||||
<h2 id="guide-title"></h2>
|
||||
<p id="guide-desc" style="white-space: pre-wrap;"></p>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var res = Bridge.Resources;
|
||||
var stru = Bridge.String;
|
||||
var title = document.getElementById("guide-title");
|
||||
title.textContent = stru.format(res.byname("IDS_TITLEFORMAT"), stringRes("READER_APPTITLE"));
|
||||
var text = document.getElementById("guide-desc");
|
||||
text.textContent = res.byname("IDS_GUIDETEXT_COMMON");
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
96
shared/html/settings/reader/init.js
Normal file
96
shared/html/settings/reader/init.js
Normal file
@@ -0,0 +1,96 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
function ready(e) {
|
||||
var page = document.querySelector("#settingpage");
|
||||
var guide = page.querySelector(".page.guide");
|
||||
var slide = guide.querySelector("aside");
|
||||
setTimeout(function() {
|
||||
var barcolor = visual["BackgroundColor"];
|
||||
slide.style.backgroundColor = barcolor;
|
||||
slide.style.color = Color.getSuitableForegroundTextColor(Color.parse(barcolor), [Color.Const.white, Color.Const.black]).stringify();
|
||||
}, 50);
|
||||
var content = guide.querySelector(".main");
|
||||
var list = slide.querySelector("ul");
|
||||
var backbtn = slide.querySelector("#back");
|
||||
var title = slide.querySelector("#apptitle");
|
||||
list.innerHTML = "";
|
||||
var items = pages;
|
||||
var tags = Object.keys(items);
|
||||
var eventutil = Windows.UI.Event.Util;
|
||||
for (var i = 0; i < tags.length; i++) {
|
||||
var tag = tags[i];
|
||||
var item = items[tag];
|
||||
var li = document.createElement("li");
|
||||
li.setAttribute("data-page", item.page);
|
||||
li.setAttribute("data-tag", item.tag);
|
||||
li.innerHTML = item.title;
|
||||
eventutil.addEvent(li, "click", function() {
|
||||
if (li.hasAttribute("data-require-disabled")) return;
|
||||
content.style.display = "none";
|
||||
for (var j = 0; j < list.children.length; j++) {
|
||||
var child = list.children[j];
|
||||
if (child.classList.contains("selected"))
|
||||
child.classList.remove("selected");
|
||||
}
|
||||
content.src = this.getAttribute("data-page");
|
||||
setTimeout(function() {
|
||||
content.style.display = "";
|
||||
Windows.UI.Animation.runAsync(content, [Windows.UI.Animation.Keyframes.Flyout.toLeft, Windows.UI.Animation.Keyframes.Opacity.visible]);
|
||||
}, 0);
|
||||
this.classList.add("selected");
|
||||
});
|
||||
list.appendChild(li);
|
||||
}
|
||||
content.src = guidePage.page;
|
||||
/*for (var i = 0; i < list.children.length; i++) {
|
||||
var child = list.children[i];
|
||||
child.click();
|
||||
break;
|
||||
}*/
|
||||
var jumppage = "";
|
||||
try { var args = cmdargs; if (args.length > 1) jumppage = args[1]; } catch (e) {}
|
||||
if (jumppage && jumppage.length > 0 && !Bridge.External.jump2) {
|
||||
for (var i = 0; i < list.children.length; i++) {
|
||||
var child = list.children[i];
|
||||
if (Bridge.NString.equals(child.getAttribute("data-tag"), jumppage)) {
|
||||
Bridge.External.jump2 = true;
|
||||
setTimeout(function(thisnode) {
|
||||
thisnode.click();
|
||||
}, 0, child)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
global.setDisabledForOperation = function(disabled) {
|
||||
var list = document.querySelector("#settingpage .guide aside ul");
|
||||
for (var i = 0; i < list.children.length; i++) {
|
||||
var child = list.children[i];
|
||||
if (disabled) {
|
||||
child.setAttribute("data-require-disabled", "true");
|
||||
} else {
|
||||
child.removeAttribute("data-require-disabled");
|
||||
}
|
||||
}
|
||||
if (disabled) {
|
||||
backbtn.disabled = true;
|
||||
title.style.marginLeft = backbtn.style.marginLeft;
|
||||
} else {
|
||||
backbtn.disabled = false;
|
||||
title.style.marginLeft = "";
|
||||
}
|
||||
}
|
||||
global.setItemHighlight = function(tag) {
|
||||
var list = document.querySelector("#settingpage .guide aside ul");
|
||||
for (var i = 0; i < list.children.length; i++) {
|
||||
var child = list.children[i];
|
||||
if (Bridge.NString.equals(child.getAttribute("data-tag"), tag)) {
|
||||
if (!child.classList.contains("selected")) child.classList.add("selected");
|
||||
} else {
|
||||
if (child.classList.contains("selected")) child.classList.remove("selected");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
OnLoad.add(ready);
|
||||
})(this);
|
||||
21
shared/html/settings/reader/initsame.js
Normal file
21
shared/html/settings/reader/initsame.js
Normal file
@@ -0,0 +1,21 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
function ready(e) {
|
||||
Windows.UI.DPI.mode = 1
|
||||
var pagesection = document.querySelector(".pagesection");
|
||||
if (pagesection) {
|
||||
var backcolor = slideback;
|
||||
setTimeout(function() {
|
||||
var h2style = document.getElementById("h2-style");
|
||||
if (!h2style) {
|
||||
h2style = document.createElement("style");
|
||||
h2style.id = "h2-style";
|
||||
}
|
||||
h2style.innerHTML = ".main h2 { color: " + Color.getSuitableForegroundTextColor(Color.parse("#F3F3F3"), [Color.parse(backcolor), Color.Const.black]).RGBA.stringify() + " }";
|
||||
document.head.appendChild(h2style);
|
||||
}, 0);
|
||||
}
|
||||
}
|
||||
OnLoad.add(ready);
|
||||
})(this);
|
||||
25
shared/html/settings/reader/items.js
Normal file
25
shared/html/settings/reader/items.js
Normal file
@@ -0,0 +1,25 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
function getPage(tag, page, display) {
|
||||
return {
|
||||
tag: tag,
|
||||
page: page,
|
||||
title: display
|
||||
};
|
||||
}
|
||||
var pages = {
|
||||
general: getPage("general", "reader/general.html", getPublicRes(101)),
|
||||
appitems: getPage("appitems", "reader/appitems.html", stringRes("READER_SETTINGS_APPITEMS")),
|
||||
};
|
||||
Object.defineProperty(global, "pages", {
|
||||
get: function() {
|
||||
return pages;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(global, "guidePage", {
|
||||
get: function() {
|
||||
return getPage("guide", "reader/guide.html", "guide");
|
||||
}
|
||||
});
|
||||
})(this);
|
||||
30
shared/html/settings/reader/preinit.js
Normal file
30
shared/html/settings/reader/preinit.js
Normal file
@@ -0,0 +1,30 @@
|
||||
(function(global) {
|
||||
var storage = Bridge.External.Storage;
|
||||
var path = storage.path;
|
||||
var root = path.getDir(path.program);
|
||||
var exepath = path.combine(root, "settings.exe");
|
||||
var id = "Reader";
|
||||
var ve = Bridge.External.VisualElements.get(id);
|
||||
var slideback = ve["BackgroundColor"];
|
||||
global.slideback = slideback;
|
||||
global.exepath = exepath;
|
||||
global.visual = ve;
|
||||
var strutil = Bridge.External.String;
|
||||
var nstrutil = Bridge.NString;
|
||||
var boolTrue = ["true", "1", "yes", "on", "y", "t", "zhen", "真"];
|
||||
var boolFalse = ["false", "0", "no", "off", "n", "f", "jia", "假"];
|
||||
global.parseBool = function(str) {
|
||||
str = "" + str;
|
||||
for (var i = 0; i < boolTrue.length; i++) {
|
||||
if (nstrutil.equals(str, boolTrue[i])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < boolFalse.length; i++) {
|
||||
if (nstrutil.equals(str, boolFalse[i])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
})(this);
|
||||
Reference in New Issue
Block a user