| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 var SourceRow = (function() { | 5 var SourceRow = (function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 /** | 8 /** |
| 9 * A SourceRow represents the row corresponding to a single SourceEntry | 9 * A SourceRow represents the row corresponding to a single SourceEntry |
| 10 * displayed by the EventsView. | 10 * displayed by the EventsView. |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 onSourceUpdated: function() { | 84 onSourceUpdated: function() { |
| 85 if (this.sourceEntry_.isInactive() != this.isInactive_ || | 85 if (this.sourceEntry_.isInactive() != this.isInactive_ || |
| 86 this.sourceEntry_.isError() != this.isError_) { | 86 this.sourceEntry_.isError() != this.isError_) { |
| 87 this.updateClass_(); | 87 this.updateClass_(); |
| 88 } | 88 } |
| 89 | 89 |
| 90 if (this.description_ != this.sourceEntry_.getDescription()) | 90 if (this.description_ != this.sourceEntry_.getDescription()) |
| 91 this.updateDescription_(); | 91 this.updateDescription_(); |
| 92 | 92 |
| 93 // Update filters. | 93 // Update filters. |
| 94 var matchesFilter = this.matchesFilter(this.parentView_.currentFilter_); | 94 var matchesFilter = this.parentView_.currentFilter_(this.sourceEntry_); |
| 95 this.setIsMatchedByFilter(matchesFilter); | 95 this.setIsMatchedByFilter(matchesFilter); |
| 96 }, | 96 }, |
| 97 | 97 |
| 98 /** | 98 /** |
| 99 * Changes |row_|'s class based on currently set flags. Clears any previous | 99 * Changes |row_|'s class based on currently set flags. Clears any previous |
| 100 * class set by this method. This method is needed so that some styles | 100 * class set by this method. This method is needed so that some styles |
| 101 * override others. | 101 * override others. |
| 102 */ | 102 */ |
| 103 updateClass_: function() { | 103 updateClass_: function() { |
| 104 this.isInactive_ = this.sourceEntry_.isInactive(); | 104 this.isInactive_ = this.sourceEntry_.isInactive(); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 | 158 |
| 159 setFilterStyles: function(isMatchedByFilter) { | 159 setFilterStyles: function(isMatchedByFilter) { |
| 160 // Hide rows which have been filtered away. | 160 // Hide rows which have been filtered away. |
| 161 if (isMatchedByFilter) { | 161 if (isMatchedByFilter) { |
| 162 this.row_.style.display = ''; | 162 this.row_.style.display = ''; |
| 163 } else { | 163 } else { |
| 164 this.row_.style.display = 'none'; | 164 this.row_.style.display = 'none'; |
| 165 } | 165 } |
| 166 }, | 166 }, |
| 167 | 167 |
| 168 matchesFilter: function(filter) { | |
| 169 if (filter.isActive && this.isInactive_) | |
| 170 return false; | |
| 171 if (filter.isInactive && !this.isInactive_) | |
| 172 return false; | |
| 173 if (filter.isError && !this.isError_) | |
| 174 return false; | |
| 175 if (filter.isNotError && this.isError_) | |
| 176 return false; | |
| 177 | |
| 178 // Check source type, if needed. | |
| 179 if (filter.type) { | |
| 180 var i; | |
| 181 var sourceType = this.sourceEntry_.getSourceTypeString().toLowerCase(); | |
| 182 for (i = 0; i < filter.type.length; ++i) { | |
| 183 if (sourceType.search(filter.type[i]) != -1) | |
| 184 break; | |
| 185 } | |
| 186 if (i == filter.type.length) | |
| 187 return false; | |
| 188 } | |
| 189 | |
| 190 // Check source ID, if needed. | |
| 191 if (filter.id) { | |
| 192 if (filter.id.indexOf(this.getSourceId() + '') == -1) | |
| 193 return false; | |
| 194 } | |
| 195 | |
| 196 if (!filter.textFilters) | |
| 197 return true; | |
| 198 | |
| 199 // Used for searching for input strings. Lazily initialized. | |
| 200 var tablePrinter = null; | |
| 201 | |
| 202 for (var i = 0; i < filter.textFilters.length; ++i) { | |
| 203 // The description is not always contained in one of the log entries. | |
| 204 if (this.description_.toLowerCase().indexOf( | |
| 205 filter.textFilters[i]) != -1) { | |
| 206 continue; | |
| 207 } | |
| 208 | |
| 209 // Allow specifying source types by name. | |
| 210 var sourceType = this.sourceEntry_.getSourceTypeString(); | |
| 211 if (sourceType.toLowerCase().indexOf(filter.textFilters[i]) != -1) | |
| 212 continue; | |
| 213 | |
| 214 if (!tablePrinter) { | |
| 215 tablePrinter = createLogEntryTablePrinter( | |
| 216 this.sourceEntry_.getLogEntries(), | |
| 217 SourceTracker.getInstance().getPrivacyStripping()); | |
| 218 } | |
| 219 if (!tablePrinter.search(filter.textFilters[i])) | |
| 220 return false; | |
| 221 } | |
| 222 return true; | |
| 223 }, | |
| 224 | |
| 225 isSelected: function() { | 168 isSelected: function() { |
| 226 return this.isSelected_; | 169 return this.isSelected_; |
| 227 }, | 170 }, |
| 228 | 171 |
| 229 setSelected: function(isSelected) { | 172 setSelected: function(isSelected) { |
| 230 if (isSelected == this.isSelected()) | 173 if (isSelected == this.isSelected()) |
| 231 return; | 174 return; |
| 232 | 175 |
| 233 this.isSelected_ = isSelected; | 176 this.isSelected_ = isSelected; |
| 234 | 177 |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 /** | 258 /** |
| 316 * Moves current object's row after |entry|'s row. | 259 * Moves current object's row after |entry|'s row. |
| 317 */ | 260 */ |
| 318 moveAfter: function(entry) { | 261 moveAfter: function(entry) { |
| 319 this.row_.parentNode.insertBefore(this.row_, entry.row_.nextSibling); | 262 this.row_.parentNode.insertBefore(this.row_, entry.row_.nextSibling); |
| 320 } | 263 } |
| 321 }; | 264 }; |
| 322 | 265 |
| 323 return SourceRow; | 266 return SourceRow; |
| 324 })(); | 267 })(); |
| OLD | NEW |