define(function (require) {
|
|
|
|
var controller = {};
|
|
|
|
// Take a model and view and act as the controller between them.
|
|
controller.Controller = function (model, view) {
|
|
this.model = model;
|
|
this.view = view;
|
|
|
|
this.ENTER_KEY = 13;
|
|
this.ESCAPE_KEY = 27;
|
|
};
|
|
|
|
controller.Controller.prototype.loadItems = function (items) {
|
|
this.model.load(items);
|
|
var list = document.getElementById("todo-list");
|
|
list.innerHTML = this.view.show(items);
|
|
};
|
|
|
|
controller.Controller.prototype.addItem = function (title) {
|
|
if (title.trim() === '') {
|
|
return false;
|
|
}
|
|
var item = this.model.create(title);
|
|
var list = document.getElementById("todo-list");
|
|
list.innerHTML += this.view.show([item]);
|
|
return true;
|
|
};
|
|
|
|
controller.Controller.prototype.removeItem = function (id) {
|
|
this.model.remove(id);
|
|
this.loadItems(this.model.items);
|
|
};
|
|
|
|
controller.Controller.prototype.toggleComplete = function (id, checkbox) {
|
|
var completed = checkbox.checked ? 1 : 0;
|
|
this.model.update(id, {completed: completed});
|
|
this.loadItems(this.model.items);
|
|
};
|
|
|
|
return controller;
|
|
|
|
});
|