// retoor <retoor@molodetz.nl>
import { Http } from "./Http.js";
import { wireSearch, wireBootToggle } from "./ContainerFormControls.js";
export class ContainerEdit {
constructor(form) {
this.form = form;
this.uid = form ? form.dataset.uid : "";
}
init() {
if (!this.form) return;
wireSearch(this.form, "user", "/admin/containers/users/search", "run_as_uid", (r) => r.uid, (r) => r.username);
wireBootToggle(this.form);
this.form.addEventListener("submit", (e) => { e.preventDefault(); this.save(); });
}
toast(message, type) {
if (window.app && window.app.toast) window.app.toast.show(message, { type: type || "info" });
}
async save() {
const f = this.form;
const params = {
run_as_uid: f.elements.run_as_uid.value.trim(),
boot_language: f.elements.boot_language.value,
boot_script: f.elements.boot_script.value,
boot_command: f.elements.boot_command.value.trim(),
restart_policy: f.elements.restart_policy.value,
cpu_limit: f.elements.cpu_limit.value.trim(),
mem_limit: f.elements.mem_limit.value.trim(),
start_on_boot: f.elements.start_on_boot.checked ? "true" : "false",
};
try {
await Http.send(`/admin/containers/${this.uid}/edit`, params);
this.toast("Saved", "success");
window.location.assign(`/admin/containers/${this.uid}`);
} catch (err) {
return;
}
}
}