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

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

Issue 477133004: Printe Preview: add 'More/less options' button and make non-essential sections collapsible (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Print Preview UI tests adjusted. Created 6 years, 4 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/other_options_settings.js
diff --git a/chrome/browser/resources/print_preview/settings/other_options_settings.js b/chrome/browser/resources/print_preview/settings/other_options_settings.js
index 4b935395990d04ba8af5fc8527b36eccf39a317d..dd8a3fde574580ca9e320380906c76beea715658 100644
--- a/chrome/browser/resources/print_preview/settings/other_options_settings.js
+++ b/chrome/browser/resources/print_preview/settings/other_options_settings.js
@@ -17,11 +17,11 @@ cr.define('print_preview', function() {
* @param {!print_preview.ticket_items.HeaderFooter} headerFooter Header
* footer ticket item.
* @constructor
- * @extends {print_preview.Component}
+ * @extends {print_preview.SettingsSection}
*/
function OtherOptionsSettings(
duplex, fitToPage, cssBackground, selectionOnly, headerFooter) {
- print_preview.Component.call(this);
+ print_preview.SettingsSection.call(this);
/**
* Duplex ticket item, used to read/write the duplex selection.
@@ -130,9 +130,26 @@ cr.define('print_preview', function() {
};
OtherOptionsSettings.prototype = {
- __proto__: print_preview.Component.prototype,
+ __proto__: print_preview.SettingsSection.prototype,
- /** @param {boolean} isEnabled Whether the settings is enabled. */
+ /** @override */
+ isAvailable: function() {
+ return this.headerFooterTicketItem_.isCapabilityAvailable() ||
+ this.fitToPageTicketItem_.isCapabilityAvailable() ||
+ this.duplexTicketItem_.isCapabilityAvailable() ||
+ this.cssBackgroundTicketItem_.isCapabilityAvailable() ||
+ this.selectionOnlyTicketItem_.isCapabilityAvailable();
+ },
+
+ /** @override */
+ hasCollapsibleContent: function() {
+ return this.headerFooterTicketItem_.isCapabilityAvailable() ||
+ this.fitToPageTicketItem_.isCapabilityAvailable() ||
+ this.cssBackgroundTicketItem_.isCapabilityAvailable() ||
+ this.selectionOnlyTicketItem_.isCapabilityAvailable();
+ },
+
+ /** @override */
set isEnabled(isEnabled) {
this.headerFooterCheckbox_.disabled = !isEnabled;
this.fitToPageCheckbox_.disabled = !isEnabled;
@@ -142,8 +159,7 @@ cr.define('print_preview', function() {
/** @override */
enterDocument: function() {
- print_preview.Component.prototype.enterDocument.call(this);
- fadeOutOption(this.getElement(), true);
+ print_preview.SettingsSection.prototype.enterDocument.call(this);
this.tracker.add(
this.headerFooterCheckbox_,
'click',
@@ -188,7 +204,7 @@ cr.define('print_preview', function() {
/** @override */
exitDocument: function() {
- print_preview.Component.prototype.exitDocument.call(this);
+ print_preview.SettingsSection.prototype.exitDocument.call(this);
this.headerFooterContainer_ = null;
this.headerFooterCheckbox_ = null;
this.fitToPageContainer_ = null;
@@ -225,30 +241,31 @@ cr.define('print_preview', function() {
'.selection-only-checkbox');
},
- /**
- * Updates the state of the entire other options settings area.
- * @private
- */
- updateContainerState_: function() {
- if (this.headerFooterTicketItem_.isCapabilityAvailable() ||
- this.fitToPageTicketItem_.isCapabilityAvailable() ||
- this.duplexTicketItem_.isCapabilityAvailable() ||
- this.cssBackgroundTicketItem_.isCapabilityAvailable() ||
- this.selectionOnlyTicketItem_.isCapabilityAvailable()) {
+ /** @override */
+ updateUiStateInternal: function() {
+ if (this.isAvailable()) {
setIsVisible(this.headerFooterContainer_,
- this.headerFooterTicketItem_.isCapabilityAvailable());
+ this.headerFooterTicketItem_.isCapabilityAvailable() &&
+ !this.collapseContent);
setIsVisible(this.fitToPageContainer_,
- this.fitToPageTicketItem_.isCapabilityAvailable());
+ this.fitToPageTicketItem_.isCapabilityAvailable() &&
+ !this.collapseContent);
setIsVisible(this.duplexContainer_,
this.duplexTicketItem_.isCapabilityAvailable());
setIsVisible(this.cssBackgroundContainer_,
- this.cssBackgroundTicketItem_.isCapabilityAvailable());
+ this.cssBackgroundTicketItem_.isCapabilityAvailable() &&
+ !this.collapseContent);
setIsVisible(this.selectionOnlyContainer_,
- this.selectionOnlyTicketItem_.isCapabilityAvailable());
- fadeInOption(this.getElement());
- } else {
- fadeOutOption(this.getElement());
+ this.selectionOnlyTicketItem_.isCapabilityAvailable() &&
+ !this.collapseContent);
}
+ print_preview.SettingsSection.prototype.updateUiStateInternal.call(this);
+ },
+
+ /** @override */
+ isSectionVisibleInternal: function() {
+ return this.collapseContent ?
+ this.duplexTicketItem_.isCapabilityAvailable() : this.isAvailable();
},
/**
@@ -305,7 +322,7 @@ cr.define('print_preview', function() {
*/
onDuplexChange_: function() {
this.duplexCheckbox_.checked = this.duplexTicketItem_.getValue();
- this.updateContainerState_();
+ this.updateUiStateInternal();
},
/**
@@ -315,7 +332,7 @@ cr.define('print_preview', function() {
*/
onFitToPageChange_: function() {
this.fitToPageCheckbox_.checked = this.fitToPageTicketItem_.getValue();
- this.updateContainerState_();
+ this.updateUiStateInternal();
},
/**
@@ -326,7 +343,7 @@ cr.define('print_preview', function() {
onCssBackgroundChange_: function() {
this.cssBackgroundCheckbox_.checked =
this.cssBackgroundTicketItem_.getValue();
- this.updateContainerState_();
+ this.updateUiStateInternal();
},
/**
@@ -337,7 +354,7 @@ cr.define('print_preview', function() {
onSelectionOnlyChange_: function() {
this.selectionOnlyCheckbox_.checked =
this.selectionOnlyTicketItem_.getValue();
- this.updateContainerState_();
+ this.updateUiStateInternal();
},
/**
@@ -348,7 +365,7 @@ cr.define('print_preview', function() {
onHeaderFooterChange_: function() {
this.headerFooterCheckbox_.checked =
this.headerFooterTicketItem_.getValue();
- this.updateContainerState_();
+ this.updateUiStateInternal();
}
};

Powered by Google App Engine
This is Rietveld 408576698