mirror of
https://github.com/zombieFox/nightTab.git
synced 2024-12-01 04:23:27 +01:00
100 lines
2.3 KiB
JavaScript
100 lines
2.3 KiB
JavaScript
var control = (function() {
|
|
|
|
var state = {
|
|
edit: false,
|
|
style: "block"
|
|
};
|
|
|
|
var get = function() {
|
|
return state;
|
|
};
|
|
|
|
var bind = function() {
|
|
var controlAdd = helper.e(".control-add");
|
|
var controlEdit = helper.e(".control-edit");
|
|
var controlLinkBlock = helper.e(".control-link-blocks");
|
|
var controlLinkList = helper.e(".control-link-list");
|
|
controlAdd.addEventListener("click", function() {
|
|
_add();
|
|
}, false);
|
|
controlEdit.addEventListener("click", function() {
|
|
_edit();
|
|
}, false);
|
|
controlLinkBlock.addEventListener("click", function() {
|
|
_toggleListStyle("block");
|
|
data.save();
|
|
}, false);
|
|
controlLinkList.addEventListener("click", function() {
|
|
_toggleListStyle("list");
|
|
data.save();
|
|
}, false);
|
|
};
|
|
|
|
var _add = function() {
|
|
links.add();
|
|
};
|
|
|
|
var _edit = function() {
|
|
var body = helper.e("body");
|
|
var controlEdit = helper.e(".control-edit");
|
|
if (state.edit) {
|
|
helper.removeClass(body, "is-edit");
|
|
helper.removeClass(controlEdit, "active");
|
|
state.edit = false;
|
|
links.tabindex();
|
|
} else {
|
|
helper.addClass(body, "is-edit");
|
|
helper.addClass(controlEdit, "active");
|
|
state.edit = true;
|
|
links.tabindex();
|
|
};
|
|
};
|
|
|
|
var _toggleListStyle = function(style) {
|
|
state.style = style;
|
|
render();
|
|
};
|
|
|
|
var render = function() {
|
|
var html = helper.e("html");
|
|
var controlLinkBlock = helper.e(".control-link-blocks");
|
|
var controlLinkList = helper.e(".control-link-list");
|
|
var action = {
|
|
block: function() {
|
|
helper.addClass(html, "is-link-block");
|
|
helper.removeClass(html, "is-link-list");
|
|
helper.addClass(controlLinkBlock, "active");
|
|
helper.removeClass(controlLinkList, "active");
|
|
},
|
|
list: function() {
|
|
helper.removeClass(html, "is-link-block");
|
|
helper.addClass(html, "is-link-list");
|
|
helper.removeClass(controlLinkBlock, "active");
|
|
helper.addClass(controlLinkList, "active");
|
|
}
|
|
};
|
|
action[state.style]();
|
|
};
|
|
|
|
var restore = function(object) {
|
|
if (object) {
|
|
state = object;
|
|
render();
|
|
};
|
|
};
|
|
|
|
var init = function() {
|
|
bind();
|
|
render();
|
|
};
|
|
|
|
// exposed methods
|
|
return {
|
|
init: init,
|
|
get: get,
|
|
restore: restore,
|
|
render: render
|
|
};
|
|
|
|
})();
|