mirror of
				https://github.com/arcan1s/ahriman.git
				synced 2025-10-31 13:53:41 +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