var buttonsarray = [] function populateMacroButtons() { $("#macros").empty(); for (i = 0; i < buttonsarray.length; i++) { var button = ` ` $("#macros").append(button); } // append add button var button = ` ` $("#macros").append(button); localStorage.setItem('macroButtons', JSON.stringify(buttonsarray)); } function edit(i, evt) { evt.preventDefault(); evt.stopPropagation(); console.log("Editing " + i) if (buttonsarray[i]) { var icon = buttonsarray[i].icon; var title = buttonsarray[i].title; var gcode = buttonsarray[i].gcode; var cls = buttonsarray[i].class; } else { var icon = "far fa-question-circle"; var title = ""; var gcode = ""; var cls = ""; } var macroTemplate = `
` Metro.dialog.create({ title: "Edit Macro", content: macroTemplate, actions: [{ caption: "Cancel", cls: "js-dialog-close", onclick: function() { // } }, { caption: "Delete Macro", cls: "js-dialog-close alert", onclick: function() { buttonsarray.splice(i, 1); populateMacroButtons(); } }, { caption: "Apply", cls: "js-dialog-close success", onclick: function() { var seq = $('#macroseq').val(); if (buttonsarray[seq]) { buttonsarray[seq].icon = $('#macroicon').val(); buttonsarray[seq].title = $('#macrotitle').val(); buttonsarray[seq].gcode = $('#macrogcode').val(); buttonsarray[seq].class = $('#macrocls').val(); populateMacroButtons(); } else { buttonsarray.push({ title: $('#macrotitle').val(), icon: $('#macroicon').val(), gcode: $('#macrogcode').val(), class: $('#macrocls').val() }) populateMacroButtons(); } } } ] }); var options = { placement: 'bottom', collision: 'none', animation: true, hideOnSelect: true, }; // fa iconpicker https://github.com/farbelous/fontawesome-iconpicker $('#macroicon').iconpicker(options); $("#macrocls").val(cls).trigger("change"); $('#macrogcode').val(gcode); } function run(i, evt) { evt.preventDefault(); evt.stopPropagation(); console.log("Run " + i) } // run it to begin if (localStorage.getItem('macroButtons')) { buttonsarray = JSON.parse(localStorage.getItem('macroButtons')); } populateMacroButtons()