mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-28 09:17:17 +00:00
* add ability to specify one-time patch on package addition * support vars in interface
94 lines
4.1 KiB
Django/Jinja
94 lines
4.1 KiB
Django/Jinja
<div id="key-import-modal" tabindex="-1" role="dialog" class="modal fade">
|
|
<div class="modal-dialog modal-xl" role="document">
|
|
<div class="modal-content">
|
|
<form id="key-import-form" onsubmit="return false">
|
|
<div class="modal-header">
|
|
<h4 class="modal-title">Import key from PGP server</h4>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="form-group row">
|
|
<label for="key-import-fingerprint-input" class="col-2 col-form-label">fingerprint</label>
|
|
<div class="col-10">
|
|
<input id="key-import-fingerprint-input" type="text" class="form-control" placeholder="PGP key fingerprint" name="key" required>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label for="key-import-server-input" class="col-2 col-form-label">key server</label>
|
|
<div class="col-10">
|
|
<input id="key-import-server-input" type="text" class="form-control" placeholder="PGP key server" name="server" value="keyserver.ubuntu.com" required>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<div class="col-2"></div>
|
|
<div class="col-10">
|
|
<pre class="language-less"><samp id="key-import-body-input" class="pre-scrollable language-less"></samp><button id="key-import-copy-button" type="button" class="btn language-less" onclick="copyPgpKey()"><i class="bi bi-clipboard"></i> copy</button></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="submit" class="btn btn-primary" onclick="importPgpKey()"><i class="bi bi-play"></i> import</button>
|
|
<button type="submit" class="btn btn-success" onclick="fetchPgpKey()"><i class="bi bi-arrow-clockwise"></i> fetch</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
const keyImportModal = $("#key-import-modal");
|
|
const keyImportForm = $("#key-import-form");
|
|
keyImportModal.on("hidden.bs.modal", () => {
|
|
keyImportBodyInput.text("");
|
|
keyImportForm.trigger("reset");
|
|
});
|
|
|
|
const keyImportBodyInput = $("#key-import-body-input");
|
|
const keyImportCopyButton = $("#key-import-copy-button");
|
|
|
|
const keyImportFingerprintInput = $("#key-import-fingerprint-input");
|
|
const keyImportServerInput = $("#key-import-server-input");
|
|
|
|
async function copyPgpKey() {
|
|
const logs = keyImportBodyInput.text();
|
|
await copyToClipboard(logs, keyImportCopyButton);
|
|
}
|
|
|
|
function fetchPgpKey() {
|
|
const key = keyImportFingerprintInput.val();
|
|
const server = keyImportServerInput.val();
|
|
|
|
if (key && server) {
|
|
$.ajax({
|
|
url: "/api/v1/service/pgp",
|
|
data: {"key": key, "server": server},
|
|
type: "GET",
|
|
dataType: "json",
|
|
success: response => { keyImportBodyInput.text(response.key); },
|
|
});
|
|
}
|
|
}
|
|
|
|
function importPgpKey() {
|
|
const key = keyImportFingerprintInput.val();
|
|
const server = keyImportServerInput.val();
|
|
|
|
if (key && server) {
|
|
$.ajax({
|
|
url: "/api/v1/service/pgp",
|
|
data: JSON.stringify({key: key, server: server}),
|
|
type: "POST",
|
|
contentType: "application/json",
|
|
success: _ => {
|
|
keyImportModal.modal("hide");
|
|
showSuccess("Success", `Key ${key} has been imported`);
|
|
},
|
|
error: (jqXHR, _, errorThrown) => {
|
|
const message = _ => `Could not import key ${key} from ${server}`;
|
|
showFailure("Action failed", message, jqXHR, errorThrown);
|
|
},
|
|
});
|
|
}
|
|
}
|
|
</script>
|