@@ -126,8 +128,7 @@
{% include "build-status/login-modal.jinja2" %}
{% endif %}
- {% include "build-status/failed-modal.jinja2" %}
- {% include "build-status/success-modal.jinja2" %}
+ {% include "build-status/alerts.jinja2" %}
{% include "build-status/package-add-modal.jinja2" %}
{% include "build-status/package-rebuild-modal.jinja2" %}
diff --git a/package/share/ahriman/templates/build-status/alerts.jinja2 b/package/share/ahriman/templates/build-status/alerts.jinja2
new file mode 100644
index 00000000..5b68d8e7
--- /dev/null
+++ b/package/share/ahriman/templates/build-status/alerts.jinja2
@@ -0,0 +1,45 @@
+
diff --git a/package/share/ahriman/templates/build-status/failed-modal.jinja2 b/package/share/ahriman/templates/build-status/failed-modal.jinja2
deleted file mode 100644
index 3ad77fdc..00000000
--- a/package/share/ahriman/templates/build-status/failed-modal.jinja2
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
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 706ab994..dd5628d0 100644
--- a/package/share/ahriman/templates/build-status/key-import-modal.jinja2
+++ b/package/share/ahriman/templates/build-status/key-import-modal.jinja2
@@ -81,10 +81,11 @@
contentType: "application/json",
success: _ => {
keyImportModal.modal("hide");
- showSuccess("Success", `Key ${key} has been imported`, "");
+ showSuccess("Success", `Key ${key} has been imported`);
},
error: (jqXHR, _, errorThrown) => {
- showFailure("Action failed", `Could not import key ${key} from ${server}`, errorThrown);
+ const message = _ => { return `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 6f11d243..86822c72 100644
--- a/package/share/ahriman/templates/build-status/package-add-modal.jinja2
+++ b/package/share/ahriman/templates/build-status/package-add-modal.jinja2
@@ -60,7 +60,9 @@
const packages = packageInput.val();
if (packages) {
packageAddModal.modal("hide");
- doPackageAction("/api/v1/service/add", [packages], "The following package has been added:", "Package addition failed:");
+ const onSuccess = update => { return `Packages ${update} have been added`; };
+ const onFailure = error => { return `Package addition failed: ${error}`; };
+ doPackageAction("/api/v1/service/add", [packages], onSuccess, onFailure);
}
}
@@ -68,7 +70,9 @@
const packages = packageInput.val();
if (packages) {
packageAddModal.modal("hide");
- doPackageAction("/api/v1/service/request", [packages], "The following package has been requested:", "Package request failed:");
+ const onSuccess = update => { return `Packages ${update} have been requested`; };
+ const onFailure = error => { return `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 85f20501..5abdff21 100644
--- a/package/share/ahriman/templates/build-status/package-info-modal.jinja2
+++ b/package/share/ahriman/templates/build-status/package-info-modal.jinja2
@@ -60,7 +60,10 @@
},
error: (jqXHR, _, errorThrown) => {
// show failed modal in case if first time loading
- if (isPackageBaseSet) showFailure("Load failure", `Could not load package ${packageBase} logs:`, errorThrown);
+ if (isPackageBaseSet) {
+ const message = error => { return `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 6706709b..3663b12b 100644
--- a/package/share/ahriman/templates/build-status/package-rebuild-modal.jinja2
+++ b/package/share/ahriman/templates/build-status/package-rebuild-modal.jinja2
@@ -33,7 +33,9 @@
const packages = dependencyInput.val();
if (packages) {
packageRebuildModal.modal("hide");
- doPackageAction("/api/v1/service/rebuild", [packages], "Repository rebuild ran for the following dependencies:", "Repository rebuild failed:");
+ const onSuccess = update => { return `Repository rebuild has been run for packages which depend on ${update}`; };
+ const onFailure = error => { return `Repository rebuild failed: ${error}`; };
+ doPackageAction("/api/v1/service/rebuild", [packages], onSuccess, onFailure);
}
}
diff --git a/package/share/ahriman/templates/build-status/success-modal.jinja2 b/package/share/ahriman/templates/build-status/success-modal.jinja2
deleted file mode 100644
index 744b9996..00000000
--- a/package/share/ahriman/templates/build-status/success-modal.jinja2
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
diff --git a/package/share/ahriman/templates/build-status/table.jinja2 b/package/share/ahriman/templates/build-status/table.jinja2
index 8582a410..32ccd1c2 100644
--- a/package/share/ahriman/templates/build-status/table.jinja2
+++ b/package/share/ahriman/templates/build-status/table.jinja2
@@ -27,15 +27,11 @@
type: "POST",
contentType: "application/json",
success: _ => {
- const details = packages.map(pkg => {
- const li = document.createElement("li");
- li.innerText = pkg;
- return li;
- });
- showSuccess("Success", successText, details);
+ const message = successText(packages.join(", "));
+ showSuccess("Success", message);
},
error: (jqXHR, _, errorThrown) => {
- showFailure("Action failed", failureText, errorThrown);
+ showFailure("Action failed", failureText, jqXHR, errorThrown);
},
});
}
@@ -45,13 +41,18 @@
}
function removePackages() {
- doPackageAction("/api/v1/service/remove", getSelection(), "The following packages have been removed:", "Packages removal failed:");
+ const onSuccess = update => { return `Packages ${update} have been removed`; };
+ const onFailure = error => { return `Could not remove packages: ${error}`; };
+ doPackageAction("/api/v1/service/remove", getSelection(), onSuccess, onFailure);
}
function updatePackages() {
const currentSelection = getSelection();
- const url = currentSelection.length === 0 ? "/api/v1/service/update" : "/api/v1/service/add";
- doPackageAction(url, getSelection(), "Packages update has been run", "Packages update failed:");
+ 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}`; };
+ doPackageAction(url, currentSelection, onSuccess, onFailure);
}
function hideControls(hidden) {
@@ -119,7 +120,8 @@
table.bootstrapTable("hideLoading");
} else {
// other errors
- showFailure("Load failure", "Could not load list of packages:", errorThrown);
+ const messaga = error => { return `Could not load list of packages: ${error}`; };
+ showFailure("Load failure", messaga, jqXHR, errorThrown);
}
hideControls(true);
},
@@ -144,14 +146,6 @@
});
}
- function safe(string) {
- return String(string)
- .replace(/&/g, "&")
- .replace(//g, ">")
- .replace(/"/g, """);
- }
-
function statusFormat(value) {
const cellClass = status => {
if (status === "pending") return "table-warning";
@@ -165,7 +159,7 @@
$(() => {
table.bootstrapTable({});
- $("#status-popover").popover();
+ statusBadge.popover();
reload();
});
\ No newline at end of file
diff --git a/package/share/ahriman/templates/utils/bootstrap-scripts.jinja2 b/package/share/ahriman/templates/utils/bootstrap-scripts.jinja2
index 46416582..5bf02282 100644
--- a/package/share/ahriman/templates/utils/bootstrap-scripts.jinja2
+++ b/package/share/ahriman/templates/utils/bootstrap-scripts.jinja2
@@ -30,4 +30,12 @@
button.html("
copy");
}, 2000);
}
+
+ function safe(string) {
+ return String(string)
+ .replace(/&/g, "&")
+ .replace(//g, ">")
+ .replace(/"/g, """);
+ }
diff --git a/package/share/ahriman/templates/utils/style.jinja2 b/package/share/ahriman/templates/utils/style.jinja2
index c7ec3970..46dce85d 100644
--- a/package/share/ahriman/templates/utils/style.jinja2
+++ b/package/share/ahriman/templates/utils/style.jinja2
@@ -18,7 +18,7 @@
position: relative;
}
- pre[class*="language-"] button{
+ pre[class*="language-"] button {
position: absolute;
top: 0;
right: 5px;
diff --git a/setup.py b/setup.py
index 60dcad00..467de65a 100644
--- a/setup.py
+++ b/setup.py
@@ -72,13 +72,12 @@ setup(
"package/share/ahriman/templates/telegram-index.jinja2",
]),
("share/ahriman/templates/build-status", [
- "package/share/ahriman/templates/build-status/failed-modal.jinja2",
+ "package/share/ahriman/templates/build-status/alerts.jinja2",
"package/share/ahriman/templates/build-status/key-import-modal.jinja2",
"package/share/ahriman/templates/build-status/login-modal.jinja2",
"package/share/ahriman/templates/build-status/package-add-modal.jinja2",
"package/share/ahriman/templates/build-status/package-info-modal.jinja2",
"package/share/ahriman/templates/build-status/package-rebuild-modal.jinja2",
- "package/share/ahriman/templates/build-status/success-modal.jinja2",
"package/share/ahriman/templates/build-status/table.jinja2",
]),
("share/ahriman/templates/static", [
diff --git a/tests/ahriman/core/test_util.py b/tests/ahriman/core/test_util.py
index 31c0d42b..dde08f63 100644
--- a/tests/ahriman/core/test_util.py
+++ b/tests/ahriman/core/test_util.py
@@ -339,13 +339,12 @@ def test_walk(resource_path_root: Path) -> None:
resource_path_root / "models" / "package_gcc10_srcinfo",
resource_path_root / "models" / "package_tpacpi-bat-git_srcinfo",
resource_path_root / "models" / "package_yay_srcinfo",
- resource_path_root / "web" / "templates" / "build-status" / "failed-modal.jinja2",
+ resource_path_root / "web" / "templates" / "build-status" / "alerts.jinja2",
resource_path_root / "web" / "templates" / "build-status" / "key-import-modal.jinja2",
resource_path_root / "web" / "templates" / "build-status" / "login-modal.jinja2",
resource_path_root / "web" / "templates" / "build-status" / "package-add-modal.jinja2",
resource_path_root / "web" / "templates" / "build-status" / "package-info-modal.jinja2",
resource_path_root / "web" / "templates" / "build-status" / "package-rebuild-modal.jinja2",
- resource_path_root / "web" / "templates" / "build-status" / "success-modal.jinja2",
resource_path_root / "web" / "templates" / "build-status" / "table.jinja2",
resource_path_root / "web" / "templates" / "static" / "favicon.ico",
resource_path_root / "web" / "templates" / "utils" / "bootstrap-scripts.jinja2",