diff options
Diffstat (limited to 'third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js')
-rw-r--r-- | third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js b/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js new file mode 100644 index 0000000000..f8f5d31113 --- /dev/null +++ b/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js @@ -0,0 +1,39 @@ +/*global Backbone */ +var app = app || {}; + +(function () { + 'use strict'; + + // Todo Collection + // --------------- + + + var Todos = Backbone.Collection.extend({ + // Reference to this collection's model. + model: app.Todo, + + // Save all of the todo items under this example's namespace. + + // Filter down the list of all todo items that are finished. + completed: function () { + return this.where({completed: true}); + }, + + // Filter down the list to only todo items that are still not finished. + remaining: function () { + return this.where({completed: false}); + }, + + // We keep the Todos in sequential order, despite being saved by unordered + // GUID in the database. This generates the next order number for new items. + nextOrder: function () { + return this.length ? this.last().get('order') + 1 : 1; + }, + + // Todos are sorted by their original insertion order. + comparator: 'order' + }); + + // Create our global collection of **Todos**. + app.todos = new Todos(); +})(); |