| Index: samples/third_party/todomvc_performance/js_todomvc/elements/td-todos.html
|
| diff --git a/samples/third_party/todomvc_performance/js_todomvc/elements/td-todos.html b/samples/third_party/todomvc_performance/js_todomvc/elements/td-todos.html
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..2dc1ce5d92942fab325bc21b75153e291eaad4f1
|
| --- /dev/null
|
| +++ b/samples/third_party/todomvc_performance/js_todomvc/elements/td-todos.html
|
| @@ -0,0 +1,79 @@
|
| +
|
| +<link rel="import" href="../components/polymer/polymer.html">
|
| +<link rel="import" href="../components/polymer-selector/polymer-selector.html">
|
| +<link rel="import" href="../components/flatiron-director/flatiron-director.html">
|
| +<link rel="import" href="td-input.html">
|
| +<link rel="import" href="td-item.html">
|
| +
|
| +<polymer-element name="td-todos" attributes="route modelId">
|
| + <template>
|
| + <link rel="stylesheet" href="td-todos.css">
|
| + <flatiron-director route="{{route}}"></flatiron-director>
|
| + <section id="todoapp">
|
| + <header id="header">
|
| + <input is="td-input" id="new-todo" placeholder="What needs to be done?" autofocus on-td-input-commit="{{addTodoAction}}" on-td-input-cancel="{{cancelAddTodoAction}}">
|
| + </header>
|
| + <section id="main" hidden?="{{model.items.length == 0}}">
|
| + <input id="toggle-all" type="checkbox" on-change="{{toggleAllCompletedAction}}" checked="{{model.allCompleted}}">
|
| + <label for="toggle-all">Mark all as complete</label>
|
| + <ul id="todo-list" on-td-item-changed="{{itemChangedAction}}" on-td-destroy-item="{{destroyItemAction}}">
|
| + <template repeat="{{model.filtered}}">
|
| + <li is="td-item" item="{{}}"></li>
|
| + </template>
|
| + </ul>
|
| + </section>
|
| + <footer id="footer" hidden?="{{model.items.length == 0}}">
|
| + <span id="todo-count"><strong>{{model.activeCount}}</strong> {{model.activeCount == 1 ? 'item' : 'items'}} left</span>
|
| + <polymer-selector id="filters" selected="{{route || 'all'}}">
|
| + <li name="all">
|
| + <a href="../#/">All</a>
|
| + </li>
|
| + <li name="active">
|
| + <a href="../#/active">Active</a>
|
| + </li>
|
| + <li name="completed">
|
| + <a href="../#/completed">Completed</a>
|
| + </li>
|
| + </polymer-selector>
|
| + <button hidden?="{{model.completedCount == 0}}" id="clear-completed" on-click="{{clearCompletedAction}}">Clear completed ({{model.completedCount}})</button>
|
| + </footer>
|
| + </section>
|
| + </template>
|
| +
|
| + <script>
|
| + (function() {
|
| + var ENTER_KEY = 13;
|
| + var ESC_KEY = 27;
|
| + Polymer('td-todos', {
|
| + modelIdChanged: function() {
|
| + this.model = document.querySelector('#' + this.modelId);
|
| + },
|
| + routeChanged: function() {
|
| + this.model && (this.model.filter = this.route);
|
| + },
|
| + addTodoAction: function() {
|
| + this.model.newItem(this.$['new-todo'].value);
|
| + // when polyfilling Object.observe, make sure we update immediately
|
| + Platform.flush();
|
| + this.$['new-todo'].value = '';
|
| + },
|
| + cancelAddTodoAction: function() {
|
| + this.$['new-todo'].value = '';
|
| + },
|
| + itemChangedAction: function() {
|
| + this.model && this.model.itemsChanged();
|
| + },
|
| + destroyItemAction: function(e, detail) {
|
| + this.model.destroyItem(detail);
|
| + },
|
| + toggleAllCompletedAction: function(e, detail, sender) {
|
| + this.model.setItemsCompleted(sender.checked);
|
| + },
|
| + clearCompletedAction: function() {
|
| + this.model.clearItems();
|
| + }
|
| + });
|
| + })();
|
| + </script>
|
| +
|
| +</polymer-element>
|
|
|