Skip to content

Commit

Permalink
minor refactoring and typo fix
Browse files Browse the repository at this point in the history
  • Loading branch information
cburgdorf committed Sep 8, 2011
1 parent 53ea644 commit d6a8823
Showing 1 changed file with 73 additions and 73 deletions.
146 changes: 73 additions & 73 deletions app/js/controllers.js
Original file line number Diff line number Diff line change
@@ -1,74 +1,74 @@
/* App Controllers */

App.Controllers.TodoController =function () {
var self = this;

self.newTodo = "";

self.addTodo = function(){
self.todos.push({
content: self.newTodo,
done: false,
editing: false
});
self.newTodo = "";
};

self.editTodo = function(todo){
//cancel any active editing operation
angular.forEach(self.todos, function(value){
value.editing = false;
});
todo.editing = true;
};

self.finishEditing = function(todo){
todo.editing = false;
};

self.removeTodo = function(todo){
angular.Array.remove(self.todos, todo);
}

self.todos = [];

var countTodos = function(done){
return function(){
return angular.Array.count(self.todos, function(x){
return x.done === (done === "done" ? true : false);
});
}
};

self.remainingTodos = countTodos("undone");

self.finishedTodos = countTodos("done");

self.clearCompletedItems = function() {
var oldTodos = self.todos;
self.todos = [];
angular.forEach(oldTodos, function(todo) {
if (!todo.done) self.todos.push(todo);
});
};

self.hasFinishedTodos = function(){
return self.finishedTodos() > 0;
};

self.hasTodos = function(){
return self.todos.length > 0;
};

/*
The following code deals with hiding the hint *while* you are typing,
showing it once you did *finish* typing (aka 500 ms since you hit the last key)
*incase* the result is a non empty string
*/
Rx.Observable.FromAngularScope(self, "newTodo")
.Do(function(){ self.showHitEnterHint = false; })
.Throttle(500)
.Select(function(x){ return x.length > 0; })
.ToOutputProperty(self, "showHitEnterHint");
}
/* App Controllers */

App.Controllers.TodoController =function () {
var self = this;

self.newTodo = "";

self.addTodo = function(){
self.todos.push({
content: self.newTodo,
done: false,
editing: false
});
self.newTodo = "";
};

self.editTodo = function(todo){
//cancel any active editing operation
angular.forEach(self.todos, function(value){
value.editing = false;
});
todo.editing = true;
};

self.finishEditing = function(todo){
todo.editing = false;
};

self.removeTodo = function(todo){
angular.Array.remove(self.todos, todo);
}

self.todos = [];

var countTodos = function(done){
return function(){
return angular.Array.count(self.todos, function(x){
return x.done === (done === "done");
});
}
};

self.remainingTodos = countTodos("undone");

self.finishedTodos = countTodos("done");

self.clearCompletedItems = function() {
var oldTodos = self.todos;
self.todos = [];
angular.forEach(oldTodos, function(todo) {
if (!todo.done) self.todos.push(todo);
});
};

self.hasFinishedTodos = function(){
return self.finishedTodos() > 0;
};

self.hasTodos = function(){
return self.todos.length > 0;
};

/*
The following code deals with hiding the hint *while* you are typing,
showing it once you did *finish* typing (aka 500 ms since you hit the last key)
*incase* the result is a non empty string
*/
Rx.Observable.FromAngularScope(self, "newTodo")
.Do(function(){ self.showHitEnterHint = false; })
.Throttle(500)
.Select(function(x){ return x.length > 0; })
.ToOutputProperty(self, "showHitEnterHint");
}
App.Controllers.TodoController.$inject = [];

0 comments on commit d6a8823

Please sign in to comment.