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

Unified Diff: chrome/browser/resources/print_preview/settings/copies_settings.js

Issue 2441493004: Add copies changes to prepare for scaling (Closed)
Patch Set: Fix final issues Created 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/print_preview/settings/copies_settings.js
diff --git a/chrome/browser/resources/print_preview/settings/copies_settings.js b/chrome/browser/resources/print_preview/settings/copies_settings.js
index ce5d5ef92e13758eecf239c963f9b355f3254c01..1d233219cb49ce45c1cc35baf06f334379e06d3e 100644
--- a/chrome/browser/resources/print_preview/settings/copies_settings.js
+++ b/chrome/browser/resources/print_preview/settings/copies_settings.js
@@ -32,7 +32,7 @@ cr.define('print_preview', function() {
this.collateTicketItem_ = collateTicketItem;
/**
- * Timeout used to delay processing of the copies input.
+ * Timeout used to delay processing of the copies input in ms
* @type {?number}
* @private
*/
@@ -44,6 +44,13 @@ cr.define('print_preview', function() {
* @private
*/
this.isEnabled_ = true;
+
+ /**
+ * The element for the user input value.
+ * @type {HTMLElement}
+ * @private
+ */
+ this.inputField_ = null;
};
/**
@@ -51,7 +58,7 @@ cr.define('print_preview', function() {
* @type {number}
* @private
*/
- CopiesSettings.TEXTFIELD_DELAY_ = 250;
+ CopiesSettings.TEXTFIELD_DELAY_MS_ = 250;
CopiesSettings.prototype = {
__proto__: print_preview.SettingsSection.prototype,
@@ -68,41 +75,31 @@ cr.define('print_preview', function() {
/** @override */
set isEnabled(isEnabled) {
- this.getChildElement('input.copies').disabled = !isEnabled;
+ this.inputField_.disabled = !isEnabled;
this.getChildElement('input.collate').disabled = !isEnabled;
this.isEnabled_ = isEnabled;
if (isEnabled) {
this.updateState_();
- } else {
- this.getChildElement('button.increment').disabled = true;
- this.getChildElement('button.decrement').disabled = true;
}
},
/** @override */
enterDocument: function() {
+ this.inputField_ = this.getChildElement('input.user-value');
print_preview.SettingsSection.prototype.enterDocument.call(this);
this.tracker.add(
- this.getChildElement('input.copies'),
+ this.inputField_,
'keydown',
this.onTextfieldKeyDown_.bind(this));
this.tracker.add(
- this.getChildElement('input.copies'),
+ this.inputField_,
'input',
this.onTextfieldInput_.bind(this));
this.tracker.add(
- this.getChildElement('input.copies'),
+ this.inputField_,
'blur',
this.onTextfieldBlur_.bind(this));
this.tracker.add(
- this.getChildElement('button.increment'),
- 'click',
- this.onButtonClicked_.bind(this, 1));
- this.tracker.add(
- this.getChildElement('button.decrement'),
- 'click',
- this.onButtonClicked_.bind(this, -1));
- this.tracker.add(
this.getChildElement('input.collate'),
'click',
this.onCollateCheckboxClick_.bind(this));
@@ -122,29 +119,18 @@ cr.define('print_preview', function() {
*/
updateState_: function() {
if (this.isAvailable()) {
- if (this.getChildElement('input.copies').value !=
- this.copiesTicketItem_.getValue()) {
- this.getChildElement('input.copies').value =
- this.copiesTicketItem_.getValue();
- }
+ if (this.inputField_.value != this.copiesTicketItem_.getValue())
+ this.inputField_.value = this.copiesTicketItem_.getValue();
var currentValueGreaterThan1 = false;
if (this.copiesTicketItem_.isValid()) {
- this.getChildElement('input.copies').classList.remove('invalid');
+ this.inputField_.classList.remove('invalid');
fadeOutElement(this.getChildElement('.hint'));
var currentValue = this.copiesTicketItem_.getValueAsNumber();
- var currentValueGreaterThan1 = currentValue > 1;
- this.getChildElement('button.increment').disabled =
- !this.isEnabled_ ||
- !this.copiesTicketItem_.wouldValueBeValid(currentValue + 1);
- this.getChildElement('button.decrement').disabled =
- !this.isEnabled_ ||
- !this.copiesTicketItem_.wouldValueBeValid(currentValue - 1);
+ currentValueGreaterThan1 = currentValue > 1;
} else {
- this.getChildElement('input.copies').classList.add('invalid');
+ this.inputField_.classList.add('invalid');
fadeInElement(this.getChildElement('.hint'));
- this.getChildElement('button.increment').disabled = true;
- this.getChildElement('button.decrement').disabled = true;
}
if (!(this.getChildElement('.collate-container').hidden =
@@ -158,25 +144,12 @@ cr.define('print_preview', function() {
},
/**
- * Called whenever the increment/decrement buttons are clicked.
- * @param {number} delta Must be 1 for an increment button click and -1 for
- * a decrement button click.
- * @private
- */
- onButtonClicked_: function(delta) {
- // Assumes text field has a valid number.
- var newValue =
- parseInt(this.getChildElement('input.copies').value, 10) + delta;
- this.copiesTicketItem_.updateValue(newValue + '');
- },
-
- /**
* Called after a timeout after user input into the textfield.
* @private
*/
onTextfieldTimeout_: function() {
this.textfieldTimeout_ = null;
- var copiesVal = this.getChildElement('input.copies').value;
+ var copiesVal = this.inputField_.value;
if (copiesVal != '') {
this.copiesTicketItem_.updateValue(copiesVal);
}
@@ -188,12 +161,12 @@ cr.define('print_preview', function() {
* @private
*/
onTextfieldKeyDown_: function(event) {
- if (event.keyCode == 13 /*enter*/) {
- if (this.textfieldTimeout_) {
- clearTimeout(this.textfieldTimeout_);
- }
- this.onTextfieldTimeout_();
- }
+ if (event.keyCode != 'Enter')
+ return;
+
+ if (this.textfieldTimeout_)
+ clearTimeout(this.textfieldTimeout_);
+ this.onTextfieldTimeout_();
},
/**
@@ -206,7 +179,8 @@ cr.define('print_preview', function() {
clearTimeout(this.textfieldTimeout_);
}
this.textfieldTimeout_ = setTimeout(
- this.onTextfieldTimeout_.bind(this), CopiesSettings.TEXTFIELD_DELAY_);
+ this.onTextfieldTimeout_.bind(this),
+ CopiesSettings.TEXTFIELD_DELAY_MS_);
},
/**
@@ -215,7 +189,7 @@ cr.define('print_preview', function() {
* @private
*/
onTextfieldBlur_: function() {
- if (this.getChildElement('input.copies').value == '') {
+ if (this.inputField_.value == '') {
// Do it asynchronously to avoid moving focus to Print button in
// PrintHeader.onTicketChange_.
setTimeout((function() {

Powered by Google App Engine
This is Rietveld 408576698