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-people-page' is the settings page containing sign-in settings. | 7 * 'settings-people-page' is the settings page containing sign-in settings. |
8 */ | 8 */ |
9 Polymer({ | 9 Polymer({ |
10 is: 'settings-people-page', | 10 is: 'settings-people-page', |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 this.syncBrowserProxy_.signOut(deleteProfile); | 250 this.syncBrowserProxy_.signOut(deleteProfile); |
251 | 251 |
252 this.$.disconnectDialog.close(); | 252 this.$.disconnectDialog.close(); |
253 }, | 253 }, |
254 | 254 |
255 /** @private */ | 255 /** @private */ |
256 onSyncTap_: function() { | 256 onSyncTap_: function() { |
257 assert(this.syncStatus.signedIn); | 257 assert(this.syncStatus.signedIn); |
258 assert(this.syncStatus.syncSystemEnabled); | 258 assert(this.syncStatus.syncSystemEnabled); |
259 | 259 |
260 if (this.syncStatus.managed) | 260 if (!this.isSyncStatusActionable_(this.syncStatus)) |
261 return; | 261 return; |
262 | 262 |
263 settings.navigateTo(settings.Route.SYNC); | 263 switch (this.syncStatus.statusAction) { |
| 264 case settings.StatusAction.REAUTHENTICATE: |
| 265 <if expr="chromeos"> |
| 266 this.syncBrowserProxy_.attemptUserExit(); |
| 267 </if> |
| 268 <if expr="not chromeos"> |
| 269 if (this.syncStatus.domain) |
| 270 settings.navigateTo(settings.Route.SIGN_OUT); |
| 271 else { |
| 272 // Silently sign the user out without deleting their profile and |
| 273 // prompt them to sign back in. |
| 274 this.syncBrowserProxy_.signOut(false); |
| 275 this.syncBrowserProxy_.startSignIn(); |
| 276 } |
| 277 </if> |
| 278 break; |
| 279 case settings.StatusAction.UPGRADE_CLIENT: |
| 280 settings.navigateTo(settings.Route.ABOUT); |
| 281 break; |
| 282 case settings.StatusAction.ENTER_PASSPHRASE: |
| 283 case settings.StatusAction.NO_ACTION: |
| 284 default: |
| 285 settings.navigateTo(settings.Route.SYNC); |
| 286 } |
264 }, | 287 }, |
265 | 288 |
266 <if expr="chromeos"> | 289 <if expr="chromeos"> |
267 /** @private */ | 290 /** @private */ |
268 onConfigureLockTap_: function() { | 291 onConfigureLockTap_: function() { |
269 settings.navigateTo(settings.Route.LOCK_SCREEN); | 292 settings.navigateTo(settings.Route.LOCK_SCREEN); |
270 }, | 293 }, |
271 | 294 |
272 /** @private */ | 295 /** @private */ |
273 onEasyUnlockSetupTap_: function() { | 296 onEasyUnlockSetupTap_: function() { |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 * @return {boolean} | 353 * @return {boolean} |
331 */ | 354 */ |
332 isAdvancedSyncSettingsVisible_: function(syncStatus) { | 355 isAdvancedSyncSettingsVisible_: function(syncStatus) { |
333 return !!syncStatus && !!syncStatus.signedIn && | 356 return !!syncStatus && !!syncStatus.signedIn && |
334 !!syncStatus.syncSystemEnabled; | 357 !!syncStatus.syncSystemEnabled; |
335 }, | 358 }, |
336 | 359 |
337 /** | 360 /** |
338 * @private | 361 * @private |
339 * @param {?settings.SyncStatus} syncStatus | 362 * @param {?settings.SyncStatus} syncStatus |
| 363 * @return {boolean} Whether an action can be taken with the sync status. sync |
| 364 * status is actionable if sync is not managed and if there is a sync |
| 365 * error, there is an action associated with it. |
| 366 */ |
| 367 isSyncStatusActionable_: function(syncStatus) { |
| 368 return !!syncStatus && !syncStatus.managed && (!syncStatus.hasError || |
| 369 syncStatus.statusAction != settings.StatusAction.NO_ACTION); |
| 370 }, |
| 371 |
| 372 /** |
| 373 * @private |
| 374 * @param {?settings.SyncStatus} syncStatus |
340 * @return {string} | 375 * @return {string} |
341 */ | 376 */ |
342 getSyncIcon_: function(syncStatus) { | 377 getSyncIcon_: function(syncStatus) { |
343 if (!syncStatus) | 378 if (!syncStatus) |
344 return ''; | 379 return ''; |
| 380 |
| 381 var syncIcon = 'settings:sync'; |
| 382 |
345 if (syncStatus.hasError) | 383 if (syncStatus.hasError) |
346 return 'settings:sync-problem'; | 384 syncIcon = 'settings:sync-problem'; |
| 385 |
| 386 // Override the icon to the disabled icon if sync is managed. |
347 if (syncStatus.managed) | 387 if (syncStatus.managed) |
348 return 'settings:sync-disabled'; | 388 syncIcon = 'settings:sync-disabled'; |
349 | 389 |
350 return 'settings:sync'; | 390 return syncIcon; |
351 }, | 391 }, |
352 | 392 |
353 /** | 393 /** |
| 394 * @private |
| 395 * @param {?settings.SyncStatus} syncStatus |
| 396 * @return {string} The class name for the sync status text. |
| 397 */ |
| 398 getSyncStatusTextClass_: function(syncStatus) { |
| 399 return (!!syncStatus && syncStatus.hasError) ? 'sync-error' : ''; |
| 400 }, |
| 401 |
| 402 /** |
354 * @param {string} iconUrl | 403 * @param {string} iconUrl |
355 * @return {string} A CSS imageset for multiple scale factors. | 404 * @return {string} A CSS imageset for multiple scale factors. |
356 * @private | 405 * @private |
357 */ | 406 */ |
358 getIconImageset_: function(iconUrl) { | 407 getIconImageset_: function(iconUrl) { |
359 return cr.icon.getImage(iconUrl); | 408 return cr.icon.getImage(iconUrl); |
360 }, | 409 }, |
361 | 410 |
362 /** | 411 /** |
363 * @param {!settings.SyncStatus} syncStatus | 412 * @param {!settings.SyncStatus} syncStatus |
364 * @return {boolean} Whether to show the "Sign in to Chrome" button. | 413 * @return {boolean} Whether to show the "Sign in to Chrome" button. |
365 * @private | 414 * @private |
366 */ | 415 */ |
367 showSignin_: function(syncStatus) { | 416 showSignin_: function(syncStatus) { |
368 return !!syncStatus.signinAllowed && !syncStatus.signedIn; | 417 return !!syncStatus.signinAllowed && !syncStatus.signedIn; |
369 }, | 418 }, |
370 }); | 419 }); |
OLD | NEW |