diff --git a/package/share/ahriman/templates/build-status.jinja2 b/package/share/ahriman/templates/build-status.jinja2
index 995088aa..0b0dac54 100644
--- a/package/share/ahriman/templates/build-status.jinja2
+++ b/package/share/ahriman/templates/build-status.jinja2
@@ -63,6 +63,8 @@
|
- package base |
- version |
- packages |
- groups |
- licenses |
- packager |
- last update |
- status |
+ package base |
+ version |
+ packages |
+ groups |
+ licenses |
+ packager |
+ last update |
+ status |
diff --git a/package/share/ahriman/templates/build-status/key-import-modal.jinja2 b/package/share/ahriman/templates/build-status/key-import-modal.jinja2
index dd5628d0..7def88d6 100644
--- a/package/share/ahriman/templates/build-status/key-import-modal.jinja2
+++ b/package/share/ahriman/templates/build-status/key-import-modal.jinja2
@@ -84,7 +84,7 @@
showSuccess("Success", `Key ${key} has been imported`);
},
error: (jqXHR, _, errorThrown) => {
- const message = _ => { return `Could not import key ${key} from ${server}`; };
+ const message = _ => `Could not import key ${key} from ${server}`;
showFailure("Action failed", message, jqXHR, errorThrown);
},
});
diff --git a/package/share/ahriman/templates/build-status/package-add-modal.jinja2 b/package/share/ahriman/templates/build-status/package-add-modal.jinja2
index 86822c72..0dee9a14 100644
--- a/package/share/ahriman/templates/build-status/package-add-modal.jinja2
+++ b/package/share/ahriman/templates/build-status/package-add-modal.jinja2
@@ -60,8 +60,8 @@
const packages = packageInput.val();
if (packages) {
packageAddModal.modal("hide");
- const onSuccess = update => { return `Packages ${update} have been added`; };
- const onFailure = error => { return `Package addition failed: ${error}`; };
+ const onSuccess = update => `Packages ${update} have been added`;
+ const onFailure = error => `Package addition failed: ${error}`;
doPackageAction("/api/v1/service/add", [packages], onSuccess, onFailure);
}
}
@@ -70,8 +70,8 @@
const packages = packageInput.val();
if (packages) {
packageAddModal.modal("hide");
- const onSuccess = update => { return `Packages ${update} have been requested`; };
- const onFailure = error => { return `Package request failed: ${error}`; };
+ const onSuccess = update => `Packages ${update} have been requested`;
+ const onFailure = error => `Package request failed: ${error}`;
doPackageAction("/api/v1/service/request", [packages], onSuccess, onFailure);
}
}
diff --git a/package/share/ahriman/templates/build-status/package-info-modal.jinja2 b/package/share/ahriman/templates/build-status/package-info-modal.jinja2
index 5abdff21..e3eb5ff5 100644
--- a/package/share/ahriman/templates/build-status/package-info-modal.jinja2
+++ b/package/share/ahriman/templates/build-status/package-info-modal.jinja2
@@ -61,7 +61,7 @@
error: (jqXHR, _, errorThrown) => {
// show failed modal in case if first time loading
if (isPackageBaseSet) {
- const message = error => { return `Could not load package ${packageBase} logs: ${error}`; };
+ const message = error => `Could not load package ${packageBase} logs: ${error}`;
showFailure("Load failure", message, jqXHR, errorThrown);
}
},
diff --git a/package/share/ahriman/templates/build-status/package-rebuild-modal.jinja2 b/package/share/ahriman/templates/build-status/package-rebuild-modal.jinja2
index 3663b12b..2724128d 100644
--- a/package/share/ahriman/templates/build-status/package-rebuild-modal.jinja2
+++ b/package/share/ahriman/templates/build-status/package-rebuild-modal.jinja2
@@ -33,8 +33,8 @@
const packages = dependencyInput.val();
if (packages) {
packageRebuildModal.modal("hide");
- const onSuccess = update => { return `Repository rebuild has been run for packages which depend on ${update}`; };
- const onFailure = error => { return `Repository rebuild failed: ${error}`; };
+ const onSuccess = update => `Repository rebuild has been run for packages which depend on ${update}`;
+ const onFailure = error => `Repository rebuild failed: ${error}`;
doPackageAction("/api/v1/service/rebuild", [packages], onSuccess, onFailure);
}
}
diff --git a/package/share/ahriman/templates/build-status/table.jinja2 b/package/share/ahriman/templates/build-status/table.jinja2
index 03b327da..337b9343 100644
--- a/package/share/ahriman/templates/build-status/table.jinja2
+++ b/package/share/ahriman/templates/build-status/table.jinja2
@@ -15,6 +15,25 @@
table.bootstrapTable(method, {field: "id", values: [data.id]});
} else showLogs(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 repositoryBadge = $("#badge-repository");
const statusBadge = $("#badge-status");
@@ -37,21 +56,21 @@
}
function getSelection() {
- return table.bootstrapTable("getSelections").map(row => { return row.id; });
+ return table.bootstrapTable("getSelections").map(row => row.id);
}
function removePackages() {
- const onSuccess = update => { return `Packages ${update} have been removed`; };
- const onFailure = error => { return `Could not remove packages: ${error}`; };
+ const onSuccess = update => `Packages ${update} have been removed`;
+ const onFailure = error => `Could not remove packages: ${error}`;
doPackageAction("/api/v1/service/remove", getSelection(), onSuccess, onFailure);
}
function updatePackages() {
const currentSelection = getSelection();
const [url, onSuccess] = currentSelection.length === 0
- ? ["/api/v1/service/update", _ => { return "Repository update has been run"; }]
- : ["/api/v1/service/add", update => { return `Run update for packages ${update}`; }];
- const onFailure = error => { return `Packages update failed: ${error}`; };
+ ? ["/api/v1/service/update", _ => "Repository update has been run"]
+ : ["/api/v1/service/add", update => `Run update for packages ${update}`];
+ const onFailure = error => `Packages update failed: ${error}`;
doPackageAction(url, currentSelection, onSuccess, onFailure);
}
@@ -81,13 +100,13 @@
success: response => {
const extractListProperties = (description, property) => {
return Object.values(description.packages)
- .map(pkg => { return pkg[property]; })
- .reduce((left, right) => { return left.concat(right); }, []);
+ .map(pkg => pkg[property])
+ .reduce((left, right) => left.concat(right), []);
};
const listToTable = data => {
return Array.from(new Set(data))
.sort()
- .map(entry => { return safe(entry); })
+ .map(entry => safe(entry))
.join("
");
};
@@ -121,7 +140,7 @@
table.bootstrapTable("hideLoading");
} else {
// other errors
- const message = error => { return `Could not load list of packages: ${error}`; };
+ const message = error => `Could not load list of packages: ${error}`;
showFailure("Load failure", message, jqXHR, errorThrown);
}
hideControls(true);
@@ -158,6 +177,18 @@
return {classes: cellClass(value)};
}
+ function filterListGroups() {
+ return extractDataList(table.bootstrapTable("getData"), "groups");
+ }
+
+ function filterListLicenses() {
+ return extractDataList(table.bootstrapTable("getData"), "licenses");
+ }
+
+ function filterListPackagers() {
+ return extractDataList(table.bootstrapTable("getData"), "packager");
+ }
+
$(() => {
table.bootstrapTable({});
statusBadge.popover();
diff --git a/package/share/ahriman/templates/repo-index.jinja2 b/package/share/ahriman/templates/repo-index.jinja2
index 139f21c1..ed8cfcd6 100644
--- a/package/share/ahriman/templates/repo-index.jinja2
+++ b/package/share/ahriman/templates/repo-index.jinja2
@@ -31,6 +31,8 @@ SigLevel = Database{% if has_repo_signed %}Required{% else %}Never{% endif %} Pa
- package |
- version |
- architecture |
- description |
- upstream url |
- licenses |
- groups |
- depends |
- archive size |
- installed size |
- build date |
+ package |
+ version |
+ architecture |
+ description |
+ upstream url |
+ licenses |
+ groups |
+ depends |
+ archive size |
+ installed size |
+ build date |
@@ -96,6 +99,27 @@ SigLevel = Database{% if has_repo_signed %}Required{% else %}Never{% endif %} Pa