import NavActions from '../actions/NavActions'; import * as DataEvent from '../events/DataEvent'; import Notifications from '../ui/Notifications'; const notify = new Notifications(); export default class NavIndex { //-------------------------- // constructor //-------------------------- constructor() { this.start(); //this.dataUtils = new DataUtils(); } //-------------------------- // methods //-------------------------- start() { Sortable.create(document.getElementById('nav-pages'), { onUpdate: () => { new NavActions() .save() .then(response => { let r = JSON.parse(response.request['response']); if (r.type == DataEvent.MENU_UPDATED) { notify.alert(r.message, true); } else { notify.alert(r.message, true); } }) .catch(() => { //console.log(err); }); } }); var nav = document.querySelectorAll('.nav-btn'); for (var i = 0, length = nav.length; i < length; i++) { nav[i].addEventListener('click', e => this.handleNavButton(e), false); } } //-------------------------- // event handlers //-------------------------- handleNavButton(e) { let id = ''; switch (e.target.id) { case 'remove-item': id = e.target.getAttribute('data-id'); new NavActions().removeItem(id); break; case 'edit-item': window.location = '/@/dashboard/pages/edit/' + e.target.getAttribute('data-id'); break; } } }