| OLD | NEW |
| 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 * Toggles visibility of the specified printing options sections. | 9 * Toggles visibility of the specified printing options sections. |
| 10 * @param {!print_preview.DestinationStore} destinationStore To listen for | 10 * @param {!print_preview.DestinationStore} destinationStore To listen for |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 this.settingsSections_ = settingsSections; | 24 this.settingsSections_ = settingsSections; |
| 25 | 25 |
| 26 /** @private {MoreSettings.SettingsToShow} */ | 26 /** @private {MoreSettings.SettingsToShow} */ |
| 27 this.settingsToShow_ = MoreSettings.SettingsToShow.MOST_POPULAR; | 27 this.settingsToShow_ = MoreSettings.SettingsToShow.MOST_POPULAR; |
| 28 | 28 |
| 29 /** @private {boolean} */ | 29 /** @private {boolean} */ |
| 30 this.capabilitiesReady_ = false; | 30 this.capabilitiesReady_ = false; |
| 31 | 31 |
| 32 /** @private {boolean} */ | 32 /** @private {boolean} */ |
| 33 this.firstDestinationReady_ = false; | 33 this.firstDestinationReady_ = false; |
| 34 |
| 35 /** |
| 36 * Used to record usage statistics. |
| 37 * @private {!print_preview.PrintSettingsUiMetricsContext} |
| 38 */ |
| 39 this.metrics_ = new print_preview.PrintSettingsUiMetricsContext(); |
| 34 }; | 40 }; |
| 35 | 41 |
| 36 /** | 42 /** |
| 37 * Which settings are visible to the user. | 43 * Which settings are visible to the user. |
| 38 * @enum {number} | 44 * @enum {number} |
| 39 */ | 45 */ |
| 40 MoreSettings.SettingsToShow = { | 46 MoreSettings.SettingsToShow = { |
| 41 MOST_POPULAR: 1, | 47 MOST_POPULAR: 1, |
| 42 ALL: 2 | 48 ALL: 2 |
| 43 }; | 49 }; |
| 44 | 50 |
| 45 MoreSettings.prototype = { | 51 MoreSettings.prototype = { |
| 46 __proto__: print_preview.Component.prototype, | 52 __proto__: print_preview.Component.prototype, |
| 47 | 53 |
| 54 /** @return {boolean} Returns {@code true} if settings are expanded. */ |
| 55 get isExpanded() { |
| 56 return this.settingsToShow_ == MoreSettings.SettingsToShow.ALL; |
| 57 }, |
| 58 |
| 48 /** @override */ | 59 /** @override */ |
| 49 enterDocument: function() { | 60 enterDocument: function() { |
| 50 print_preview.Component.prototype.enterDocument.call(this); | 61 print_preview.Component.prototype.enterDocument.call(this); |
| 51 | 62 |
| 52 this.tracker.add(this.getElement(), 'click', this.onClick_.bind(this)); | 63 this.tracker.add(this.getElement(), 'click', this.onClick_.bind(this)); |
| 53 this.tracker.add( | 64 this.tracker.add( |
| 54 this.destinationStore_, | 65 this.destinationStore_, |
| 55 print_preview.DestinationStore.EventType.DESTINATION_SELECT, | 66 print_preview.DestinationStore.EventType.DESTINATION_SELECT, |
| 56 this.onDestinationChanged_.bind(this)); | 67 this.onDestinationChanged_.bind(this)); |
| 57 this.tracker.add( | 68 this.tracker.add( |
| (...skipping 15 matching lines...) Expand all Loading... |
| 73 * Toggles "more/fewer options" state and notifies all the options sections | 84 * Toggles "more/fewer options" state and notifies all the options sections |
| 74 * to reflect the new state. | 85 * to reflect the new state. |
| 75 * @private | 86 * @private |
| 76 */ | 87 */ |
| 77 onClick_: function() { | 88 onClick_: function() { |
| 78 this.settingsToShow_ = | 89 this.settingsToShow_ = |
| 79 this.settingsToShow_ == MoreSettings.SettingsToShow.MOST_POPULAR ? | 90 this.settingsToShow_ == MoreSettings.SettingsToShow.MOST_POPULAR ? |
| 80 MoreSettings.SettingsToShow.ALL : | 91 MoreSettings.SettingsToShow.ALL : |
| 81 MoreSettings.SettingsToShow.MOST_POPULAR; | 92 MoreSettings.SettingsToShow.MOST_POPULAR; |
| 82 this.updateState_(false); | 93 this.updateState_(false); |
| 94 this.metrics_.record(this.isExpanded ? |
| 95 print_preview.Metrics.PrintSettingsUiBucket.MORE_SETTINGS_CLICKED : |
| 96 print_preview.Metrics.PrintSettingsUiBucket.LESS_SETTINGS_CLICKED); |
| 83 }, | 97 }, |
| 84 | 98 |
| 85 /** | 99 /** |
| 86 * Called when the destination selection has changed. Updates UI elements. | 100 * Called when the destination selection has changed. Updates UI elements. |
| 87 * @private | 101 * @private |
| 88 */ | 102 */ |
| 89 onDestinationChanged_: function() { | 103 onDestinationChanged_: function() { |
| 90 this.firstDestinationReady_ = true; | 104 this.firstDestinationReady_ = true; |
| 91 this.capabilitiesReady_ = false; | 105 this.capabilitiesReady_ = false; |
| 92 this.updateState_(false); | 106 this.updateState_(false); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 section.setCollapseContent(collapseContent, noAnimation); | 163 section.setCollapseContent(collapseContent, noAnimation); |
| 150 }); | 164 }); |
| 151 } | 165 } |
| 152 }; | 166 }; |
| 153 | 167 |
| 154 // Export | 168 // Export |
| 155 return { | 169 return { |
| 156 MoreSettings: MoreSettings | 170 MoreSettings: MoreSettings |
| 157 }; | 171 }; |
| 158 }); | 172 }); |
| OLD | NEW |