gosora/templates/panel_themes_menus_items.html
Azareal 06d6715c47 Many HTML / CSS / Template changes.
Added the grid_stat_head CSS class to Panel Debug.
Added the panel_plugin_meta CSS class to the Plugin Manager.
Added some missing panel_right_button classes to the buttons for the rows in the Plugin Manager.
Added some missing the_form CSS classes for Nox.
Added a missing phrase for an update button in panel_themes_menus_items.
Replaced a legacy float: right; in the User Manager with to_right.
Removed some superfluous legacy inline CSS in the User Manager.
Tweaked the amount of padding for the title in the Account Manager for Nox.
Tweaked the amount of padding for the title in the Control Panel for Nox.
Tweaked the padding for panel_right_button for Nox.
Fixed the UI for the Plugin Manager in Nox.
Tweaked the padding for the grid heads in Panel Debug for Nox.

Began work on a nicer looking User Manager in Nox.
2018-08-10 17:58:25 +10:00

140 lines
5.9 KiB
HTML

{{template "header.html" . }}
<div class="colstack panel_stack">
{{template "panel_menu.html" . }}
<main class="colstack_right">
<div class="colstack_item colstack_head">
<div class="rowitem"><h1>{{lang "panel_themes_menus_head"}}</h1></div>
</div>
<div id="panel_menu_item_holder" class="colstack_item rowlist">
{{range .ItemList}}
<div class="panel_menu_item rowitem panel_compactrow editable_parent" data-miid="{{.ID}}">
<a href="/panel/themes/menus/item/edit/{{.ID}}" class="editable_block panel_upshift">{{.Name}}</a>
<span class="panel_buttons">
<a href="/panel/themes/menus/item/edit/{{.ID}}" class="panel_tag panel_right_button edit_button" aria-label="{{lang "panel_themes_menus_item_edit_button_aria"}}"></a>
<a href="/panel/themes/menus/item/delete/submit/{{.ID}}?session={{$.CurrentUser.Session}}" class="panel_tag panel_right_button delete_button" aria-label="{{lang "panel_themes_menus_item_delete_button_aria"}}"></a>
</span>
</div>{{end}}
</div>
<div class="colstack_item rowlist panel_submitrow">
<div class="rowitem"><button id="panel_menu_items_order_button" class="formbutton">{{lang "panel_themes_menus_edit_update_button"}}</button></div>
</div>
<div class="colstack_item colstack_head">
<div class="rowitem"><h1>{{lang "panel_themes_menus_create_head"}}</h1></div>
</div>
<form action="/panel/themes/menus/item/create/submit/?session={{.CurrentUser.Session}}" method="post">
<input name="mid" value="{{.MenuID}}" type="hidden" />
<div id="panel_themes_menu_item_create" class="colstack_item the_form">
{{/** TODO: Let an admin move a menu item from one menu to another? **/}}
<div class="formrow">
<div class="formitem formlabel"><a>{{lang "panel_themes_menus_name"}}</a></div>
<div class="formitem"><input name="item-name" type="text" placeholder="{{lang "panel_themes_menus_name_placeholder"}}" /></div>
</div>
<div class="formrow">
<div class="formitem formlabel"><a>{{lang "panel_themes_menus_htmlid"}}</a></div>
<div class="formitem"><input name="item-htmlid" type="text" /></div>
</div>
<div class="formrow">
<div class="formitem formlabel"><a>{{lang "panel_themes_menus_cssclass"}}</a></div>
<div class="formitem"><input name="item-cssclass" type="text" /></div>
</div>
<div class="formrow">
<div class="formitem formlabel"><a>{{lang "panel_themes_menus_position"}}</a></div>
<div class="formitem">
<select name="item-position">
<option selected value="left">left</option>
<option value="right">right</option>
</select>
</div>
</div>
<div class="formrow">
<div class="formitem formlabel"><a>{{lang "panel_themes_menus_path"}}</a></div>
<div class="formitem"><input name="item-path" type="text" value="/" /></div>
</div>
<div class="formrow">
<div class="formitem formlabel"><a>{{lang "panel_themes_menus_aria"}}</a></div>
<div class="formitem"><input name="item-aria" type="text" placeholder="{{lang "panel_themes_menus_aria_placeholder"}}" /></div>
</div>
<div class="formrow">
<div class="formitem formlabel"><a>{{lang "panel_themes_menus_tooltip"}}</a></div>
<div class="formitem"><input name="item-tooltip" type="text" placeholder="{{lang "panel_themes_menus_tooltip_placeholder"}}" /></div>
</div>
<div class="formrow">
<div class="formitem formlabel"><a>{{lang "panel_themes_menus_permissions"}}</a></div>
<div class="formitem"><select name="item-permissions">
<option selected value="everyone">{{lang "panel_themes_menus_everyone" }}</option>
<option value="guest-only">{{lang "panel_themes_menus_guestonly"}}</option>
<option value="member-only">{{lang "panel_themes_menus_memberonly"}}</option>
<option value="supermod-only">{{lang "panel_themes_menus_supermodonly"}}</option>
<option value="admin-only">{{lang "panel_themes_menus_adminonly"}}</option>
</select></div>
</div>
<div class="formrow">
<div class="formitem"><button name="panel-button" class="formbutton">{{lang "panel_themes_menus_create_button"}}</button></div>
</div>
</div>
</form>
</main>
</div>
<script type="text/javascript">
var menuItems = {};
let items = document.getElementsByClassName("panel_menu_item");
//console.log("items: ", items);
for(let i = 0; item = items[i];i++) {
let miid = item.getAttribute("data-miid");
//console.log("miid: ", miid);
menuItems[i] = miid;
}
Sortable.create(document.getElementById("panel_menu_item_holder"), {
sort: true,
onEnd: (evt) => {
console.log("pre menuItems: ", menuItems)
console.log("evt: ", evt)
let oldMiid = menuItems[evt.newIndex];
menuItems[evt.oldIndex] = oldMiid;
let newMiid = evt.item.getAttribute("data-miid");
console.log("newMiid: ", newMiid)
menuItems[evt.newIndex] = newMiid;
console.log("post menuItems: ", menuItems)
}
});
document.getElementById("panel_menu_items_order_button").addEventListener("click", () => {
let req = new XMLHttpRequest();
if(!req) {
console.log("Failed to create request");
return false;
}
req.onreadystatechange = () => {
try {
if(req.readyState!==XMLHttpRequest.DONE) {
return;
}
// TODO: Signal the error with a notice
if(req.status===200) {
let resp = JSON.parse(req.responseText);
console.log("resp: ", resp);
if(resp.success==1) {
// TODO: Have a successfully updated notice
console.log("success");
return;
}
}
} catch(ex) {
console.error("exception: ", ex)
}
console.trace();
}
// ? - Is encodeURIComponent the right function for this?
req.open("POST","/panel/themes/menus/item/order/edit/submit/{{.MenuID}}?session=" + encodeURIComponent(session));
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
let items = "";
for(let i = 0; item = menuItems[i];i++) {
items += item+",";
}
if(items.length > 0) {
items = items.slice(0,-1);
}
req.send("js=1&amp;items={"+items+"}");
});
</script>
{{template "footer.html" . }}