summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources/print_preview/copies_settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/resources/print_preview/copies_settings.js')
-rw-r--r--chrome/browser/resources/print_preview/copies_settings.js248
1 files changed, 0 insertions, 248 deletions
diff --git a/chrome/browser/resources/print_preview/copies_settings.js b/chrome/browser/resources/print_preview/copies_settings.js
deleted file mode 100644
index b5b94e9..0000000
--- a/chrome/browser/resources/print_preview/copies_settings.js
+++ /dev/null
@@ -1,248 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-cr.define('print_preview', function() {
- 'use strict';
-
- /**
- * Creates a CopiesSettings object.
- * @constructor
- */
- function CopiesSettings() {
- this.copiesOption_ = $('copies-option');
- this.textfield_ = $('copies');
- this.incrementButton_ = $('increment');
- this.decrementButton_ = $('decrement');
- // Minimum allowed value for number of copies.
- this.minValue_ = 1;
- // Maximum allowed value for number of copies.
- this.maxValue_ = 999;
- this.collateOption_ = $('collate-option');
- this.collateCheckbox_ = $('collate');
- this.hint_ = $('copies-hint');
- this.twoSidedCheckbox_ = $('two-sided');
- this.twoSidedOption_ = $('two-sided-option');
-
- this.previousDuplexMode_ = CopiesSettings.UNKNOWN_DUPLEX_MODE;
- this.addEventListeners_();
- }
-
- // Constant values matches printing::DuplexMode enum.
- CopiesSettings.SIMPLEX = 0;
- CopiesSettings.LONG_EDGE = 1;
- CopiesSettings.UNKNOWN_DUPLEX_MODE = -1;
-
- cr.addSingletonGetter(CopiesSettings);
-
- CopiesSettings.prototype = {
- /**
- * The number of copies represented by the contents of |this.textfield_|.
- * If the text is not valid returns |this.minValue_|.
- * @type {number}
- */
- get numberOfCopies() {
- var value = parseInt(this.textfield_.value, 10);
- if (!value || value <= this.minValue_)
- value = this.minValue_;
- return value;
- },
-
- /**
- * Getter method for |collateOption_|.
- * @type {HTMLElement}
- */
- get collateOption() {
- return this.collateOption_;
- },
-
- /**
- * Getter method for |twoSidedCheckbox_|.
- * @type {HTMLInputElement}
- */
- get twoSidedCheckbox() {
- return this.twoSidedCheckbox_;
- },
-
- /**
- * Gets the duplex mode information for printing.
- * @return {number} duplex mode.
- */
- get duplexMode() {
- if (this.twoSidedOption_.hidden)
- return CopiesSettings.UNKNOWN_DUPLEX_MODE;
- else if (this.twoSidedCheckbox_.checked)
- return CopiesSettings.LONG_EDGE;
- else
- return CopiesSettings.SIMPLEX;
- },
-
- set previousDuplexMode(duplexMode) {
- this.previousDuplexMode_ = duplexMode;
- },
-
- /**
- * @return {boolean} true if |this.textfield_| is empty, or represents a
- * positive integer value.
- */
- isValid: function() {
- return !this.textfield_.value || isPositiveInteger(this.textfield_.value);
- },
-
- /**
- * Checks whether the preview collate setting value is set or not.
- * @return {boolean} true if collate option is enabled and checked.
- */
- isCollated: function() {
- return !this.collateOption_.hidden && this.collateCheckbox_.checked;
- },
-
- /**
- * Resets |this.textfield_| to |this.minValue_|.
- * @private
- */
- reset_: function() {
- this.textfield_.value = this.minValue_;
- },
-
- /**
- * Listener function to execute whenever the increment/decrement buttons are
- * clicked.
- * @private
- * @param {int} sign Must be 1 for an increment button click and -1 for a
- * decrement button click.
- */
- onButtonClicked_: function(sign) {
- if (!this.isValid()) {
- this.reset_();
- } else {
- var newValue = this.numberOfCopies + sign;
- this.textfield_.value = newValue;
- }
- this.updateButtonsState_();
- this.showHideCollateOption_();
-
- if (!hasPendingPreviewRequest) {
- cr.dispatchSimpleEvent(document, customEvents.UPDATE_SUMMARY);
- cr.dispatchSimpleEvent(document, customEvents.UPDATE_PRINT_BUTTON);
- }
- },
-
- /**
- * Listener function to execute whenever a change occurs in |textfield_|
- * textfield.
- * @private
- */
- onTextfieldChanged_: function() {
- this.updateButtonsState_();
- this.showHideCollateOption_();
- if (!hasPendingPreviewRequest) {
- cr.dispatchSimpleEvent(document, customEvents.UPDATE_SUMMARY);
- cr.dispatchSimpleEvent(document, customEvents.UPDATE_PRINT_BUTTON);
- }
- },
-
- /**
- * Adding listeners to all copies related controls. The listeners take care
- * of altering their behavior depending on |hasPendingPreviewRequest|.
- * @private
- */
- addEventListeners_: function() {
- this.textfield_.oninput = this.onTextfieldChanged_.bind(this);
- this.incrementButton_.onclick = this.onIncrementButtonClicked_.bind(this);
- this.decrementButton_.onclick = this.onDecrementButtonClicked_.bind(this);
- this.twoSidedCheckbox_.onclick = function() {
- if (!hasPendingPreviewRequest)
- cr.dispatchSimpleEvent(document, customEvents.UPDATE_SUMMARY);
- }
- document.addEventListener(customEvents.PDF_LOADED,
- this.updateButtonsState_.bind(this));
- document.addEventListener(customEvents.PRINTER_CAPABILITIES_UPDATED,
- this.onPrinterCapabilitiesUpdated_.bind(this));
- },
-
- /**
- * Executes when a |customEvents.PRINTER_CAPABILITIES_UPDATED| event occurs.
- * @private
- */
- onPrinterCapabilitiesUpdated_: function(e) {
- var duplexValue = e.printerCapabilities.printerDefaultDuplexValue;
- if (duplexValue != CopiesSettings.UNKNOWN_DUPLEX_MODE &&
- this.previousDuplexMode_ != CopiesSettings.UNKNOWN_DUPLEX_MODE) {
- duplexValue = this.previousDuplexMode_;
- }
- this.updateTwoSidedOption_(duplexValue);
- e.printerCapabilities.disableCopiesOption ?
- fadeOutOption(this.copiesOption_) :
- fadeInOption(this.copiesOption_);
- },
-
- /**
- * Listener triggered when |incrementButton_| is clicked.
- * @private
- */
- onIncrementButtonClicked_: function() {
- this.onButtonClicked_(1);
- },
-
- /**
- * Listener triggered when |decrementButton_| is clicked.
- * @private
- */
- onDecrementButtonClicked_: function() {
- this.onButtonClicked_(-1);
- },
-
- /**
- * Takes care of showing/hiding the collate option.
- * @private
- */
- showHideCollateOption_: function() {
- this.collateOption_.hidden = this.numberOfCopies <= 1;
- },
-
- /*
- * Takes care of showing/hiding the two sided option.
- * @param {number} defaultDuplexValue Specifies the default duplex value.
- * @private
- */
- updateTwoSidedOption_: function(defaultDuplexValue) {
- // On Windows, some printers don't specify their duplex values in the
- // printer schema. If the printer duplex value is UNKNOWN_DUPLEX_MODE,
- // hide the two sided option in preview tab UI.
- // Ref bug: http://crbug.com/89204
- this.twoSidedOption_.hidden =
- (defaultDuplexValue == CopiesSettings.UNKNOWN_DUPLEX_MODE);
-
- if (!this.twoSidedOption_.hidden) {
- this.twoSidedCheckbox_.checked = !!defaultDuplexValue;
- if (pageSettings.totalPageCount)
- cr.dispatchSimpleEvent(document, customEvents.UPDATE_SUMMARY);
- }
- },
-
- /**
- * Updates the state of the increment/decrement buttons based on the current
- * |textfield_| value.
- * @private
- */
- updateButtonsState_: function() {
- if (!this.isValid()) {
- this.textfield_.classList.add('invalid');
- this.incrementButton_.disabled = false;
- this.decrementButton_.disabled = false;
- fadeInElement(this.hint_);
- } else {
- this.textfield_.classList.remove('invalid');
- this.incrementButton_.disabled = this.numberOfCopies == this.maxValue_;
- this.decrementButton_.disabled = this.numberOfCopies == this.minValue_;
- fadeOutElement(this.hint_);
- }
- this.hint_.setAttribute('aria-hidden', this.isValid());
- }
- };
-
- return {
- CopiesSettings: CopiesSettings
- };
-});