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

Side by Side Diff: chrome/browser/resources/options/extension_list.js

Issue 8353022: [web-ui settings] Fixes and improvements for settings page searching. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 2 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 'use strict'; 6 'use strict';
7 7
8 /** 8 /**
9 * A lookup helper function to find the first node that has an id (starting 9 * A lookup helper function to find the first node that has an id (starting
10 * at |node| and going up the parent chain). 10 * at |node| and going up the parent chain).
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 var toggleSection = $('dev'); 52 var toggleSection = $('dev');
53 if (this.data_.developerMode) { 53 if (this.data_.developerMode) {
54 toggleSection.classList.add('dev-open'); 54 toggleSection.classList.add('dev-open');
55 toggleSection.classList.remove('dev-closed'); 55 toggleSection.classList.remove('dev-closed');
56 toggleButton.checked = true; 56 toggleButton.checked = true;
57 } else { 57 } else {
58 toggleSection.classList.remove('dev-open'); 58 toggleSection.classList.remove('dev-open');
59 toggleSection.classList.add('dev-closed'); 59 toggleSection.classList.add('dev-closed');
60 } 60 }
61 61
62 // Install handler for key presses. 62 // Install handler for search changes.
63 if (!handleInstalled) { 63 if (!handleInstalled) {
64 this.ownerDocument.addEventListener('keyup', 64 var searchPage = SearchPage.getInstance();
65 this.upEventHandler_.bind(this)); 65 searchPage.addEventListener('searchChanged',
66 this.ownerDocument.addEventListener('mouseup', 66 this.searchChangedHandler_.bind(this));
Finnur 2011/10/20 10:00:59 Ooh, me like.
67 this.upEventHandler_.bind(this));
68 handleInstalled = true; 67 handleInstalled = true;
69 } 68 }
70 }, 69 },
71 70
72 /** 71 /**
73 * Deletes the existing Extension nodes from the page to make room for new 72 * Deletes the existing Extension nodes from the page to make room for new
74 * ones. It also keeps track of who was showing details so when the 73 * ones. It also keeps track of who was showing details so when the
75 * extension list gets recreated we can recreate that state. 74 * extension list gets recreated we can recreate that state.
76 * @param {Array} showingDetails An array that will contain the list of 75 * @param {Array} showingDetails An array that will contain the list of
77 * id's of extension that had the details section 76 * id's of extension that had the details section
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 details.classList.add('extension-details-visible'); 586 details.classList.add('extension-details-visible');
588 iter.classList.remove('extension-list-item-collaped'); 587 iter.classList.remove('extension-list-item-collaped');
589 iter.classList.add('extension-list-item-expanded'); 588 iter.classList.add('extension-list-item-expanded');
590 } 589 }
591 } 590 }
592 iter = iter.nextSibling; 591 iter = iter.nextSibling;
593 } 592 }
594 }, 593 },
595 594
596 /** 595 /**
597 * Handles the mouse-up and keyboard-up events. This is used to limit the 596 * Handles the 'searchChanged' event. This is used to limit the number of
598 * number of items to show in the list, when the user is searching for items 597 * items to show in the list, when the user is searching for items with the
599 * with the search box. Otherwise, if one match is found, the whole list of 598 * search box. Otherwise, if one match is found, the whole list of
600 * extensions would be shown when we only want the matching items to be 599 * extensions would be shown when we only want the matching items to be
601 * found. 600 * found.
602 * @param {Event} e Change event. 601 * @param {Event} e Change event.
603 * @private 602 * @private
604 */ 603 */
605 upEventHandler_: function(e) { 604 searchChangedHandler_: function(e) {
606 var searchString = $('search-field').value.toLowerCase(); 605 var searchString = e.searchText;
607 var child = this.firstChild; 606 var child = this.firstChild;
608 while (child){ 607 while (child) {
609 var extension = this.getExtensionWithId_(child.id); 608 var extension = this.getExtensionWithId_(child.id);
610 if (searchString.length == 0) { 609 if (searchString.length == 0) {
611 // Show all. 610 // Show all.
612 child.classList.remove('search-suppress'); 611 child.classList.remove('search-suppress');
613 } else { 612 } else {
614 // If the search string does not appear within the text of the 613 // If the search string does not appear within the text of the
615 // extension, then hide it. 614 // extension, then hide it.
616 if ((extension.name.toLowerCase().indexOf(searchString) < 0) && 615 if ((extension.name.toLowerCase().indexOf(searchString) < 0) &&
617 (extension.version.toLowerCase().indexOf(searchString) < 0) && 616 (extension.version.toLowerCase().indexOf(searchString) < 0) &&
618 (extension.description.toLowerCase().indexOf(searchString) < 0)) { 617 (extension.description.toLowerCase().indexOf(searchString) < 0)) {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 ]); 725 ]);
727 } 726 }
728 } 727 }
729 }, 728 },
730 }; 729 };
731 730
732 return { 731 return {
733 ExtensionsList: ExtensionsList 732 ExtensionsList: ExtensionsList
734 }; 733 };
735 }); 734 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698