forked from tastejs/todomvc
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtodo_list.coffee
More file actions
16 lines (13 loc) · 779 Bytes
/
todo_list.coffee
File metadata and controls
16 lines (13 loc) · 779 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
define ['bacon', 'backbone', 'underscore', 'models/todo', 'localstorage'], (Bacon, Backbone, _, Todo) ->
class TodoList extends Backbone.Collection
model: Todo
localStorage: new Backbone.LocalStorage('todos-baconjs-backbone')
toggleAll: (completed) -> @each (todo) -> todo.save completed: completed
initialize: ->
@changed = @asEventStream("add remove reset change").map(this).toProperty()
@someCompleted = @changed.map => @some (t) -> t.get 'completed'
@allCompleted = @changed.map => @every (t) -> t.get 'completed'
@notEmpty = @changed.map => @length > 0
@all = @changed.map => @models
@active = @changed.map => @reject (t) -> t.get 'completed'
@completed = @changed.map => @filter (t) -> t.get 'completed'