preset manager loads preset as separate page

This commit is contained in:
Thomas Weinhold 2026-01-04 17:19:11 +01:00
commit ca95fc508b
3 changed files with 15 additions and 55 deletions

View file

@ -92,16 +92,22 @@ div#PresetManagementItems {
margin-bottom: 1em;
}
div.PresetManagerItemItem {
div.PresetManagerItem {
border-left: thin solid var(--preset-mgr-item-border);
margin-top: 0.2em;
display: flex;
align-items: center;
}
div.PresetManagerItemItem > * {
display: inline-block;
div.PresetManagerItem > a {
flex: 1;
}
div.PresetManagerItemItem > button {
div.PresetManagerItem > div {
white-space: nowrap;
}
div.PresetManagerItem > button {
padding: 0.3em 0.5em;
border: none;
outline: none;
@ -109,16 +115,16 @@ div.PresetManagerItemItem > button {
background-color: transparent;
}
div.PresetManagerItemItem:hover {
div.PresetManagerItem:hover {
background-color: var(--preset-mgr-bg-hover-color);
}
div.PresetManagerItemItem > div {
div.PresetManagerItem > div {
visibility: hidden;
float: right;
}
div.PresetManagerItemItem:hover > div {
div.PresetManagerItem:hover > div {
visibility: visible;
}

View file

@ -135,52 +135,6 @@ function elevatePresetSaveCallback(return_code, json_data, callback_data) {
}
}
function loadPreset(preset_id) {
busy_spinner(true);
// cleanup storage
document.getElementById("PresetCurrentLoadedId").value = 0;
document.getElementById("PresetCurrentLoadedName").value = "";
// cleanup viewer
document.getElementById("PresetViewer").style.visibility = "hidden";
document.getElementById("PresetViewerBody").style.visibility = "";
document.getElementById("PresetViewerHeaderName").innerHTML = "";
// cleanup editor
const dialogue_element = document.getElementById("PresetEditDialogue");
dialogue_element.getElementsByClassName("HtmlModalDialogTitle")[0].innerHTML = "";
dialogue_element.getElementsByTagName("form")[0].innerHTML = "";
htmlModalHide("PresetEditDialogue");
// API request
api_v0("GET", "presets/" + preset_id, null, loadPresetCallback, {});
}
function loadPresetCallback(return_code, json_data, callback_data) {
if (return_code == 200) {
// setup storage
document.getElementById("PresetCurrentLoadedId").value = json_data.id;
document.getElementById("PresetCurrentLoadedName").value = json_data.name;
// load viewer
document.getElementById("PresetViewer").style.visibility = "visible";
document.getElementById("PresetViewerBody").innerHTML = json_data.html_view;
document.getElementById("PresetViewerHeaderName").innerHTML = json_data.name;
// load editor
const dialogue_element = document.getElementById("PresetEditDialogue");
dialogue_element.getElementsByClassName("HtmlModalDialogTitle")[0].innerHTML = "Edit Preset: " + json_data.name;
dialogue_element.getElementsByTagName("form")[0].innerHTML = json_data.html_edit;
// ndpcUpdate();
} else {
append_message_error("Loading Preset Failed", json_data.error_message);
}
busy_spinner(false);
}
function editPreset(preset_id) {
if (preset_id === undefined) {

View file

@ -156,8 +156,8 @@ fn html_preset_management_list<'a>(mut html: &'a mut HtmlTemplate, preset_item:
phosphor_svgs::icon::arrow_square_up::DUOTONE,
phosphor_svgs::icon::plus_square::DUOTONE,
);
html.push_body(&format!("<div class=\"PresetManagerItemItem\">\
<button type=\"button\" onClick=\"loadPreset({2})\">{0}</button>\
html.push_body(&format!("<div class=\"PresetManagerItem\">\
<a href=\"/html/preset/{2}\">{0}</a>\
<div>{1}</div>\
</div>",
preset_item_label, html_buttons, preset_id