mirror of
https://github.com/modernw/App-Installer-For-Windows-8.x-Reset.git
synced 2026-04-11 17:57:19 +10:00
877 lines
54 KiB
HTML
877 lines
54 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<title>Package Reader</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>
|
|
<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>
|
|
<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">
|
|
<link rel="stylesheet" href="fonts/segx.css">
|
|
<link rel="stylesheet" href="manager/page.css">
|
|
<link rel="stylesheet" href="reader/page.css">
|
|
<script type="text/javascript" src="js/handler.js"></script>
|
|
<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="js/pkginfo.js"></script>
|
|
<script type="text/javascript" src="js/http.js"></script>
|
|
<script type="text/javascript" src="js/storergapi.js"></script>
|
|
<script type="text/javascript" src="js/dboxapi.js"></script>
|
|
<script type="text/javascript" src="js/datasrc.js"></script>
|
|
<script type="text/javascript" src="js/appbar.js"></script>
|
|
<script type="text/javascript" src="js/pagemgr.js"></script>
|
|
<script type="text/javascript" src="js/search.js"></script>
|
|
<link rel="stylesheet" href="css/statusbar.css">
|
|
<script type="text/javascript" src="js/statusbar.js"></script>
|
|
<script type="text/javascript" src="js/rdinit.js"></script>
|
|
<style>
|
|
.itemrow {
|
|
display: -ms-flexbox;
|
|
display: flex;
|
|
-ms-flex-direction: row;
|
|
flex-direction: row;
|
|
-ms-flex-wrap: wrap;
|
|
flex-wrap: wrap;
|
|
-ms-flex-line-pack: center;
|
|
align-content: center;
|
|
-ms-flex-pack: start;
|
|
justify-content: flex-start;
|
|
-ms-flex-align: center;
|
|
align-items: center;
|
|
margin: 10px 0;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="readerpage" class="pagecontainer full">
|
|
<div class="page full guide fold">
|
|
<main class="main">
|
|
<div id="page-reader" style="display: none;" class="ispage padding">
|
|
<h2 data-res-resxml="READER_READER_TITLE"></h2>
|
|
<p data-res-resxml="READER_READER_DESC"></p>
|
|
<div>
|
|
<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" data-res-resxml="READER_READER_BROWSER"></button>
|
|
</div>
|
|
<script>
|
|
(function() {
|
|
var readBrowse = document.getElementById("read-browse");
|
|
var readPkgpath = document.getElementById("read-pkgpath");
|
|
var lastDir = external.Storage.Folders.desktop;
|
|
readBrowse.onclick = function() {
|
|
var explorer = external.Storage.Explorer;
|
|
explorer.file(
|
|
"{appxpkg}|*.appx;*.appxbundle;*.msix;*.msixbundle|{allfiles}|*.*"
|
|
.replace("{appxpkg}", stringRes("READER_READER_APPXFILE"))
|
|
.replace("{allfiles}", stringRes("READER_READER_ALLFILES")),
|
|
lastDir,
|
|
function(result) {
|
|
if (!result) return;
|
|
readPkgpath.value = result;
|
|
lastDir = external.Storage.Path.getDir(result);
|
|
}
|
|
);
|
|
};
|
|
})();
|
|
</script>
|
|
</div>
|
|
<div class="itemrow">
|
|
<input type="checkbox" id="read-usepri" style="margin-left: 0;">
|
|
<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" 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>
|
|
<button id="read-refreshmetadata" class="part-read-button" data-res-resxml="READER_READER_REFRESHMETADATA"></button>
|
|
<script>
|
|
(function(global) {
|
|
var conf = external.Config.current;
|
|
var set = conf.getSection("Settings");
|
|
var metadata = conf.getSection("PackageReader:AppMetadatas");
|
|
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"
|
|
];
|
|
|
|
function refreshMetadataItems() {
|
|
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);
|
|
}
|
|
refreshMetadataItems();
|
|
var refreshMetadataButton = document.getElementById("read-refreshmetadata");
|
|
refreshMetadataButton.onclick = function() {
|
|
refreshMetadataItems();
|
|
var container = document.createElement("div");
|
|
document.body.appendChild(container);
|
|
var contentdlg = new WinJS.UI.ContentDialog(container);
|
|
contentdlg.title = stringRes("READER_READER_HASREFRESHMETADATA");
|
|
var content = document.createElement("div");
|
|
content.style.width = "100%";
|
|
var stylenode = document.createElement("style");
|
|
stylenode.textContent = "table { border-collapse: collapse; max-width: 100%; -ms-user-select: element; } th, td { border: 1px solid white; padding: 5px; }";
|
|
content.appendChild(stylenode);
|
|
var table = document.createElement("table");
|
|
var thead = document.createElement("thead");
|
|
var htr = document.createElement("tr");
|
|
var thitem = document.createElement("th");
|
|
var thdesc = document.createElement("th");
|
|
thitem.textContent = stringRes("READER_SETTINGS_APPITEMS_ITEM");
|
|
thdesc.textContent = stringRes("READER_SETTINGS_APPITEMS_DESCRIPTION");
|
|
var tbody = document.createElement("tbody");
|
|
htr.appendChild(thitem);
|
|
htr.appendChild(thdesc);
|
|
thead.appendChild(htr);
|
|
table.appendChild(thead);
|
|
table.appendChild(tbody);
|
|
content.appendChild(table);
|
|
contentdlg.content = content;
|
|
contentdlg.commands.push(new WinJS.UI.ContentDialogCommand(
|
|
getPublicRes(800)
|
|
));
|
|
var items = Package.reader.getApplicationReadItems();
|
|
items.forEach(function(item) {
|
|
var tr = document.createElement("tr");
|
|
var tditem = document.createElement("td");
|
|
var tddesc = document.createElement("td");
|
|
tditem.textContent = item;
|
|
tddesc.textContent = stringRes("APPMETADATA_" + item.toUpperCase());
|
|
tr.appendChild(tditem);
|
|
tr.appendChild(tddesc);
|
|
tbody.appendChild(tr);
|
|
});
|
|
contentdlg.showAsync().then(function() {
|
|
contentdlg.dispose();
|
|
});
|
|
};
|
|
})(this);
|
|
</script>
|
|
<br>
|
|
<progress id="read-loading" style="display: none;"></progress>
|
|
<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() {
|
|
var readResult = document.getElementById("read-result");
|
|
var de = DomEvent;
|
|
|
|
function readResultResizeEvent(e) {
|
|
var parent = readResult.parentElement.parentElement;
|
|
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";
|
|
}
|
|
var de_rrre = de.Utils.debounce(readResultResizeEvent, 200);
|
|
de.Monitor.observe(readResult, de.Types.position, de_rrre);
|
|
de.Monitor.observe(readResult.parentElement.parentElement, de.Types.resize, de_rrre);
|
|
})();
|
|
</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");
|
|
var readBrowse = document.getElementById("read-browse");
|
|
var readUsepri = document.getElementById("read-usepri");
|
|
var readLoading = document.getElementById("read-loading");
|
|
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;
|
|
self.disabled = true;
|
|
readResult.style.display = "none";
|
|
readLoading.style.display = "";
|
|
readPkgpath.disabled = true;
|
|
readBrowse.disabled = true;
|
|
readSave.disabled = true;
|
|
readToXml.disabled = true;
|
|
readToJson.disabled = true;
|
|
readUsepri.disabled = true;
|
|
|
|
function onCompleted() {
|
|
self.disabled = false;
|
|
readPkgpath.disabled = false;
|
|
readBrowse.disabled = false;
|
|
readSave.disabled = false;
|
|
readToXml.disabled = false;
|
|
readToJson.disabled = false;
|
|
readUsepri.disabled = false;
|
|
}
|
|
if (!readPkgpath.value) {
|
|
readResult.style.display = "";
|
|
readLoading.style.display = "none";
|
|
onCompleted();
|
|
readResult.contentWindow.setReport({
|
|
status: false,
|
|
message: stringRes("READER_READER_PLEASESELECT")
|
|
});
|
|
self.disabled = false;
|
|
return;
|
|
}
|
|
var pr = Package.reader;
|
|
|
|
pr.readFromPackage(readPkgpath.value, readUsepri.checked).then(function(pi) {
|
|
readLoading.style.display = "none";
|
|
readResult.style.display = "";
|
|
readResult.contentWindow.setReport(pi);
|
|
}, function(err) {
|
|
readLoading.style.display = "none";
|
|
readResult.style.display = "";
|
|
readResult.contentWindow.setReport(err);
|
|
}).done(onCompleted, onCompleted);
|
|
};
|
|
readSave.onclick = function() {
|
|
var container = document.createElement("div");
|
|
document.body.appendChild(container);
|
|
var dlg = new WinJS.UI.ContentDialog(container);
|
|
dlg.content = (function() {
|
|
var cont = document.createElement("div");
|
|
var progress = document.createElement("progress");
|
|
progress.classList.add("win-ring");
|
|
progress.style.color = "white";
|
|
var span = document.createElement("span");
|
|
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);
|
|
cont.appendChild(span);
|
|
return cont;
|
|
})();
|
|
dlg.commands.splice(0, dlg.commands.length);
|
|
var lastDir = external.Storage.Folders.desktop;
|
|
return dlg.show().then(function(id) {
|
|
return new Promise(function(c, e) {
|
|
external.Storage.save(
|
|
"{htmlfile}|*.html;*.htm".replace("{htmlfile}", stringRes("READER_READER_HTMLFILE")),
|
|
lastDir,
|
|
"report-" + new Date().getTime(),
|
|
c
|
|
);
|
|
});
|
|
}).then(function(filepath) {
|
|
if (!filepath) return dlg.hide().then(function() {
|
|
return dlg.dispose();
|
|
});
|
|
var file = external.Storage.getFile(filepath);
|
|
file.content = readResult.contentWindow.getReport();
|
|
return dlg.hide().then(function() {
|
|
return dlg.dispose();
|
|
});
|
|
}).then(null, function(err) {
|
|
dlg.hide().then(function() {
|
|
dlg.title = stringRes("READER_READER_SAVEERR");
|
|
dlg.content = err.message || err;
|
|
dlg.commands.push(new WinJS.UI.ContentDialogCommand(
|
|
getPublicRes(800)
|
|
));
|
|
return dlg.showAsync().then(function() {
|
|
return dlg.dispose();
|
|
});
|
|
})
|
|
});
|
|
};
|
|
readToJson.onclick = function() {
|
|
var self = this;
|
|
var container = document.createElement("div");
|
|
document.body.appendChild(container);
|
|
var dlg = new WinJS.UI.ContentDialog(container);
|
|
dlg.content = (function() {
|
|
var cont = document.createElement("div");
|
|
var progress = document.createElement("progress");
|
|
progress.classList.add("win-ring");
|
|
progress.style.color = "white";
|
|
var span = document.createElement("span");
|
|
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);
|
|
cont.appendChild(span);
|
|
return cont;
|
|
})();
|
|
dlg.commands.splice(0, dlg.commands.length);
|
|
var lastDir = external.Storage.Folders.desktop;
|
|
return dlg.show().then(function(id) {
|
|
return new Promise(function(c, e) {
|
|
external.Storage.save(
|
|
"{jsonzipfile}|*.zip".replace("{jsonzipfile}", stringRes("READER_READER_JSONFILE")),
|
|
lastDir,
|
|
"report-" + new Date().getTime(),
|
|
c
|
|
);
|
|
});
|
|
}).then(function(filepath) {
|
|
return new Promise(function(c, e) {
|
|
if (!readPkgpath.value) {
|
|
e(new Error(stringRes("READER_READER_PLEASESELECT")));
|
|
return;
|
|
}
|
|
try {
|
|
var pkg = Package.reader.package(readPkgpath.value);
|
|
pkg.saveJsonFileAsync(filepath, function() {
|
|
try {
|
|
pkg.dispose();
|
|
} catch (ex) {}
|
|
c();
|
|
}, function(ex) {
|
|
try {
|
|
pkg.dispose();
|
|
} catch (ex2) {}
|
|
e(ex);
|
|
});
|
|
} catch (pex) {
|
|
e(pex);
|
|
}
|
|
}).then(function() {
|
|
return dlg.hide().then(function() {
|
|
return dlg.dispose();
|
|
});
|
|
}).then(null, function(err) {
|
|
dlg.hide().then(function() {
|
|
dlg.title = stringRes("READER_READER_SAVEERR");
|
|
dlg.content = err.message || err;
|
|
dlg.commands.push(new WinJS.UI.ContentDialogCommand(
|
|
getPublicRes(800)
|
|
));
|
|
return dlg.showAsync().then(function() {
|
|
return dlg.dispose();
|
|
});
|
|
})
|
|
});
|
|
});
|
|
};
|
|
readToXml.onclick = function() {
|
|
var self = this;
|
|
var container = document.createElement("div");
|
|
document.body.appendChild(container);
|
|
var dlg = new WinJS.UI.ContentDialog(container);
|
|
dlg.content = (function() {
|
|
var cont = document.createElement("div");
|
|
var progress = document.createElement("progress");
|
|
progress.classList.add("win-ring");
|
|
progress.style.color = "white";
|
|
var span = document.createElement("span");
|
|
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);
|
|
cont.appendChild(span);
|
|
return cont;
|
|
})();
|
|
dlg.commands.splice(0, dlg.commands.length);
|
|
var lastDir = external.Storage.Folders.desktop;
|
|
return dlg.show().then(function(id) {
|
|
return new Promise(function(c, e) {
|
|
external.Storage.save(
|
|
"{xmlzipfile}|*.zip".replace("{xmlzipfile}", stringRes("READER_READER_XMLFILE")),
|
|
lastDir,
|
|
"report-" + new Date().getTime(),
|
|
c
|
|
);
|
|
});
|
|
}).then(function(filepath) {
|
|
return new Promise(function(c, e) {
|
|
try {
|
|
if (!readPkgpath.value) {
|
|
e(new Error(stringRes("READER_READER_PLEASESELECT")));
|
|
return;
|
|
}
|
|
var pkg = Package.reader.package(readPkgpath.value);
|
|
pkg.saveXmlFileAsync(filepath, function() {
|
|
try {
|
|
pkg.dispose();
|
|
} catch (ex) {}
|
|
c();
|
|
}, function(ex) {
|
|
try {
|
|
pkg.dispose();
|
|
} catch (ex2) {}
|
|
e(ex);
|
|
});
|
|
} catch (pex) {
|
|
e(pex);
|
|
}
|
|
}).then(function() {
|
|
return dlg.hide().then(function() {
|
|
return dlg.dispose();
|
|
});
|
|
}).then(null, function(err) {
|
|
dlg.hide().then(function() {
|
|
dlg.title = stringRes("READER_READER_SAVEERR");
|
|
dlg.content = err.message || err;
|
|
dlg.commands.push(new WinJS.UI.ContentDialogCommand(
|
|
getPublicRes(800)
|
|
));
|
|
return dlg.showAsync().then(function() {
|
|
return dlg.dispose();
|
|
});
|
|
})
|
|
});
|
|
});
|
|
};
|
|
})(this);
|
|
</script>
|
|
</div>
|
|
<div id="page-acquire" style="display: none;" class="ispage padding">
|
|
<h2 data-res-resxml="READER_ACQUIRE_TITLE"></h2>
|
|
<div id="acquire-forbidden" style="width: 100%;">
|
|
<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 data-res-resxml="READER_ACQUIRE_DESC"></p>
|
|
<div>
|
|
<div>
|
|
<input type="text" id="acquire-input">
|
|
<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" 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" data-res-resxml="READER_ACQUIRE_SMARTQUERY"></label>
|
|
</div>
|
|
<button id="acquire-query" data-res-resxml="READER_ACQUIRE_QUERY"></button>
|
|
</div>
|
|
</div>
|
|
<style>
|
|
.acquire-item {
|
|
display: -ms-flexbox;
|
|
display: flex;
|
|
-ms-flex-direction: column;
|
|
flex-direction: column;
|
|
-ms-flex-wrap: none;
|
|
flex-wrap: nowrap;
|
|
-ms-flex-line-pack: start;
|
|
align-content: flex-start;
|
|
-ms-flex-pack: start;
|
|
justify-content: flex-start;
|
|
width: 100%;
|
|
margin: 5px 0;
|
|
box-sizing: border-box;
|
|
padding: 5px;
|
|
border: 1px solid #ccc;
|
|
-ms-user-select: element;
|
|
user-select: all;
|
|
}
|
|
|
|
.acquire-item #name {
|
|
font-size: 11pt;
|
|
width: 100%;
|
|
line-height: 1.3em;
|
|
overflow-x: hidden;
|
|
overflow-y: hidden;
|
|
text-overflow: ellipsis;
|
|
font-weight: normal;
|
|
}
|
|
|
|
.acquire-item .medium {
|
|
width: 100%;
|
|
font-size: 10pt;
|
|
line-height: 1.2em;
|
|
font-weight: normal;
|
|
display: -ms-flexbox;
|
|
display: flex;
|
|
-ms-flex-direction: row;
|
|
flex-direction: row;
|
|
-ms-flex-wrap: wrap;
|
|
flex-wrap: wrap;
|
|
-ms-flex-line-pack: center;
|
|
align-content: center;
|
|
-ms-flex-pack: justify;
|
|
justify-content: space-between;
|
|
-ms-flex-align: center;
|
|
align-items: center;
|
|
margin-top: 3px;
|
|
margin-bottom: 3px;
|
|
}
|
|
|
|
.acquire-item .medium div {
|
|
text-align: center;
|
|
-ms-flex: 0 0 auto;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.acquire-item .medium #ext {
|
|
text-align: left;
|
|
max-width: 100px;
|
|
}
|
|
|
|
.acquire-item .medium div:nth-child(1),
|
|
.acquire-item .medium div:nth-child(3),
|
|
.acquire-item .medium div:nth-child(5) {
|
|
background-color: #e9fff5;
|
|
}
|
|
|
|
.acquire-item .medium div:nth-child(2),
|
|
.acquire-item .medium div:nth-child(4),
|
|
.acquire-item .medium div:nth-child(6) {
|
|
background-color: #ffffef;
|
|
}
|
|
|
|
.acquire-item .bottom {
|
|
font-weight: bold;
|
|
font-size: 9pt;
|
|
display: -ms-flexbox;
|
|
display: flex;
|
|
-ms-flex-direction: row;
|
|
flex-direction: row;
|
|
-ms-flex-line-pack: center;
|
|
align-content: center;
|
|
-ms-flex-wrap: wrap;
|
|
flex-wrap: wrap;
|
|
-ms-flex-pack: justify;
|
|
justify-content: space-between;
|
|
-ms-flex-align: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.acquire-item #hashpart {
|
|
-ms-flex: 1 1 auto;
|
|
flex: 1;
|
|
overflow-y: hidden;
|
|
overflow-x: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.acquire-item:hover {
|
|
background-color: rgba(0, 0, 0, 0.122);
|
|
}
|
|
|
|
.acquire-item #download {
|
|
cursor: pointer;
|
|
font-size: 10pt;
|
|
}
|
|
</style>
|
|
<div id="acquire-template" class="acquire-item" style="display: none;">
|
|
<div id="name" class="top" title="Identity Name"></div>
|
|
<div class="medium">
|
|
<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="" data-res-resxml="READER_ACQUIRE_CLICKDOWNLOAD"></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="acquire-loading">
|
|
<br>
|
|
<div class="container itemrow">
|
|
<progress class="win-ring" style="margin-right: 10px;"></progress>
|
|
<span class="win-label title" data-res-resxml="MANAGER_APP_INSTALLEDAPPS_LOADING"></span>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
<div id="acquire-result" style="width: 100%;">
|
|
<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 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("PackageReader:EnableAcquire").readBool(false);
|
|
var acquireInput = document.getElementById("acquire-input");
|
|
var acquireValuetype = document.getElementById("acquire-valuetype");
|
|
var acquireChannel = document.getElementById("acquire-channel");
|
|
var acquireSmartquery = document.getElementById("acquire-smartquery");
|
|
var acquireQuery = document.getElementById("acquire-query");
|
|
var acquireResult = document.getElementById("acquire-result");
|
|
var acquireListApp = document.getElementById("acquire-list-app");
|
|
var acquireListDep = document.getElementById("acquire-list-dep");
|
|
var acquireForbidden = document.getElementById("acquire-forbidden");
|
|
var acquireEnable = document.getElementById("acquire-enable");
|
|
var acquireCategoryid = document.getElementById("acquire-categoryid");
|
|
var acquireTemplate = document.getElementById("acquire-template");
|
|
var acquireLoading = document.getElementById("acquire-loading");
|
|
var acquireLoadingRing = acquireLoading.querySelector(".win-ring");
|
|
var acquireLoadingLabel = acquireLoading.querySelector(".win-label");
|
|
acquireForbidden.style.display = isForbidden ? "" : "none";
|
|
acquireEnable.style.display = isForbidden ? "none" : "";
|
|
acquireResult.style.display = isForbidden ? "none" : "none";
|
|
var dataSrc = {
|
|
apps: new DataView.DataSource(),
|
|
deps: new DataView.DataSource()
|
|
};
|
|
var putils = Package.Utils;
|
|
var templateFunc = function(item, index) {
|
|
var node = acquireTemplate.cloneNode(true);
|
|
node.style.display = "";
|
|
node.id = "";
|
|
var lastDotIndex = item.file.lastIndexOf(".");
|
|
var fileNamePart = lastDotIndex !== -1 ? item.file.substring(0, lastDotIndex) : item.file;
|
|
var fileExtension = lastDotIndex !== -1 ? item.file.substring(lastDotIndex + 1) : "";
|
|
var identityName = putils.parsePackageFullName(fileNamePart);
|
|
node.querySelector("#name").textContent = identityName.name;
|
|
node.querySelector("#ext").textContent = fileExtension;
|
|
node.querySelector("#version").textContent = identityName.version;
|
|
node.querySelector("#architecture").textContent = identityName.architecture;
|
|
node.querySelector("#publisherId").textContent = identityName.publisherId;
|
|
node.querySelector("#size").textContent = item.size;
|
|
node.querySelector("#hash").textContent = item.sha1;
|
|
node.title = item.file;
|
|
node.querySelector("#download").href = item.url;
|
|
node.querySelector("#download").title = item.url;
|
|
return node;
|
|
};
|
|
var listView = {
|
|
apps: new DataView.ListView(acquireListApp, templateFunc),
|
|
deps: new DataView.ListView(acquireListDep, templateFunc)
|
|
};
|
|
listView.apps.bind(dataSrc.apps);
|
|
listView.deps.bind(dataSrc.deps);
|
|
var keys = Object.keys(listView);
|
|
keys.forEach(function(k, i) {
|
|
var listview = listView[k];
|
|
var p = document.createElement("p");
|
|
p.textContent = stringRes("READER_ACQUIRE_NOCONTENT");
|
|
listview.emptyView = p;
|
|
});
|
|
acquireLoading.statusBar = new TransitionPanel(acquireLoading, {
|
|
axis: "y",
|
|
speed: 500,
|
|
});
|
|
acquireSmartquery.onchange = function() {
|
|
acquireValuetype.disabled =
|
|
acquireChannel.disabled = this.checked;
|
|
};
|
|
acquireSmartquery.checked = set.getKey("AcquireSmartQuery").readBool(false);
|
|
acquireValuetype.disabled =
|
|
acquireChannel.disabled = acquireSmartquery.checked;
|
|
acquireQuery.onclick = function() {
|
|
var self = this;
|
|
self.disabled = true;
|
|
acquireResult.style.display = "none";
|
|
acquireLoadingRing.style.display = "";
|
|
acquireLoading.statusBar.show();
|
|
var queryFunc = StoreRG.xhr.parse;
|
|
if (acquireSmartquery.checked) {
|
|
queryFunc = StoreRG.xhr.smartQuery;
|
|
}
|
|
acquireInput.disabled =
|
|
acquireSmartquery.disabled =
|
|
acquireValuetype.disabled =
|
|
acquireChannel.disabled = true;
|
|
//queryFunc = StoreRG.test;
|
|
acquireLoadingLabel.textContent = stringRes("READER_ACQUIRE_QUERYING");
|
|
queryFunc(acquireInput.value, acquireValuetype.value, acquireChannel.value).then(function(result) {
|
|
acquireCategoryid.textContent = result.categoryId;
|
|
var applist = [];
|
|
var deplist = [];
|
|
result.datas.forEach(function(item, index) {
|
|
if (item.file.indexOf(".BlockMap") >= 0) return;
|
|
if (putils.isDependency(item.file)) {
|
|
deplist.push(item);
|
|
} else {
|
|
applist.push(item);
|
|
}
|
|
});
|
|
dataSrc.apps.updateList(applist, function(item) {
|
|
return item.file;
|
|
});
|
|
listView.apps.refresh();
|
|
dataSrc.deps.updateList(deplist, function(item) {
|
|
return item.file;
|
|
});
|
|
listView.deps.refresh();
|
|
acquireLoadingLabel.textContent = stringRes("READER_ACQUIRE_RESULTCNT")
|
|
.replace("{0}", applist.length + deplist.length);
|
|
}, function(err) {
|
|
dataSrc.apps.clear();
|
|
dataSrc.deps.clear();
|
|
listView.apps.refresh();
|
|
listView.deps.refresh();
|
|
acquireLoadingLabel.textContent = err.message || err;
|
|
return Promise.wrap();
|
|
}).done(function() {
|
|
acquireResult.style.display = "";
|
|
setTimeout(function() {
|
|
acquireLoading.statusBar.hide();
|
|
}, 10000);
|
|
self.disabled = false;
|
|
acquireLoadingRing.style.display = "none";
|
|
acquireInput.disabled =
|
|
acquireSmartquery.disabled = false;
|
|
acquireValuetype.disabled =
|
|
acquireChannel.disabled = acquireSmartquery.checked;
|
|
});
|
|
}
|
|
})(this);
|
|
</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">
|
|
<ul class="list top">
|
|
<li class="title">
|
|
<div role="img"></div>
|
|
<!--<div role="placeholder"></div>-->
|
|
<span class="win-type-base" data-res-resxml="READER_APPTITLE"></span>
|
|
</li>
|
|
<script>
|
|
(function($) {
|
|
var foldBtn = document.querySelector(".page aside nav ul li.title");
|
|
var page = document.querySelector(".pagecontainer .page");
|
|
Windows.UI.Event.Util.addEvent(foldBtn, "dblclick", function() {
|
|
page.classList.toggle("fold");
|
|
});
|
|
})(this);
|
|
</script>
|
|
</ul>
|
|
<hr>
|
|
<ul class="list">
|
|
<li id="tag-reader">
|
|
<div role="img"></div>
|
|
<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="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="READER_SETTINGS_TITLE"></span>
|
|
</li>
|
|
<script>
|
|
(function(global) {
|
|
var isexec = false;
|
|
var settag = document.getElementById("tag-settings");
|
|
Windows.UI.Event.Util.addEvent(settag, "click", function() {
|
|
if (isexec) return;
|
|
var self = this;
|
|
try {
|
|
var settingpath = external.Storage.Path.combine(external.Storage.Path.root, "settings.exe");
|
|
//var cmdline = "\"{execfile}\" manager".replace("{execfile}", settingpath);
|
|
external.Process.runAsync(
|
|
"reader",
|
|
settingpath,
|
|
1,
|
|
"",
|
|
function(ret) {
|
|
isexec = false;
|
|
self.classList.remove("selected");
|
|
}
|
|
);
|
|
isexec = true;
|
|
self.classList.add("selected");
|
|
} catch (e) {
|
|
console.error(e);
|
|
}
|
|
});
|
|
})(this);
|
|
</script>
|
|
</ul>
|
|
</nav>
|
|
</aside>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
|
|
</html> |