OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * 'settings-date-time-page' is the settings page containing date and time | 7 * 'settings-date-time-page' is the settings page containing date and time |
8 * settings. | 8 * settings. |
9 */ | 9 */ |
10 | 10 |
(...skipping 24 matching lines...) Expand all Loading... |
35 value: function() { | 35 value: function() { |
36 if (!loadTimeData.valueExists('timeZoneAutoDetectValueFromPolicy')) | 36 if (!loadTimeData.valueExists('timeZoneAutoDetectValueFromPolicy')) |
37 return settings.TimeZoneAutoDetectPolicy.NONE; | 37 return settings.TimeZoneAutoDetectPolicy.NONE; |
38 return loadTimeData.getBoolean('timeZoneAutoDetectValueFromPolicy') ? | 38 return loadTimeData.getBoolean('timeZoneAutoDetectValueFromPolicy') ? |
39 settings.TimeZoneAutoDetectPolicy.FORCED_ON : | 39 settings.TimeZoneAutoDetectPolicy.FORCED_ON : |
40 settings.TimeZoneAutoDetectPolicy.FORCED_OFF; | 40 settings.TimeZoneAutoDetectPolicy.FORCED_OFF; |
41 }, | 41 }, |
42 }, | 42 }, |
43 | 43 |
44 /** | 44 /** |
45 * Whether a policy controls the time zone auto-detect setting. | |
46 * @private | |
47 */ | |
48 hasTimeZoneAutoDetectPolicy_: { | |
49 type: Boolean, | |
50 computed: | |
51 'computeHasTimeZoneAutoDetectPolicy_(timeZoneAutoDetectPolicy_)', | |
52 }, | |
53 | |
54 /** | |
55 * The effective time zone auto-detect setting. | 45 * The effective time zone auto-detect setting. |
56 * @private | 46 * @private |
57 */ | 47 */ |
58 timeZoneAutoDetect_: { | 48 timeZoneAutoDetect_: { |
59 type: Boolean, | 49 type: Boolean, |
60 computed: 'computeTimeZoneAutoDetect_(' + | 50 computed: 'computeTimeZoneAutoDetect_(' + |
61 'timeZoneAutoDetectPolicy_,' + | 51 'timeZoneAutoDetectPolicy_,' + |
62 'prefs.settings.resolve_timezone_by_geolocation.value)', | 52 'prefs.settings.resolve_timezone_by_geolocation.value)', |
63 }, | 53 }, |
64 | 54 |
(...skipping 19 matching lines...) Expand all Loading... |
84 * @private | 74 * @private |
85 */ | 75 */ |
86 canSetDateTime_: { | 76 canSetDateTime_: { |
87 type: Boolean, | 77 type: Boolean, |
88 value: false, | 78 value: false, |
89 }, | 79 }, |
90 }, | 80 }, |
91 | 81 |
92 observers: [ | 82 observers: [ |
93 'maybeGetTimeZoneList_(' + | 83 'maybeGetTimeZoneList_(' + |
94 'prefs.cros.system.timezone.value, timeZoneAutoDetect_)', | 84 'prefs.settings.timezone.value, timeZoneAutoDetect_)', |
95 ], | 85 ], |
96 | 86 |
97 /** @override */ | 87 /** @override */ |
98 attached: function() { | 88 attached: function() { |
99 this.addWebUIListener( | 89 this.addWebUIListener( |
100 'time-zone-auto-detect-policy', | 90 'time-zone-auto-detect-policy', |
101 this.onTimeZoneAutoDetectPolicyChanged_.bind(this)); | 91 this.onTimeZoneAutoDetectPolicyChanged_.bind(this)); |
102 this.addWebUIListener( | 92 this.addWebUIListener( |
103 'can-set-date-time-changed', this.onCanSetDateTimeChanged_.bind(this)); | 93 'can-set-date-time-changed', this.onCanSetDateTimeChanged_.bind(this)); |
104 | 94 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 'settings.resolve_timezone_by_geolocation', e.target.checked); | 129 'settings.resolve_timezone_by_geolocation', e.target.checked); |
140 }, | 130 }, |
141 | 131 |
142 /** @private */ | 132 /** @private */ |
143 onSetDateTimeTap_: function() { | 133 onSetDateTimeTap_: function() { |
144 chrome.send('showSetDateTimeUI'); | 134 chrome.send('showSetDateTimeUI'); |
145 }, | 135 }, |
146 | 136 |
147 /** | 137 /** |
148 * @param {settings.TimeZoneAutoDetectPolicy} timeZoneAutoDetectPolicy | 138 * @param {settings.TimeZoneAutoDetectPolicy} timeZoneAutoDetectPolicy |
149 * @return {boolean} | |
150 * @private | |
151 */ | |
152 computeHasTimeZoneAutoDetectPolicy_: function(timeZoneAutoDetectPolicy) { | |
153 return timeZoneAutoDetectPolicy != settings.TimeZoneAutoDetectPolicy.NONE; | |
154 }, | |
155 | |
156 /** | |
157 * @param {settings.TimeZoneAutoDetectPolicy} timeZoneAutoDetectPolicy | |
158 * @param {boolean} prefValue Value of the geolocation pref. | 139 * @param {boolean} prefValue Value of the geolocation pref. |
159 * @return {boolean} Whether time zone auto-detect is enabled. | 140 * @return {boolean} Whether time zone auto-detect is enabled. |
160 * @private | 141 * @private |
161 */ | 142 */ |
162 computeTimeZoneAutoDetect_: function(timeZoneAutoDetectPolicy, prefValue) { | 143 computeTimeZoneAutoDetect_: function(timeZoneAutoDetectPolicy, prefValue) { |
163 switch (timeZoneAutoDetectPolicy) { | 144 switch (timeZoneAutoDetectPolicy) { |
164 case settings.TimeZoneAutoDetectPolicy.NONE: | 145 case settings.TimeZoneAutoDetectPolicy.NONE: |
165 return prefValue; | 146 return prefValue; |
166 case settings.TimeZoneAutoDetectPolicy.FORCED_ON: | 147 case settings.TimeZoneAutoDetectPolicy.FORCED_ON: |
167 return true; | 148 return true; |
168 case settings.TimeZoneAutoDetectPolicy.FORCED_OFF: | 149 case settings.TimeZoneAutoDetectPolicy.FORCED_OFF: |
169 return false; | 150 return false; |
170 default: | 151 default: |
171 assertNotReached(); | 152 assertNotReached(); |
172 } | 153 } |
173 }, | 154 }, |
174 | 155 |
175 /** | 156 /** |
176 * Fetches the list of time zones if necessary. | 157 * Fetches the list of time zones if necessary. |
177 * @private | 158 * @private |
178 */ | 159 */ |
179 maybeGetTimeZoneList_: function() { | 160 maybeGetTimeZoneList_: function() { |
180 // Only fetch the list once. | 161 // Only fetch the list once. |
181 if (this.timeZoneList_.length > 1 || !CrSettingsPrefs.isInitialized) | 162 if (this.timeZoneList_.length > 1 || !CrSettingsPrefs.isInitialized) |
182 return; | 163 return; |
183 | 164 |
184 // If auto-detect is enabled, we only need the current time zone. | 165 // If auto-detect is enabled, we only need the current time zone. |
185 if (this.timeZoneAutoDetect_ && | 166 if (this.timeZoneAutoDetect_ && |
186 this.getPref('cros.system.timezone').value == | 167 this.getPref('settings.timezone').value == |
187 this.timeZoneList_[0].value) { | 168 this.timeZoneList_[0].value) { |
188 return; | 169 return; |
189 } | 170 } |
190 | 171 |
191 cr.sendWithPromise('getTimeZones').then(this.setTimeZoneList_.bind(this)); | 172 cr.sendWithPromise('getTimeZones').then(this.setTimeZoneList_.bind(this)); |
192 }, | 173 }, |
193 | 174 |
194 /** | 175 /** |
195 * Converts the C++ response into an array of menu options. | 176 * Converts the C++ response into an array of menu options. |
196 * @param {!Array<!Array<string>>} timeZones C++ time zones response. | 177 * @param {!Array<!Array<string>>} timeZones C++ time zones response. |
197 * @private | 178 * @private |
198 */ | 179 */ |
199 setTimeZoneList_: function(timeZones) { | 180 setTimeZoneList_: function(timeZones) { |
200 this.timeZoneList_ = timeZones.map(function(timeZonePair) { | 181 this.timeZoneList_ = timeZones.map(function(timeZonePair) { |
201 return { | 182 return { |
202 name: timeZonePair[1], | 183 name: timeZonePair[1], |
203 value: timeZonePair[0], | 184 value: timeZonePair[0], |
204 }; | 185 }; |
205 }); | 186 }); |
206 }, | 187 }, |
| 188 |
| 189 |
| 190 /** |
| 191 * Computes visibility of user timezone preference. |
| 192 * @param prefUserTimezone Object pref.settings.timezone |
| 193 * @param prefResolveValue Boolean |
| 194 * prefs.settings.resolve_timezone_by_geolocation.value |
| 195 * @private |
| 196 */ |
| 197 isUserTimeZoneSelectorHidden_: function(prefUserTimezone, prefResolveValue) { |
| 198 return (prefUserTimezone && prefUserTimezone.controlledBy != null) || |
| 199 (prefResolveValue == true); |
| 200 }, |
207 }); | 201 }); |
OLD | NEW |