mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-28 09:17:17 +00:00
fix: lazy web component initialization
In some cases (probably slow internet) in place initialization can cause exception, because elements are not available yet. This commit moves events initialization to $()
This commit is contained in:
parent
855b55237b
commit
0ae4941321
@ -38,10 +38,6 @@
|
|||||||
<script>
|
<script>
|
||||||
const keyImportModal = $("#key-import-modal");
|
const keyImportModal = $("#key-import-modal");
|
||||||
const keyImportForm = $("#key-import-form");
|
const keyImportForm = $("#key-import-form");
|
||||||
keyImportModal.on("hidden.bs.modal", () => {
|
|
||||||
keyImportBodyInput.text("");
|
|
||||||
keyImportForm.trigger("reset");
|
|
||||||
});
|
|
||||||
|
|
||||||
const keyImportBodyInput = $("#key-import-body-input");
|
const keyImportBodyInput = $("#key-import-body-input");
|
||||||
const keyImportCopyButton = $("#key-import-copy-button");
|
const keyImportCopyButton = $("#key-import-copy-button");
|
||||||
@ -90,4 +86,11 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$(() => {
|
||||||
|
keyImportModal.on("hidden.bs.modal", () => {
|
||||||
|
keyImportBodyInput.text("");
|
||||||
|
keyImportForm.trigger("reset");
|
||||||
|
});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -36,9 +36,6 @@
|
|||||||
<script>
|
<script>
|
||||||
const loginModal = $("#login-modal");
|
const loginModal = $("#login-modal");
|
||||||
const loginForm = $("#login-form");
|
const loginForm = $("#login-form");
|
||||||
loginModal.on("hidden.bs.modal", () => {
|
|
||||||
loginForm.trigger("reset");
|
|
||||||
});
|
|
||||||
|
|
||||||
const loginPasswordInput = $("#login-password");
|
const loginPasswordInput = $("#login-password");
|
||||||
const loginUsernameInput = $("#login-username");
|
const loginUsernameInput = $("#login-username");
|
||||||
@ -77,4 +74,10 @@
|
|||||||
showHidePasswordButton.addClass("bi-eye");
|
showHidePasswordButton.addClass("bi-eye");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$(() => {
|
||||||
|
loginModal.on("hidden.bs.modal", () => {
|
||||||
|
loginForm.trigger("reset");
|
||||||
|
});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -43,41 +43,10 @@
|
|||||||
<script>
|
<script>
|
||||||
const packageAddModal = $("#package-add-modal");
|
const packageAddModal = $("#package-add-modal");
|
||||||
const packageAddForm = $("#package-add-form");
|
const packageAddForm = $("#package-add-form");
|
||||||
packageAddModal.on("shown.bs.modal", () => {
|
|
||||||
$(`#package-add-repository-input option[value="${repository.architecture}-${repository.repository}"]`).prop("selected", true);
|
|
||||||
});
|
|
||||||
packageAddModal.on("hidden.bs.modal", () => {
|
|
||||||
packageAddVariablesDiv.empty();
|
|
||||||
packageAddForm.trigger("reset");
|
|
||||||
});
|
|
||||||
|
|
||||||
const packageAddInput = $("#package-add-input");
|
const packageAddInput = $("#package-add-input");
|
||||||
const packageAddRepositoryInput = $("#package-add-repository-input");
|
const packageAddRepositoryInput = $("#package-add-repository-input");
|
||||||
const packageAddKnownPackagesList = $("#package-add-known-packages-dlist");
|
const packageAddKnownPackagesList = $("#package-add-known-packages-dlist");
|
||||||
packageAddInput.keyup(() => {
|
|
||||||
clearTimeout(packageAddInput.data("timeout"));
|
|
||||||
packageAddInput.data("timeout", setTimeout($.proxy(() => {
|
|
||||||
const value = packageAddInput.val();
|
|
||||||
|
|
||||||
if (value.length >= 3) {
|
|
||||||
$.ajax({
|
|
||||||
url: "/api/v1/service/search",
|
|
||||||
data: {"for": value},
|
|
||||||
type: "GET",
|
|
||||||
dataType: "json",
|
|
||||||
success: response => {
|
|
||||||
const options = response.map(pkg => {
|
|
||||||
const option = document.createElement("option");
|
|
||||||
option.value = pkg.package;
|
|
||||||
option.innerText = `${pkg.package} (${pkg.description})`;
|
|
||||||
return option;
|
|
||||||
});
|
|
||||||
packageAddKnownPackagesList.empty().append(options);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, this), 500));
|
|
||||||
});
|
|
||||||
|
|
||||||
const packageAddVariablesDiv = $("#package-add-variables-div");
|
const packageAddVariablesDiv = $("#package-add-variables-div");
|
||||||
|
|
||||||
@ -156,4 +125,39 @@
|
|||||||
doPackageAction("/api/v1/service/request", [packages], repository, onSuccess, onFailure, patches);
|
doPackageAction("/api/v1/service/request", [packages], repository, onSuccess, onFailure, patches);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$(() => {
|
||||||
|
packageAddModal.on("shown.bs.modal", () => {
|
||||||
|
$(`#package-add-repository-input option[value="${repository.architecture}-${repository.repository}"]`).prop("selected", true);
|
||||||
|
});
|
||||||
|
packageAddModal.on("hidden.bs.modal", () => {
|
||||||
|
packageAddVariablesDiv.empty();
|
||||||
|
packageAddForm.trigger("reset");
|
||||||
|
});
|
||||||
|
|
||||||
|
packageAddInput.keyup(() => {
|
||||||
|
clearTimeout(packageAddInput.data("timeout"));
|
||||||
|
packageAddInput.data("timeout", setTimeout($.proxy(() => {
|
||||||
|
const value = packageAddInput.val();
|
||||||
|
|
||||||
|
if (value.length >= 3) {
|
||||||
|
$.ajax({
|
||||||
|
url: "/api/v1/service/search",
|
||||||
|
data: {"for": value},
|
||||||
|
type: "GET",
|
||||||
|
dataType: "json",
|
||||||
|
success: response => {
|
||||||
|
const options = response.map(pkg => {
|
||||||
|
const option = document.createElement("option");
|
||||||
|
option.value = pkg.package;
|
||||||
|
option.innerText = `${pkg.package} (${pkg.description})`;
|
||||||
|
return option;
|
||||||
|
});
|
||||||
|
packageAddKnownPackagesList.empty().append(options);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, this), 500));
|
||||||
|
});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -72,26 +72,6 @@
|
|||||||
const packageInfoModal = $("#package-info-modal");
|
const packageInfoModal = $("#package-info-modal");
|
||||||
const packageInfoModalHeader = $("#package-info-modal-header");
|
const packageInfoModalHeader = $("#package-info-modal-header");
|
||||||
const packageInfo = $("#package-info");
|
const packageInfo = $("#package-info");
|
||||||
packageInfoModal.on("hidden.bs.modal", () => {
|
|
||||||
packageInfoAurUrl.empty();
|
|
||||||
packageInfoDepends.empty();
|
|
||||||
packageInfoGroups.empty();
|
|
||||||
packageInfoLicenses.empty();
|
|
||||||
packageInfoPackager.empty();
|
|
||||||
packageInfoPackages.empty();
|
|
||||||
packageInfoUpstreamUrl.empty();
|
|
||||||
packageInfoVersion.empty();
|
|
||||||
|
|
||||||
packageInfoVariablesBlock.attr("hidden", true);
|
|
||||||
packageInfoVariablesDiv.empty();
|
|
||||||
|
|
||||||
packageInfoLogsInput.empty();
|
|
||||||
packageInfoChangesInput.empty();
|
|
||||||
|
|
||||||
packageInfoModal.trigger("reset");
|
|
||||||
|
|
||||||
hideInfoControls(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
const packageInfoLogsInput = $("#package-info-logs-input");
|
const packageInfoLogsInput = $("#package-info-logs-input");
|
||||||
const packageInfoLogsCopyButton = $("#package-info-logs-copy-button");
|
const packageInfoLogsCopyButton = $("#package-info-logs-copy-button");
|
||||||
@ -309,4 +289,27 @@
|
|||||||
|
|
||||||
if (isPackageBaseSet) packageInfoModal.modal("show");
|
if (isPackageBaseSet) packageInfoModal.modal("show");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$(() => {
|
||||||
|
packageInfoModal.on("hidden.bs.modal", () => {
|
||||||
|
packageInfoAurUrl.empty();
|
||||||
|
packageInfoDepends.empty();
|
||||||
|
packageInfoGroups.empty();
|
||||||
|
packageInfoLicenses.empty();
|
||||||
|
packageInfoPackager.empty();
|
||||||
|
packageInfoPackages.empty();
|
||||||
|
packageInfoUpstreamUrl.empty();
|
||||||
|
packageInfoVersion.empty();
|
||||||
|
|
||||||
|
packageInfoVariablesBlock.attr("hidden", true);
|
||||||
|
packageInfoVariablesDiv.empty();
|
||||||
|
|
||||||
|
packageInfoLogsInput.empty();
|
||||||
|
packageInfoChangesInput.empty();
|
||||||
|
|
||||||
|
packageInfoModal.trigger("reset");
|
||||||
|
|
||||||
|
hideInfoControls(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -35,11 +35,6 @@
|
|||||||
<script>
|
<script>
|
||||||
const packageRebuildModal = $("#package-rebuild-modal");
|
const packageRebuildModal = $("#package-rebuild-modal");
|
||||||
const packageRebuildForm = $("#package-rebuild-form");
|
const packageRebuildForm = $("#package-rebuild-form");
|
||||||
packageRebuildModal.on("shown.bs.modal", () => {
|
|
||||||
$(`#package-rebuild-repository-input option[value="${repository.architecture}-${repository.repository}"]`).prop("selected", true);
|
|
||||||
|
|
||||||
});
|
|
||||||
packageRebuildModal.on("hidden.bs.modal", () => { packageRebuildForm.trigger("reset"); });
|
|
||||||
|
|
||||||
const packageRebuildDependencyInput = $("#package-rebuild-dependency-input");
|
const packageRebuildDependencyInput = $("#package-rebuild-dependency-input");
|
||||||
const packageRebuildRepositoryInput = $("#package-rebuild-repository-input");
|
const packageRebuildRepositoryInput = $("#package-rebuild-repository-input");
|
||||||
@ -54,4 +49,12 @@
|
|||||||
doPackageAction("/api/v1/service/rebuild", [packages], repository, onSuccess, onFailure);
|
doPackageAction("/api/v1/service/rebuild", [packages], repository, onSuccess, onFailure);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$(() => {
|
||||||
|
packageRebuildModal.on("shown.bs.modal", () => {
|
||||||
|
$(`#package-rebuild-repository-input option[value="${repository.architecture}-${repository.repository}"]`).prop("selected", true);
|
||||||
|
|
||||||
|
});
|
||||||
|
packageRebuildModal.on("hidden.bs.modal", () => { packageRebuildForm.trigger("reset"); });
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -9,46 +9,8 @@
|
|||||||
const packageInfoUpdateButton = $("#package-info-update-button");
|
const packageInfoUpdateButton = $("#package-info-update-button");
|
||||||
|
|
||||||
let repository = null;
|
let repository = null;
|
||||||
$("#repositories a").on("click", (event) => {
|
|
||||||
const element = event.target;
|
|
||||||
repository = {
|
|
||||||
architecture: element.dataset.architecture,
|
|
||||||
repository: element.dataset.repository,
|
|
||||||
};
|
|
||||||
packageUpdateButton.html(`<i class="bi bi-play"></i> update<span class="d-none d-sm-inline"> ${safe(repository.repository)} (${safe(repository.architecture)})</span>`);
|
|
||||||
$(`#${element.id}`).tab("show");
|
|
||||||
reload();
|
|
||||||
});
|
|
||||||
|
|
||||||
const table = $("#packages");
|
const table = $("#packages");
|
||||||
table.on("check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table", () => {
|
|
||||||
packageRemoveButton.prop("disabled", !table.bootstrapTable("getSelections").length);
|
|
||||||
});
|
|
||||||
table.on("click-row.bs.table", (self, data, row, cell) => {
|
|
||||||
if (0 === cell || "base" === cell) {
|
|
||||||
const method = data[0] === true ? "uncheckBy" : "checkBy"; // fck javascript
|
|
||||||
table.bootstrapTable(method, {field: "id", values: [data.id]});
|
|
||||||
} else showPackageInfo(data.id);
|
|
||||||
});
|
|
||||||
table.on("created-controls.bs.table", () => {
|
|
||||||
const pickerInput = $(".bootstrap-table-filter-control-timestamp");
|
|
||||||
pickerInput.daterangepicker({
|
|
||||||
autoUpdateInput: false,
|
|
||||||
locale: {
|
|
||||||
cancelLabel: "Clear",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
pickerInput.on("apply.daterangepicker", (event, picker) => {
|
|
||||||
pickerInput.val(`${picker.startDate.format("YYYY-MM-DD")} - ${picker.endDate.format("YYYY-MM-DD")}`);
|
|
||||||
table.bootstrapTable("triggerSearch");
|
|
||||||
});
|
|
||||||
|
|
||||||
pickerInput.on("cancel.daterangepicker", () => {
|
|
||||||
pickerInput.val("");
|
|
||||||
table.bootstrapTable("triggerSearch");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
const statusBadge = $("#badge-status");
|
const statusBadge = $("#badge-status");
|
||||||
const versionBadge = $("#badge-version");
|
const versionBadge = $("#badge-version");
|
||||||
@ -221,6 +183,46 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
$(() => {
|
$(() => {
|
||||||
|
$("#repositories a").on("click", event => {
|
||||||
|
const element = event.target;
|
||||||
|
repository = {
|
||||||
|
architecture: element.dataset.architecture,
|
||||||
|
repository: element.dataset.repository,
|
||||||
|
};
|
||||||
|
packageUpdateButton.html(`<i class="bi bi-play"></i> update<span class="d-none d-sm-inline"> ${safe(repository.repository)} (${safe(repository.architecture)})</span>`);
|
||||||
|
$(`#${element.id}`).tab("show");
|
||||||
|
reload();
|
||||||
|
});
|
||||||
|
|
||||||
|
table.on("check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table", () => {
|
||||||
|
packageRemoveButton.prop("disabled", !table.bootstrapTable("getSelections").length);
|
||||||
|
});
|
||||||
|
table.on("click-row.bs.table", (self, data, row, cell) => {
|
||||||
|
if (0 === cell || "base" === cell) {
|
||||||
|
const method = data[0] === true ? "uncheckBy" : "checkBy"; // fck javascript
|
||||||
|
table.bootstrapTable(method, {field: "id", values: [data.id]});
|
||||||
|
} else showPackageInfo(data.id);
|
||||||
|
});
|
||||||
|
table.on("created-controls.bs.table", () => {
|
||||||
|
const pickerInput = $(".bootstrap-table-filter-control-timestamp");
|
||||||
|
pickerInput.daterangepicker({
|
||||||
|
autoUpdateInput: false,
|
||||||
|
locale: {
|
||||||
|
cancelLabel: "Clear",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
pickerInput.on("apply.daterangepicker", (event, picker) => {
|
||||||
|
pickerInput.val(`${picker.startDate.format("YYYY-MM-DD")} - ${picker.endDate.format("YYYY-MM-DD")}`);
|
||||||
|
table.bootstrapTable("triggerSearch");
|
||||||
|
});
|
||||||
|
|
||||||
|
pickerInput.on("cancel.daterangepicker", () => {
|
||||||
|
pickerInput.val("");
|
||||||
|
table.bootstrapTable("triggerSearch");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
table.bootstrapTable({});
|
table.bootstrapTable({});
|
||||||
statusBadge.popover();
|
statusBadge.popover();
|
||||||
selectRepository();
|
selectRepository();
|
||||||
|
@ -102,25 +102,6 @@ SigLevel = Database{% if has_repo_signed %}Required{% else %}Never{% endif %} Pa
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
const table = $("#packages");
|
const table = $("#packages");
|
||||||
table.on("created-controls.bs.table", () => {
|
|
||||||
const pickerInput = $(".bootstrap-table-filter-control-timestamp");
|
|
||||||
pickerInput.daterangepicker({
|
|
||||||
autoUpdateInput: false,
|
|
||||||
locale: {
|
|
||||||
cancelLabel: "Clear",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
pickerInput.on("apply.daterangepicker", (event, picker) => {
|
|
||||||
pickerInput.val(`${picker.startDate.format("YYYY-MM-DD")} - ${picker.endDate.format("YYYY-MM-DD")}`);
|
|
||||||
table.bootstrapTable("triggerSearch");
|
|
||||||
});
|
|
||||||
|
|
||||||
pickerInput.on("cancel.daterangepicker", () => {
|
|
||||||
pickerInput.val("");
|
|
||||||
table.bootstrapTable("triggerSearch");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
const pacmanConf = $("#pacman-conf");
|
const pacmanConf = $("#pacman-conf");
|
||||||
const pacmanConfCopyButton = $("#copy-btn");
|
const pacmanConfCopyButton = $("#copy-btn");
|
||||||
@ -141,6 +122,28 @@ SigLevel = Database{% if has_repo_signed %}Required{% else %}Never{% endif %} Pa
|
|||||||
function filterListLicenses() {
|
function filterListLicenses() {
|
||||||
return extractDataList(table.bootstrapTable("getData"), "licenses");
|
return extractDataList(table.bootstrapTable("getData"), "licenses");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$(() => {
|
||||||
|
table.on("created-controls.bs.table", () => {
|
||||||
|
const pickerInput = $(".bootstrap-table-filter-control-timestamp");
|
||||||
|
pickerInput.daterangepicker({
|
||||||
|
autoUpdateInput: false,
|
||||||
|
locale: {
|
||||||
|
cancelLabel: "Clear",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
pickerInput.on("apply.daterangepicker", (event, picker) => {
|
||||||
|
pickerInput.val(`${picker.startDate.format("YYYY-MM-DD")} - ${picker.endDate.format("YYYY-MM-DD")}`);
|
||||||
|
table.bootstrapTable("triggerSearch");
|
||||||
|
});
|
||||||
|
|
||||||
|
pickerInput.on("cancel.daterangepicker", () => {
|
||||||
|
pickerInput.val("");
|
||||||
|
table.bootstrapTable("triggerSearch");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
Loading…
Reference in New Issue
Block a user