$(document).ready(function () {
var updateOutput = function (show_alert = true) {
$('#nestable-output').val(JSON.stringify($('#nestable').nestable('serialize')));
if(show_alert){
$("#alert-menu-unsaved-changes").show();
}
};
$('#nestable').nestable().on('change', updateOutput);
updateOutput(false);
function insert_menu_item(label, url){
if ((!url) || (!label)) return;
let id = Date.now();
let item =
'
' +
' Drag
' +
'' +
'' +
'
' +
'Navigation Label ' +
'
' +
'
' +
'Navigation Url ' +
'
' +
'
Remove | ' +
'Close
' +
'
' +
' ';
$("#nestable > .dd-list").append(item);
$("#nestable").find('.dd-empty').remove();
$("#add-item [name='name']").val('');
$("#add-item [name='url']").val('');
updateOutput();
}
$("#add-item").submit(function (e) {
e.preventDefault();
let arr = $( '#add-item' ).serializeArray();
insert_menu_item(arr[0].value, arr[1].value);
});
$("#form-category-menu").submit((e)=>{
e.preventDefault();
let elem = $("#form-category-menu");
let arr = elem.serializeArray();
arr.forEach((item)=>{
let child = elem.find('#item-'+item.value);
item.url = child.data('url');
child.prop('checked', false);
insert_menu_item(item.name, item.url);
});
});
$("#form-page-menu").submit((e)=>{
e.preventDefault();
let elem = $("#form-page-menu");
let arr = elem.serializeArray();
arr.forEach((item)=>{
let child = elem.find('#item-'+item.value);
item.url = child.data('url');
child.prop('checked', false);
insert_menu_item(item.name, item.url);
});
});
$(document).on("click", ".item-delete", function (e) {
$(this).parent().parent().parent().remove();
updateOutput();
});
$(document).on("click", ".item-edit", function (e) {
var item_setting = $(this).parent().next();
if (item_setting.hasClass("d-none")) {
item_setting.removeClass("d-none");
} else {
item_setting.addClass("d-none");
}
});
$(document).on("click", ".item-close", function (e) {
var item_setting = $(this).parent().parent();
item_setting.addClass("d-none");
});
$(document).on("change paste keyup", "input[name='navigation_label']", function (e) {
console.log($(this).parent().parent().parent().data("label"));
$(this).parent().parent().parent().data("label", $(this).val());
$(this).parent().parent().prev().find("span").text($(this).val());
});
$(document).on("change paste keyup", "input[name='navigation_url']", function (e) {
$(this).parent().parent().parent().data("url", $(this).val());
});
});