Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(640)

Side by Side Diff: lib/src/firebase-element/firebase-query-behavior.html

Issue 1418513006: update elements and fix some bugs (Closed) Base URL: git@github.com:dart-lang/polymer_elements.git@master
Patch Set: code review updates Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!-- 1 <!--
2 @license 2 @license
3 Copyright (c) 2015 The Polymer Project Authors. All rights reserved. 3 Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
4 This code may only be used under the BSD style license found at http://polymer.g ithub.io/LICENSE.txt 4 This code may only be used under the BSD style license found at http://polymer.g ithub.io/LICENSE.txt
5 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt 5 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6 The complete set of contributors may be found at http://polymer.github.io/CONTRI BUTORS.txt 6 The complete set of contributors may be found at http://polymer.github.io/CONTRI BUTORS.txt
7 Code distributed by Google as part of the polymer project is also 7 Code distributed by Google as part of the polymer project is also
8 subject to an additional IP rights grant found at http://polymer.github.io/PATEN TS.txt 8 subject to an additional IP rights grant found at http://polymer.github.io/PATEN TS.txt
9 --> 9 -->
10 10
(...skipping 22 matching lines...) Expand all
33 readOnly: true 33 readOnly: true
34 }, 34 },
35 35
36 /** 36 /**
37 * If true, verbose debugging information will be printed to the console. 37 * If true, verbose debugging information will be printed to the console.
38 */ 38 */
39 log: { 39 log: {
40 type: Boolean, 40 type: Boolean,
41 value: false, 41 value: false,
42 reflectToAttribute: true 42 reflectToAttribute: true
43 },
44
45 _receivingRemoteChanges: {
46 type: Boolean,
47 value: false
48 } 43 }
49 }, 44 },
50 45
51 observers: [ 46 observers: [
52 '_dataChanged(data.*)' 47 '_dataChanged(data.*)'
53 ], 48 ],
54 49
50 created: function() {
51 this._receivingLocalChanges = false;
52 this._receivingRemoteChanges = false;
53 },
54
55 get dataAsObject() { 55 get dataAsObject() {
56 if (Array.isArray(this.data)) { 56 if (Array.isArray(this.data)) {
57 return this.data.reduce(function(object, value, index) { 57 return this.data.reduce(function(object, value, index) {
58 object[index] = value; 58 object[index] = value;
59 }, {}); 59 }, {});
60 } 60 }
61 61
62 return this.data; 62 return this.data;
63 }, 63 },
64 64
65 /** 65 /**
66 * Disconnects the current Firebase Query instance. 66 * Disconnects the current Firebase Query instance.
67 */ 67 */
68 disconnect: function() { 68 disconnect: function() {
69 this.location = ''; 69 this.location = '';
70 }, 70 },
71 71
72 _applyLocalDataChanges: function(changes) { 72 _localDataChanged: function(changes) {
73 // Virtual.. 73 // Virtual..
74 }, 74 },
75 75
76 _applyLocalDataChange: function(applyChange) {
77 this._receivingLocalChanges = true;
78 applyChange.call(this);
79 this._receivingLocalChanges = false;
80 },
81
76 _applyRemoteDataChange: function(applyChange) { 82 _applyRemoteDataChange: function(applyChange) {
77 if (this._applyingLocalDataChanges) {
78 return;
79 }
80 this._receivingRemoteChanges = true; 83 this._receivingRemoteChanges = true;
81 applyChange.call(this); 84 applyChange.call(this);
82 this._receivingRemoteChanges = false; 85 this._receivingRemoteChanges = false;
83 }, 86 },
84 87
85 _dataChanged: function(changes) { 88 _dataChanged: function(changes) {
86 if (this._receivingRemoteChanges) { 89 if (this._receivingRemoteChanges ||
90 this._receivingLocalChanges) {
87 return; 91 return;
88 } 92 }
89 93
90 this._applyingLocalDataChanges = true; 94 this._localDataChanged(changes);
91 this._applyLocalDataChanges(changes);
92 this._applyingLocalDataChanges = false;
93 }, 95 },
94 96
95 _queryChanged: function(query, oldQuery) { 97 _queryChanged: function(query, oldQuery) {
96 if (oldQuery) { 98 if (oldQuery) {
97 this._stopListeningToQuery(oldQuery); 99 this._stopListeningToQuery(oldQuery);
98 } 100 }
99 101
100 if (query) { 102 if (query) {
101 this._listenToQuery(query); 103 this._listenToQuery(query);
102 } 104 }
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 return arg.val(); 176 return arg.val();
175 } 177 }
176 178
177 return arg; 179 return arg;
178 }); 180 });
179 181
180 console.log.apply(console, args); 182 console.log.apply(console, args);
181 } 183 }
182 }, 184 },
183 185
186 _warn: function() {
187 if (this.log) {
188 Polymer.Base._warn(this._logf.apply(this, arguments));
189 }
190 },
191
184 _error: function() { 192 _error: function() {
185 if (this.log) { 193 if (this.log) {
186 console.error.apply(console, arguments); 194 Polymer.Base._error(this._logf.apply(this, arguments));
187 } 195 }
188 } 196 }
189 }; 197 };
190 </script> 198 </script>
OLDNEW
« no previous file with comments | « lib/src/firebase-element/firebase-document.html ('k') | lib/src/firebase-element/test/firebase-collection.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698