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 cr.define('options', function() { | 5 cr.define('options', function() { |
6 /** @const */ var OptionsPage = options.OptionsPage; | 6 /** @const */ var OptionsPage = options.OptionsPage; |
7 | 7 |
8 /** | 8 /** |
9 * Encapsulated handling of a search bubble. | 9 * Encapsulated handling of a search bubble. |
10 * @constructor | 10 * @constructor |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 // search terms. | 315 // search terms. |
316 var regEx = new RegExp('(' + searchText + ')', 'ig'); | 316 var regEx = new RegExp('(' + searchText + ')', 'ig'); |
317 var replaceString = '<span class="search-highlighted">$1</span>'; | 317 var replaceString = '<span class="search-highlighted">$1</span>'; |
318 | 318 |
319 var page, length; | 319 var page, length; |
320 var pagesToSearch = this.getSearchablePages_(); | 320 var pagesToSearch = this.getSearchablePages_(); |
321 for (var key in pagesToSearch) { | 321 for (var key in pagesToSearch) { |
322 page = pagesToSearch[key]; | 322 page = pagesToSearch[key]; |
323 var elements = page.pageDiv.querySelectorAll('section'); | 323 var elements = page.pageDiv.querySelectorAll('section'); |
324 for (var i = 0, node; node = elements[i]; i++) { | 324 for (var i = 0, node; node = elements[i]; i++) { |
325 node.classList.add('search-hidden'); | 325 if (!node.hidden) |
| 326 node.classList.add('search-hidden'); |
326 } | 327 } |
327 } | 328 } |
328 | 329 |
329 var bubbleControls = []; | 330 var bubbleControls = []; |
330 | 331 |
331 if (searchText.length) { | 332 if (searchText.length) { |
332 // Search all top-level sections for anchored string matches. | 333 // Search all top-level sections for anchored string matches. |
333 for (var key in pagesToSearch) { | 334 for (var key in pagesToSearch) { |
334 page = pagesToSearch[key]; | 335 page = pagesToSearch[key]; |
335 var elements = | 336 var elements = |
336 page.pageDiv.querySelectorAll('section'); | 337 page.pageDiv.querySelectorAll('section'); |
337 for (var i = 0, node; node = elements[i]; i++) { | 338 for (var i = 0, node; node = elements[i]; i++) { |
338 if (this.performReplace_(regEx, replaceString, node)) { | 339 if (!node.hidden) { |
339 node.classList.remove('search-hidden'); | 340 if (this.performReplace_(regEx, replaceString, node)) { |
340 foundMatches = true; | 341 node.classList.remove('search-hidden'); |
| 342 foundMatches = true; |
| 343 } |
341 } | 344 } |
342 } | 345 } |
343 } | 346 } |
344 | 347 |
345 // Search all sub-pages, generating an array of top-level sections that | 348 // Search all sub-pages, generating an array of top-level sections that |
346 // we need to make visible. | 349 // we need to make visible. |
347 var subPagesToSearch = this.getSearchableSubPages_(); | 350 var subPagesToSearch = this.getSearchableSubPages_(); |
348 var control, node; | 351 var control, node; |
349 for (var key in subPagesToSearch) { | 352 for (var key in subPagesToSearch) { |
350 page = subPagesToSearch[key]; | 353 page = subPagesToSearch[key]; |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
581 // Trim beginning and ending whitespace. | 584 // Trim beginning and ending whitespace. |
582 return text.replace(/^\s+|\s+$/g, ''); | 585 return text.replace(/^\s+|\s+$/g, ''); |
583 }; | 586 }; |
584 | 587 |
585 // Export | 588 // Export |
586 return { | 589 return { |
587 SearchPage: SearchPage | 590 SearchPage: SearchPage |
588 }; | 591 }; |
589 | 592 |
590 }); | 593 }); |
OLD | NEW |