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

Side by Side Diff: ui/webui/resources/cr_elements/cr_search_field/cr_search_field.js

Issue 1613233003: MD Downloads: make Ctrl+f invoke in-page search (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@dl-vulcanize
Patch Set: rework, revulc Created 4 years, 11 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
« no previous file with comments | « chrome/browser/resources/md_downloads/vulcanized.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 /** @interface */ 5 /** @interface */
6 var SearchFieldDelegate = function() {}; 6 var SearchFieldDelegate = function() {};
7 7
8 SearchFieldDelegate.prototype = { 8 SearchFieldDelegate.prototype = {
9 /** 9 /**
10 * @param {string} value 10 * @param {string} value
(...skipping 11 matching lines...) Expand all
22 }, 22 },
23 23
24 clearLabel: { 24 clearLabel: {
25 type: String, 25 type: String,
26 value: '', 26 value: '',
27 }, 27 },
28 28
29 showingSearch_: { 29 showingSearch_: {
30 type: Boolean, 30 type: Boolean,
31 value: false, 31 value: false,
32 observer: 'showingSearchChanged_',
32 }, 33 },
33 }, 34 },
34 35
36 /**
37 * Returns the value of the search field.
38 * @return {string}
39 */
40 getValue: function() {
41 var searchInput = this.getSearchInput_();
42 return searchInput ? searchInput.value : '';
43 },
44
35 /** @param {SearchFieldDelegate} delegate */ 45 /** @param {SearchFieldDelegate} delegate */
36 setDelegate: function(delegate) { 46 setDelegate: function(delegate) {
37 this.delegate_ = delegate; 47 this.delegate_ = delegate;
38 }, 48 },
39 49
40 /** 50 showAndFocus: function() {
41 * Returns the value of the search field. 51 this.showingSearch_ = true;
42 * @return {string} 52 this.focus_();
43 */
44 getValue: function() {
45 var searchInput = this.$$('#search-input');
46 return searchInput ? searchInput.value : '';
47 }, 53 },
48 54
49 /** @private */ 55 /** @private */
56 focus_: function() {
57 this.async(function() {
58 if (!this.showingSearch_)
59 return;
60
61 var searchInput = this.getSearchInput_();
62 if (searchInput)
63 searchInput.focus();
64 });
65 },
66
67 /**
68 * @return {?HTMLElement}
69 * @private
70 */
71 getSearchInput_: function() {
72 return this.$$('#search-input');
73 },
74
75 /** @private */
50 onSearchTermSearch_: function() { 76 onSearchTermSearch_: function() {
51 if (this.delegate_) 77 if (this.delegate_)
52 this.delegate_.onSearchTermSearch(this.getValue()); 78 this.delegate_.onSearchTermSearch(this.getValue());
53 }, 79 },
54 80
55 /** @private */ 81 /** @private */
56 onSearchTermKeydown_: function(e) { 82 onSearchTermKeydown_: function(e) {
57 assert(this.showingSearch_);
58 if (e.keyIdentifier == 'U+001B') // Escape. 83 if (e.keyIdentifier == 'U+001B') // Escape.
59 this.toggleShowingSearch_(); 84 this.showingSearch_ = false;
85 },
86
87 /** @private */
88 showingSearchChanged_: function() {
89 if (this.showingSearch_) {
90 this.focus_();
91 return;
92 }
93
94 var searchInput = this.getSearchInput_();
95 if (!searchInput)
96 return;
97
98 searchInput.value = '';
99 this.onSearchTermSearch_();
60 }, 100 },
61 101
62 /** @private */ 102 /** @private */
63 toggleShowingSearch_: function() { 103 toggleShowingSearch_: function() {
michaelpg 2016/01/21 23:43:35 unused now?
Dan Beam 2016/01/21 23:54:23 nope, in html
64 this.showingSearch_ = !this.showingSearch_; 104 this.showingSearch_ = !this.showingSearch_;
65 this.async(function() {
66 var searchInput = this.$$('#search-input');
67 if (this.showingSearch_) {
68 searchInput.focus();
69 } else {
70 searchInput.value = '';
71 this.onSearchTermSearch_();
72 }
73 });
74 }, 105 },
75 }); 106 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/md_downloads/vulcanized.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698