chromium/third_party/blink/perf_tests/speedometer21/resources/todomvc/architecture-examples/backbone/js/collections/todos.js

/*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();
})();