summaryrefslogtreecommitdiffstats
path: root/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js
diff options
context:
space:
mode:
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.js39
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();
+})();