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

Side by Side Diff: chrome/browser/resources/print_preview/settings/advanced_settings/advanced_settings.js

Issue 540563002: Export vendor capabilities to the CJT ticket. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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('print_preview', function() { 5 cr.define('print_preview', function() {
6 'use strict'; 6 'use strict';
7 7
8 /** 8 /**
9 * Modal dialog for print destination's advanced settings. 9 * Modal dialog for print destination's advanced settings.
10 * @param {!print_preview.PrintTicketStore} printTicketStore Contains the 10 * @param {!print_preview.PrintTicketStore} printTicketStore Contains the
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 /** @override */ 59 /** @override */
60 enterDocument: function() { 60 enterDocument: function() {
61 print_preview.Overlay.prototype.enterDocument.call(this); 61 print_preview.Overlay.prototype.enterDocument.call(this);
62 62
63 this.tracker.add( 63 this.tracker.add(
64 this.getChildElement('#cancel-button'), 64 this.getChildElement('#cancel-button'),
65 'click', 65 'click',
66 this.cancel.bind(this)); 66 this.cancel.bind(this));
67 67
68 this.tracker.add( 68 this.tracker.add(
69 this.getChildElement('#done-button'),
70 'click',
71 this.onApplySettings_.bind(this));
72
73 this.tracker.add(
69 this.searchBox_, 74 this.searchBox_,
70 print_preview.SearchBox.EventType.SEARCH, 75 print_preview.SearchBox.EventType.SEARCH,
71 this.onSearch_.bind(this)); 76 this.onSearch_.bind(this));
72 }, 77 },
73 78
74 /** @override */ 79 /** @override */
75 decorateInternal: function() { 80 decorateInternal: function() {
76 this.searchBox_.render(this.getChildElement('.search-box-area')); 81 this.searchBox_.render(this.getChildElement('.search-box-area'));
77 }, 82 },
78 83
79 /** @override */ 84 /** @override */
80 onSetVisibleInternal: function(isVisible) { 85 onSetVisibleInternal: function(isVisible) {
81 if (isVisible) { 86 if (isVisible) {
82 this.searchBox_.focus(); 87 this.searchBox_.focus();
83 this.metrics_.record(print_preview.Metrics.PrintSettingsUiBucket. 88 this.metrics_.record(print_preview.Metrics.PrintSettingsUiBucket.
84 ADVANCED_SETTINGS_DIALOG_SHOWN); 89 ADVANCED_SETTINGS_DIALOG_SHOWN);
85 } else { 90 } else {
86 this.searchBox_.setQuery(null); 91 this.searchBox_.setQuery(null);
87 this.filterLists_(null); 92 this.filterLists_(null);
88 this.destination_ = null; 93 this.destination_ = null;
89 } 94 }
90 }, 95 },
91 96
92 /** @override */ 97 /** @override */
93 onCancelInternal: function() { 98 onCancelInternal: function() {
94 this.metrics_.record(print_preview.Metrics.PrintSettingsUiBucket. 99 this.metrics_.record(print_preview.Metrics.PrintSettingsUiBucket.
95 ADVANCED_SETTINGS_DIALOG_CANCELED); 100 ADVANCED_SETTINGS_DIALOG_CANCELED);
96 }, 101 },
97 102
103 /** @override */
104 onEnterPressedInternal: function() {
105 var doneButton = this.getChildElement('#done-button');
106 if (!doneButton.disabled)
107 doneButton.click();
108 return !doneButton.disabled;
109 },
110
98 /** 111 /**
99 * @return {number} Height available for settings, in pixels. 112 * @return {number} Height available for settings, in pixels.
100 * @private 113 * @private
101 */ 114 */
102 getAvailableContentHeight_: function() { 115 getAvailableContentHeight_: function() {
103 var elStyle = window.getComputedStyle(this.getElement()); 116 var elStyle = window.getComputedStyle(this.getElement());
104 return this.getElement().offsetHeight - 117 return this.getElement().offsetHeight -
105 parseInt(elStyle.getPropertyValue('padding-top')) - 118 parseInt(elStyle.getPropertyValue('padding-top')) -
106 parseInt(elStyle.getPropertyValue('padding-bottom')) - 119 parseInt(elStyle.getPropertyValue('padding-bottom')) -
107 this.getChildElement('.settings-area').offsetTop - 120 this.getChildElement('.settings-area').offsetTop -
(...skipping 21 matching lines...) Expand all
129 * Renders all of the available settings. 142 * Renders all of the available settings.
130 * @private 143 * @private
131 */ 144 */
132 renderSettings_: function() { 145 renderSettings_: function() {
133 // Remove all children settings elements. 146 // Remove all children settings elements.
134 this.items_.forEach(function(item) { 147 this.items_.forEach(function(item) {
135 this.removeChild(item); 148 this.removeChild(item);
136 }.bind(this)); 149 }.bind(this));
137 this.items_ = []; 150 this.items_ = [];
138 151
139 var vendorCapabilities = 152 var vendorCapabilities = this.printTicketStore_.vendorItems.capability;
140 this.destination_ &&
141 this.destination_.capabilities &&
142 this.destination_.capabilities.printer &&
143 this.destination_.capabilities.printer.vendor_capability;
144 if (!vendorCapabilities) 153 if (!vendorCapabilities)
145 return; 154 return;
146 155
147 var availableHeight = this.getAvailableContentHeight_(); 156 var availableHeight = this.getAvailableContentHeight_();
148 var containerEl = this.getChildElement('.settings-area'); 157 var containerEl = this.getChildElement('.settings-area');
149 containerEl.style.maxHeight = availableHeight + 'px'; 158 containerEl.style.maxHeight = availableHeight + 'px';
150 159
151 vendorCapabilities.forEach(function(capability) { 160 vendorCapabilities.forEach(function(capability) {
152 var item = new print_preview.AdvancedSettingsItem( 161 var item = new print_preview.AdvancedSettingsItem(
153 this.eventTarget_, this.printTicketStore_, capability); 162 this.eventTarget_, this.printTicketStore_, capability);
154 this.addChild(item); 163 this.addChild(item);
155 item.render(this.getChildElement('.settings')); 164 item.render(this.getChildElement('.settings'));
156 this.items_.push(item); 165 this.items_.push(item);
157 }.bind(this)); 166 }.bind(this));
158 }, 167 },
159 168
160 /** 169 /**
161 * Called when settings search query changes. Filters displayed settings 170 * Called when settings search query changes. Filters displayed settings
162 * with the given query. 171 * with the given query.
163 * @param {Event} evt Contains search query. 172 * @param {Event} evt Contains search query.
164 * @private 173 * @private
165 */ 174 */
166 onSearch_: function(evt) { 175 onSearch_: function(evt) {
167 this.filterLists_(evt.query); 176 this.filterLists_(evt.query);
177 },
178
179 /**
180 * Called when current settings selection need to be stored in the ticket.
181 * @private
182 */
183 onApplySettings_: function(evt) {
184 this.setIsVisible(false);
185
186 var values = {};
187 this.items_.forEach(function(item) {
188 if (item.isModified())
189 values[item.id] = item.selectedValue;
190 }.bind(this));
191
192 this.printTicketStore_.vendorItems.updateValue(values);
168 } 193 }
169 }; 194 };
170 195
171 // Export 196 // Export
172 return { 197 return {
173 AdvancedSettings: AdvancedSettings 198 AdvancedSettings: AdvancedSettings
174 }; 199 };
175 }); 200 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698