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;
		}
	}
}