mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-07-16 15:29:56 +00:00
feat: add ability to refresh databases through web interface
This commit is contained in:
@ -55,6 +55,11 @@
|
||||
<i class="bi bi-play"></i> update
|
||||
</button>
|
||||
</li>
|
||||
<li>
|
||||
<button id="update-repositories-button" class="btn dropdown-item" onclick="refreshDatabases()">
|
||||
<i class="bi bi-arrow-down-circle"></i> update pacman databases
|
||||
</button>
|
||||
</li>
|
||||
<li>
|
||||
<button id="package-rebuild-button" class="btn dropdown-item" data-bs-toggle="modal" data-bs-target="#package-rebuild-modal">
|
||||
<i class="bi bi-arrow-clockwise"></i> rebuild
|
||||
|
@ -24,6 +24,13 @@
|
||||
<datalist id="package-add-known-packages-dlist"></datalist>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-3 col-form-label"></label>
|
||||
<div class="col-9">
|
||||
<input id="package-add-refresh-input" type="checkbox" class="form-check-input" value="" checked>
|
||||
<label for="package-add-refresh-input" class="form-check-label">update pacman databases</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-12">
|
||||
<button id="package-add-variable-button" type="button" class="form-control btn btn-light rounded" onclick="packageAddVariableInputCreate()"><i class="bi bi-plus"></i> add environment variable </button>
|
||||
@ -50,6 +57,8 @@
|
||||
|
||||
const packageAddVariablesDiv = document.getElementById("package-add-variables-div");
|
||||
|
||||
const packageAddRefreshInput = document.getElementById("package-add-refresh-input");
|
||||
|
||||
function packageAddVariableInputCreate() {
|
||||
const variableInput = document.createElement("div");
|
||||
variableInput.classList.add("input-group");
|
||||
@ -99,16 +108,18 @@
|
||||
return {patches: patches};
|
||||
}
|
||||
|
||||
function packagesAdd(packages, patches, repository) {
|
||||
function packagesAdd(packages, patches, repository, data) {
|
||||
packages = packages ?? packageAddInput.value;
|
||||
patches = patches ?? patchesParse();
|
||||
repository = repository ?? getRepositorySelector(packageAddRepositoryInput);
|
||||
data = data ?? {refresh: packageAddRefreshInput.checked};
|
||||
|
||||
if (packages) {
|
||||
bootstrap.Modal.getOrCreateInstance(packageAddModal).hide();
|
||||
const onSuccess = update => `Packages ${update} have been added`;
|
||||
const onFailure = error => `Package addition failed: ${error}`;
|
||||
doPackageAction("/api/v1/service/add", [packages], repository, onSuccess, onFailure, patches);
|
||||
const parameters = Object.assign({}, data, patches);
|
||||
doPackageAction("/api/v1/service/add", [packages], repository, onSuccess, onFailure, parameters);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,6 +95,9 @@
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
{% if not auth.enabled or auth.username is not none %}
|
||||
<input id="package-info-refresh-input" type="checkbox" class="form-check-input" value="" checked>
|
||||
<label for="package-info-refresh-input" class="form-check-label">update pacman databases</label>
|
||||
|
||||
<button id="package-info-update-button" type="submit" class="btn btn-success" onclick="packageInfoUpdate()" data-bs-dismiss="modal"><i class="bi bi-play"></i><span class="d-none d-sm-inline"> update</span></button>
|
||||
<button id="package-info-remove-button" type="submit" class="btn btn-danger" onclick="packageInfoRemove()" data-bs-dismiss="modal"><i class="bi bi-trash"></i><span class="d-none d-sm-inline"> remove</span></button>
|
||||
{% endif %}
|
||||
@ -135,6 +138,8 @@
|
||||
const packageInfoVariablesBlock = document.getElementById("package-info-variables-block");
|
||||
const packageInfoVariablesDiv = document.getElementById("package-info-variables-div");
|
||||
|
||||
const packageInfoRefreshInput = document.getElementById("package-info-refresh-input");
|
||||
|
||||
function clearChart() {
|
||||
packageInfoEventsUpdateChartCanvas.hidden = true;
|
||||
if (packageInfoEventsUpdateChart) {
|
||||
@ -404,7 +409,7 @@
|
||||
|
||||
function packageInfoUpdate() {
|
||||
const packageBase = packageInfoModal.package;
|
||||
packagesAdd(packageBase, [], repository);
|
||||
packagesAdd(packageBase, [], repository, {refresh: packageInfoRefreshInput.checked});
|
||||
}
|
||||
|
||||
function showPackageInfo(packageBase) {
|
||||
|
@ -73,6 +73,19 @@
|
||||
doPackageAction(url, currentSelection, repository, onSuccess, onFailure);
|
||||
}
|
||||
|
||||
function refreshDatabases() {
|
||||
const onSuccess = _ => "Pacman database update has been requested";
|
||||
const onFailure = error => `Could not update pacman databases: ${error}`;
|
||||
const parameters = {
|
||||
refresh: true,
|
||||
aur: false,
|
||||
local: false,
|
||||
manual: false,
|
||||
};
|
||||
|
||||
doPackageAction("/api/v1/service/update", [], repository, onSuccess, onFailure, parameters);
|
||||
}
|
||||
|
||||
function reload() {
|
||||
table.bootstrapTable("showLoading");
|
||||
|
||||
|
Reference in New Issue
Block a user