Add preview of patches without having to load file

This commit is contained in:
Will Toohey
2021-02-23 23:34:40 +10:00
parent a4f9140248
commit 5bb404f787
2 changed files with 43 additions and 15 deletions
+19
View File
@@ -155,6 +155,12 @@ h3 {
line-height: 1.2; line-height: 1.2;
} }
h4,
h5 {
line-height: 1;
margin: 10px auto;
}
h1 { h1 {
text-align: center; text-align: center;
} }
@@ -287,3 +293,16 @@ input[type=radio] {
cursor: pointer; cursor: pointer;
display: inline-block; display: inline-block;
} }
.patchPreviewLabel {
cursor: pointer;
}
.patchPreviewToggle {
display: none;
}
.patchPreview {
display: none;
}
input[type=checkbox]:checked + .patchPreview {
display: block;
}
+23 -14
View File
@@ -202,14 +202,6 @@ class PatchContainer {
return dlls; return dlls;
} }
getSupportedVersions() {
var descriptions = [];
for (var i = 0; i < this.patchers.length; i++) {
descriptions.push(this.patchers[i].description);
}
return descriptions;
}
createUI() { createUI() {
var self = this; var self = this;
var container = $("<div>", {"class": "patchContainer"}); var container = $("<div>", {"class": "patchContainer"});
@@ -217,18 +209,36 @@ class PatchContainer {
container.html("<h3>" + header + "</h3>"); container.html("<h3>" + header + "</h3>");
var supportedDlls = $("<ul>"); var supportedDlls = $("<ul>");
var versions = this.getSupportedVersions();
this.forceLoadTexts = []; this.forceLoadTexts = [];
this.forceLoadButtons = []; this.forceLoadButtons = [];
for (var i = 0; i < versions.length; i++) { for (var i = 0; i < this.patchers.length; i++) {
var checkboxId = createID();
var listItem = $("<li>"); var listItem = $("<li>");
$('<span>').text(versions[i]).appendTo(listItem); $('<label>')
.attr("for", checkboxId)
.text(this.patchers[i].description)
.addClass('patchPreviewLabel')
.appendTo(listItem);
var matchPercent = $('<span>').addClass('matchPercent'); var matchPercent = $('<span>').addClass('matchPercent');
this.forceLoadTexts.push(matchPercent); this.forceLoadTexts.push(matchPercent);
matchPercent.appendTo(listItem); matchPercent.appendTo(listItem);
var forceButton = $('<button>').text('Force load?').hide(); var forceButton = $('<button>').text('Force load?').hide();
this.forceLoadButtons.push(forceButton); this.forceLoadButtons.push(forceButton);
forceButton.appendTo(listItem); forceButton.appendTo(listItem);
$("<input>", {
"class": "patchPreviewToggle",
"id": checkboxId,
"type": "checkbox",
}).appendTo(listItem);
var patchPreviews = $("<ul>").addClass('patchPreview');
for (var j = 0; j < this.patchers[i].mods.length; j++) {
var patchName = this.patchers[i].mods[j].name;
$('<li>').text(patchName).appendTo(patchPreviews);
}
patchPreviews.appendTo(listItem);
listItem.appendTo(supportedDlls); listItem.appendTo(supportedDlls);
} }
@@ -272,9 +282,8 @@ class PatchContainer {
container.append(this.fileInput); container.append(this.fileInput);
container.append(label); container.append(label);
if (versions.length > 0) { $("<h4>Supported Versions:</h4>").appendTo(container);
$("<h4>Supported Versions</h4>").appendTo(container); $("<h5>Click name to preview patches</h5>").appendTo(container);
}
container.append(supportedDlls); container.append(supportedDlls);
container.append(this.successDiv); container.append(this.successDiv);
container.append(this.errorDiv); container.append(this.errorDiv);