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

Unified Diff: chrome/browser/resources/print_preview/settings/advanced_settings/advanced_settings_item.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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/print_preview/settings/advanced_settings/advanced_settings.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/print_preview/settings/advanced_settings/advanced_settings_item.js
diff --git a/chrome/browser/resources/print_preview/settings/advanced_settings/advanced_settings_item.js b/chrome/browser/resources/print_preview/settings/advanced_settings/advanced_settings_item.js
index 4a93f74101b318d219510f18b4c6bed7293f7498..3633c0f908f9e708c06147130fa57df3c41c3679 100644
--- a/chrome/browser/resources/print_preview/settings/advanced_settings/advanced_settings_item.js
+++ b/chrome/browser/resources/print_preview/settings/advanced_settings/advanced_settings_item.js
@@ -33,24 +33,27 @@ cr.define('print_preview', function() {
this.printTicketStore_ = printTicketStore;
/**
- * Capability that the list item renders.
+ * Capability this component renders.
* @private {!Object}
*/
this.capability_ = capability;
/**
+ * Value selected by user. {@code null}, if user has not changed the default
+ * value yet (still, the value can be the default one, if it is what user
+ * selected).
+ * @private {?string}
+ */
+ this.selectedValue_ = null;
+
+ /**
* Active filter query text.
* @private {RegExp}
*/
this.query_ = null;
- };
- /**
- * Event types dispatched by this class.
- * @enum {string}
- */
- AdvancedSettingsItem.EventType = {
- CHANGED: 'print_preview.AdvancedSettingsItem.CHANGED'
+ /** @private {!EventTracker} */
+ this.tracker_ = new EventTracker();
};
AdvancedSettingsItem.prototype = {
@@ -69,15 +72,73 @@ cr.define('print_preview', function() {
nameEl.textContent = textContent;
nameEl.title = textContent;
+ this.tracker_.add(
+ this.select_, 'change', this.onSelectChange_.bind(this));
+ this.tracker_.add(this.text_, 'input', this.onTextInput_.bind(this));
+
this.initializeValue_();
},
/**
+ * ID of the corresponding vendor capability.
+ * @return {string}
+ */
+ get id() {
+ return this.capability_.id;
+ },
+
+ /**
+ * Currently selected value.
+ * @return {string}
+ */
+ get selectedValue() {
+ return this.selectedValue_ || '';
+ },
+
+ /**
* Whether the corresponding ticket item was changed or not.
* @return {boolean}
*/
isModified: function() {
- return false;
+ return !!this.selectedValue_;
+ },
+
+ /**
+ * @return {HTMLSelectElement} Select element.
+ * @private
+ */
+ get select_() {
+ return this.getChildElement(
+ '.advanced-settings-item-value-select-control');
+ },
+
+ /**
+ * @return {HTMLSelectElement} Text element.
+ * @private
+ */
+ get text_() {
+ return this.getChildElement('.advanced-settings-item-value-text-control');
+ },
+
+ /**
+ * Called when the select element value is changed.
+ * @private
+ */
+ onSelectChange_: function() {
+ this.selectedValue_ = this.select_.value;
+ this.capability_.select_cap.option.some(function(option) {
+ if (this.select_.value == option.value && option.is_default)
+ this.selectedValue_ = null;
+ return this.select_.value == option.value || option.is_default;
+ }.bind(this));
+ },
+
+ /**
+ * Called when the text element value is changed.
+ * @private
+ */
+ onTextInput_: function() {
+ this.selectedValue_ = this.text_.value || null;
},
/**
@@ -85,6 +146,9 @@ cr.define('print_preview', function() {
* @private
*/
initializeValue_: function() {
+ this.selectedValue_ =
+ this.printTicketStore_.vendorItems.ticketItems[this.id] || null;
+
if (this.capability_.type == 'SELECT')
this.initializeSelectValue_();
else
@@ -96,10 +160,9 @@ cr.define('print_preview', function() {
* @private
*/
initializeSelectValue_: function() {
- var selectEl = this.getChildElement(
- '.advanced-settings-item-value-select-control');
setIsVisible(
- this.getChildElement('.advanced-settings-item-value-select'), true);
+ this.getChildElement('.advanced-settings-item-value-select'), true);
+ var selectEl = this.select_;
var indexToSelect = 0;
this.capability_.select_cap.option.forEach(function(option, index) {
var item = document.createElement('option');
@@ -109,10 +172,8 @@ cr.define('print_preview', function() {
indexToSelect = index;
selectEl.add(item);
});
- // TODO: Try to select current ticket item.
- var valueToSelect = '';
for (var i = 0, option; option = selectEl.options[i]; i++) {
- if (option.value == valueToSelect) {
+ if (option.value == this.selectedValue_) {
indexToSelect = i;
break;
}
@@ -125,10 +186,9 @@ cr.define('print_preview', function() {
* @private
*/
initializeTextValue_: function() {
- var textEl = this.getChildElement(
- '.advanced-settings-item-value-text-control');
setIsVisible(
this.getChildElement('.advanced-settings-item-value-text'), true);
+ this.text_.value = this.selectedValue;
},
/**
« no previous file with comments | « chrome/browser/resources/print_preview/settings/advanced_settings/advanced_settings.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698