mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-24 07:17:17 +00:00
bump web libraries
also encode strings for the views
This commit is contained in:
parent
047925dcfe
commit
eb5ac5a52b
@ -50,12 +50,12 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
function addPackages() {
|
function addPackages() {
|
||||||
const packages = [packageInput.val()]
|
const packages = [packageInput.val()];
|
||||||
doPackageAction("/api/v1/service/add", packages);
|
doPackageAction("/api/v1/service/add", packages);
|
||||||
}
|
}
|
||||||
|
|
||||||
function requestPackages() {
|
function requestPackages() {
|
||||||
const packages = [packageInput.val()]
|
const packages = [packageInput.val()];
|
||||||
doPackageAction("/api/v1/service/request", packages);
|
doPackageAction("/api/v1/service/request", packages);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
showSuccess(details);
|
showSuccess(details);
|
||||||
},
|
},
|
||||||
error: (jqXHR, _, errorThrown) => { showFailure(errorThrown); },
|
error: (jqXHR, _, errorThrown) => { showFailure(errorThrown); },
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSelection() {
|
function getSelection() {
|
||||||
@ -58,25 +58,30 @@
|
|||||||
dataType: "json",
|
dataType: "json",
|
||||||
success: response => {
|
success: response => {
|
||||||
const extractListProperties = (description, property) => {
|
const extractListProperties = (description, property) => {
|
||||||
return Object.values(description.packages).map(pkg => {
|
return Object.values(description.packages)
|
||||||
return pkg[property];
|
.map(pkg => { return pkg[property]; })
|
||||||
}).reduce((left, right) => { return left.concat(right); }, []);
|
.reduce((left, right) => { return left.concat(right); }, []);
|
||||||
|
};
|
||||||
|
const listToTable = data => {
|
||||||
|
return Array.from(new Set(data))
|
||||||
|
.sort()
|
||||||
|
.map(entry => { return safe(entry); })
|
||||||
|
.join("<br>");
|
||||||
};
|
};
|
||||||
const listToTable = data => { return Array.from(new Set(data)).sort().join("<br>"); };
|
|
||||||
|
|
||||||
const payload = response.map(description => {
|
const payload = response.map(description => {
|
||||||
const package_base = description.package.base;
|
const package_base = description.package.base;
|
||||||
const web_url = description.package.remote?.web_url;
|
const web_url = description.package.remote?.web_url;
|
||||||
return {
|
return {
|
||||||
id: description.package.base,
|
id: package_base,
|
||||||
base: web_url ? `<a href="${web_url}" title="${package_base}">${package_base}</a>` : package_base,
|
base: web_url ? `<a href="${safe(web_url)}" title="${safe(package_base)}">${safe(package_base)}</a>` : safe(package_base),
|
||||||
version: description.package.version,
|
version: safe(description.package.version),
|
||||||
packages: listToTable(Object.keys(description.package.packages)),
|
packages: listToTable(Object.keys(description.package.packages)),
|
||||||
groups: listToTable(extractListProperties(description.package, "groups")),
|
groups: listToTable(extractListProperties(description.package, "groups")),
|
||||||
licenses: listToTable(extractListProperties(description.package, "licenses")),
|
licenses: listToTable(extractListProperties(description.package, "licenses")),
|
||||||
timestamp: new Date(1000 * description.status.timestamp).toISOString(),
|
timestamp: new Date(1000 * description.status.timestamp).toISOString(),
|
||||||
status: description.status.status
|
status: description.status.status,
|
||||||
}
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
table.bootstrapTable("load", payload);
|
table.bootstrapTable("load", payload);
|
||||||
@ -85,17 +90,17 @@
|
|||||||
hideControls(false);
|
hideControls(false);
|
||||||
},
|
},
|
||||||
error: (jqXHR, _, errorThrown) => {
|
error: (jqXHR, _, errorThrown) => {
|
||||||
hideControls(true);
|
|
||||||
if ((jqXHR.status === 401) || (jqXHR.status === 403)) {
|
if ((jqXHR.status === 401) || (jqXHR.status === 403)) {
|
||||||
// authorization error
|
// authorization error
|
||||||
const text = "In order to see statuses you must login first.";
|
const text = "In order to see statuses you must login first.";
|
||||||
table.find("tr.unauthorized").remove();
|
table.find("tr.unauthorized").remove();
|
||||||
table.find("tbody").append(`<tr class="unauthorized"><td colspan="100%">${text}</td></tr>`);
|
table.find("tbody").append(`<tr class="unauthorized"><td colspan="100%">${safe(text)}</td></tr>`);
|
||||||
table.bootstrapTable("hideLoading");
|
table.bootstrapTable("hideLoading");
|
||||||
} else {
|
} else {
|
||||||
// other errors
|
// other errors
|
||||||
showFailure(errorThrown);
|
showFailure(errorThrown);
|
||||||
}
|
}
|
||||||
|
hideControls(true);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -129,6 +134,14 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function safe(string) {
|
||||||
|
return String(string)
|
||||||
|
.replace(/&/g, "&")
|
||||||
|
.replace(/</g, "<")
|
||||||
|
.replace(/>/g, ">")
|
||||||
|
.replace(/"/g, """);
|
||||||
|
}
|
||||||
|
|
||||||
function statusFormat(value) {
|
function statusFormat(value) {
|
||||||
const cellClass = status => {
|
const cellClass = status => {
|
||||||
if (status === "pending") return "table-warning";
|
if (status === "pending") return "table-warning";
|
||||||
@ -143,5 +156,5 @@
|
|||||||
$(() => {
|
$(() => {
|
||||||
table.bootstrapTable({});
|
table.bootstrapTable({});
|
||||||
reload();
|
reload();
|
||||||
})
|
});
|
||||||
</script>
|
</script>
|
@ -5,19 +5,8 @@
|
|||||||
<script src="https://unpkg.com/jquery-resizable-columns@0.2.3/dist/jquery.resizableColumns.min.js"></script>
|
<script src="https://unpkg.com/jquery-resizable-columns@0.2.3/dist/jquery.resizableColumns.min.js"></script>
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
|
||||||
<script src="https://unpkg.com/bootstrap-table@1.19.1/dist/bootstrap-table.min.js"></script>
|
<script src="https://unpkg.com/bootstrap-table@1.20.2/dist/bootstrap-table.min.js"></script>
|
||||||
|
|
||||||
<script src="https://unpkg.com/bootstrap-table@1.19.1/dist/extensions/export/bootstrap-table-export.min.js"></script>
|
<script src="https://unpkg.com/bootstrap-table@1.20.2/dist/extensions/export/bootstrap-table-export.min.js"></script>
|
||||||
|
|
||||||
<script src="https://unpkg.com/bootstrap-table@1.19.1/dist/extensions/resizable/bootstrap-table-resizable.js"></script>
|
<script src="https://unpkg.com/bootstrap-table@1.20.2/dist/extensions/resizable/bootstrap-table-resizable.js"></script>
|
||||||
|
|
||||||
<script>
|
|
||||||
$("#packages").bootstrapTable({
|
|
||||||
formatClearSearch: function () {
|
|
||||||
return "Clear search";
|
|
||||||
},
|
|
||||||
formatSearch: function () {
|
|
||||||
return "search";
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous" type="text/css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous" type="text/css">
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.2/font/bootstrap-icons.css" type="text/css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.3/font/bootstrap-icons.css" type="text/css">
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://unpkg.com/bootstrap-table@1.19.1/dist/bootstrap-table.min.css" type="text/css">
|
<link rel="stylesheet" href="https://unpkg.com/bootstrap-table@1.20.2/dist/bootstrap-table.min.css" type="text/css">
|
||||||
|
|
||||||
<link href="https://unpkg.com/jquery-resizable-columns@0.2.3/dist/jquery.resizableColumns.css" rel="stylesheet">
|
<link href="https://unpkg.com/jquery-resizable-columns@0.2.3/dist/jquery.resizableColumns.css" rel="stylesheet">
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user