Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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('options', function() { | 5 cr.define('options', function() { |
| 6 var OptionsPage = options.OptionsPage; | 6 var OptionsPage = options.OptionsPage; |
| 7 var ArrayDataModel = cr.ui.ArrayDataModel; | 7 var ArrayDataModel = cr.ui.ArrayDataModel; |
| 8 | 8 |
| 9 /** | 9 /** |
| 10 * ManageProfileOverlay class | 10 * ManageProfileOverlay class |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 41 OptionsPage.prototype.initializePage.call(this); | 41 OptionsPage.prototype.initializePage.call(this); |
| 42 | 42 |
| 43 var self = this; | 43 var self = this; |
| 44 options.ProfilesIconGrid.decorate($('manage-profile-icon-grid')); | 44 options.ProfilesIconGrid.decorate($('manage-profile-icon-grid')); |
| 45 options.ProfilesIconGrid.decorate($('create-profile-icon-grid')); | 45 options.ProfilesIconGrid.decorate($('create-profile-icon-grid')); |
| 46 self.registerCommonEventHandlers_('create', | 46 self.registerCommonEventHandlers_('create', |
| 47 self.submitCreateProfile_.bind(self)); | 47 self.submitCreateProfile_.bind(self)); |
| 48 self.registerCommonEventHandlers_('manage', | 48 self.registerCommonEventHandlers_('manage', |
| 49 self.submitManageChanges_.bind(self)); | 49 self.submitManageChanges_.bind(self)); |
| 50 | 50 |
| 51 // Override the create-profile-ok handler, to avoid closing the overlay | |
| 52 // until we finish creating the profile. | |
|
Andrew T Wilson (Slow)
2013/05/27 12:02:43
Do we need to guard against multiple clicks by dis
Pam (message me for reviews)
2013/05/27 14:34:37
I'd been pondering that. I don't think there's act
| |
| 53 $('create-profile-ok').onclick = function(event) { | |
| 54 ManageProfileOverlay.getInstance().hideErrorBubble_('create'); | |
| 55 self.submitCreateProfile_(); | |
| 56 }; | |
| 57 | |
| 51 if (loadTimeData.getBoolean('managedUsersEnabled')) { | 58 if (loadTimeData.getBoolean('managedUsersEnabled')) { |
| 52 $('create-profile-limited-container').hidden = false; | 59 $('create-profile-limited-container').hidden = false; |
| 53 } | 60 } |
| 54 $('manage-profile-cancel').onclick = | 61 $('manage-profile-cancel').onclick = |
| 55 $('delete-profile-cancel').onclick = | 62 $('delete-profile-cancel').onclick = |
| 56 $('create-profile-cancel').onclick = function(event) { | 63 $('create-profile-cancel').onclick = function(event) { |
| 57 OptionsPage.closeOverlay(); | 64 OptionsPage.closeOverlay(); |
| 58 }; | 65 }; |
| 59 $('delete-profile-ok').onclick = function(event) { | 66 $('delete-profile-ok').onclick = function(event) { |
| 60 OptionsPage.closeOverlay(); | 67 OptionsPage.closeOverlay(); |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 221 receiveHasProfileShortcuts_: function(hasShortcuts) { | 228 receiveHasProfileShortcuts_: function(hasShortcuts) { |
| 222 $('add-shortcut-button').hidden = hasShortcuts; | 229 $('add-shortcut-button').hidden = hasShortcuts; |
| 223 $('remove-shortcut-button').hidden = !hasShortcuts; | 230 $('remove-shortcut-button').hidden = !hasShortcuts; |
| 224 }, | 231 }, |
| 225 | 232 |
| 226 /** | 233 /** |
| 227 * Display the error bubble, with |errorText| in the bubble. | 234 * Display the error bubble, with |errorText| in the bubble. |
| 228 * @param {string} errorText The localized string id to display as an error. | 235 * @param {string} errorText The localized string id to display as an error. |
| 229 * @param {string} mode A label that specifies the type of dialog | 236 * @param {string} mode A label that specifies the type of dialog |
| 230 * box which is currently being viewed (i.e. 'create' or | 237 * box which is currently being viewed (i.e. 'create' or |
| 231 * 'manage'). | 238 * 'manage'). |
|
Andrew T Wilson (Slow)
2013/05/27 12:02:43
document new parameter.
| |
| 232 * @private | 239 * @private |
| 233 */ | 240 */ |
| 234 showErrorBubble_: function(errorText, mode) { | 241 showErrorBubble_: function(errorText, mode, disableOKButton) { |
| 235 var nameErrorEl = $(mode + '-profile-error-bubble'); | 242 var nameErrorEl = $(mode + '-profile-error-bubble'); |
| 236 nameErrorEl.hidden = false; | 243 nameErrorEl.hidden = false; |
| 237 nameErrorEl.textContent = loadTimeData.getString(errorText); | 244 nameErrorEl.textContent = loadTimeData.getString(errorText); |
| 238 | 245 |
| 239 $(mode + '-profile-ok').disabled = true; | 246 if (disableOKButton) |
| 247 $(mode + '-profile-ok').disabled = true; | |
| 240 }, | 248 }, |
| 241 | 249 |
| 242 /** | 250 /** |
| 243 * Hide the error bubble. | 251 * Hide the error bubble. |
| 244 * @param {string} mode A label that specifies the type of dialog | 252 * @param {string} mode A label that specifies the type of dialog |
| 245 * box which is currently being viewed (i.e. 'create' or | 253 * box which is currently being viewed (i.e. 'create' or |
| 246 * 'manage'). | 254 * 'manage'). |
| 247 * @private | 255 * @private |
| 248 */ | 256 */ |
| 249 hideErrorBubble_: function(mode) { | 257 hideErrorBubble_: function(mode) { |
| 250 $(mode + '-profile-error-bubble').hidden = true; | 258 $(mode + '-profile-error-bubble').hidden = true; |
| 251 $(mode + '-profile-ok').disabled = false; | 259 $(mode + '-profile-ok').disabled = false; |
| 252 }, | 260 }, |
| 253 | 261 |
| 254 /** | 262 /** |
| 255 * oninput callback for <input> field. | 263 * oninput callback for <input> field. |
| 256 * @param {Event} event The event object. | 264 * @param {Event} event The event object. |
| 257 * @param {string} mode A label that specifies the type of dialog | 265 * @param {string} mode A label that specifies the type of dialog |
| 258 * box which is currently being viewed (i.e. 'create' or | 266 * box which is currently being viewed (i.e. 'create' or |
| 259 * 'manage'). | 267 * 'manage'). |
| 260 * @private | 268 * @private |
| 261 */ | 269 */ |
| 262 onNameChanged_: function(event, mode) { | 270 onNameChanged_: function(event, mode) { |
| 263 var newName = event.target.value; | 271 var newName = event.target.value; |
| 264 var oldName = this.profileInfo_.name; | 272 var oldName = this.profileInfo_.name; |
| 265 | 273 |
| 266 if (newName == oldName) { | 274 if (newName == oldName) { |
| 267 this.hideErrorBubble_(mode); | 275 this.hideErrorBubble_(mode); |
| 268 } else if (this.profileNames_[newName] != undefined) { | 276 } else if (this.profileNames_[newName] != undefined) { |
| 269 this.showErrorBubble_('manageProfilesDuplicateNameError', mode); | 277 this.showErrorBubble_('manageProfilesDuplicateNameError', mode, true); |
| 270 } else { | 278 } else { |
| 271 this.hideErrorBubble_(mode); | 279 this.hideErrorBubble_(mode); |
| 272 | 280 |
| 273 var nameIsValid = $(mode + '-profile-name').validity.valid; | 281 var nameIsValid = $(mode + '-profile-name').validity.valid; |
| 274 $(mode + '-profile-ok').disabled = !nameIsValid; | 282 $(mode + '-profile-ok').disabled = !nameIsValid; |
| 275 } | 283 } |
| 276 }, | 284 }, |
| 277 | 285 |
| 278 /** | 286 /** |
| 279 * Called when the user clicks "OK" or hits enter. Saves the newly changed | 287 * Called when the user clicks "OK" or hits enter. Saves the newly changed |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 293 * using the information in the dialog. | 301 * using the information in the dialog. |
| 294 * @private | 302 * @private |
| 295 */ | 303 */ |
| 296 submitCreateProfile_: function() { | 304 submitCreateProfile_: function() { |
| 297 // Get the user's chosen name and icon, or default if they do not | 305 // Get the user's chosen name and icon, or default if they do not |
| 298 // wish to customize their profile. | 306 // wish to customize their profile. |
| 299 var name = $('create-profile-name').value; | 307 var name = $('create-profile-name').value; |
| 300 var iconUrl = $('create-profile-icon-grid').selectedItem; | 308 var iconUrl = $('create-profile-icon-grid').selectedItem; |
| 301 var createShortcut = $('create-shortcut').checked; | 309 var createShortcut = $('create-shortcut').checked; |
| 302 var isManaged = $('create-profile-limited').checked; | 310 var isManaged = $('create-profile-limited').checked; |
| 311 | |
| 312 // 'createProfile' is handled by the BrowserOptionsHandler. | |
| 303 chrome.send('createProfile', | 313 chrome.send('createProfile', |
| 304 [name, iconUrl, createShortcut, isManaged]); | 314 [name, iconUrl, createShortcut, isManaged]); |
| 305 }, | 315 }, |
| 306 | 316 |
| 307 /** | 317 /** |
| 308 * Called when the selected icon in the icon grid changes. | 318 * Called when the selected icon in the icon grid changes. |
| 309 * @param {string} mode A label that specifies the type of dialog | 319 * @param {string} mode A label that specifies the type of dialog |
| 310 * box which is currently being viewed (i.e. 'create' or | 320 * box which is currently being viewed (i.e. 'create' or |
| 311 * 'manage'). | 321 * 'manage'). |
| 312 * @private | 322 * @private |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 411 didShowPage: function() { | 421 didShowPage: function() { |
| 412 chrome.send('requestSignedInText'); | 422 chrome.send('requestSignedInText'); |
| 413 chrome.send('requestDefaultProfileIcons'); | 423 chrome.send('requestDefaultProfileIcons'); |
| 414 chrome.send('requestNewProfileDefaults'); | 424 chrome.send('requestNewProfileDefaults'); |
| 415 | 425 |
| 416 $('manage-profile-overlay-create').hidden = false; | 426 $('manage-profile-overlay-create').hidden = false; |
| 417 $('manage-profile-overlay-manage').hidden = true; | 427 $('manage-profile-overlay-manage').hidden = true; |
| 418 $('manage-profile-overlay-delete').hidden = true; | 428 $('manage-profile-overlay-delete').hidden = true; |
| 419 $('create-profile-instructions').textContent = | 429 $('create-profile-instructions').textContent = |
| 420 loadTimeData.getStringF('createProfileInstructions'); | 430 loadTimeData.getStringF('createProfileInstructions'); |
| 421 ManageProfileOverlay.getInstance().hideErrorBubble_('create'); | 431 this.hideErrorBubble_(); |
| 422 | 432 |
| 423 var shortcutsEnabled = loadTimeData.getBoolean('profileShortcutsEnabled'); | 433 var shortcutsEnabled = loadTimeData.getBoolean('profileShortcutsEnabled'); |
| 424 $('create-shortcut-container').hidden = !shortcutsEnabled; | 434 $('create-shortcut-container').hidden = !shortcutsEnabled; |
| 425 $('create-shortcut').checked = shortcutsEnabled; | 435 $('create-shortcut').checked = shortcutsEnabled; |
| 426 | 436 |
| 427 $('create-profile-name-label').hidden = true; | 437 $('create-profile-name-label').hidden = true; |
| 428 $('create-profile-name').hidden = true; | 438 $('create-profile-name').hidden = true; |
| 429 $('create-profile-ok').disabled = true; | 439 $('create-profile-ok').disabled = true; |
| 430 }, | 440 }, |
| 431 | 441 |
| 442 /** @override */ | |
| 443 showErrorBubble_: function(errorText) { | |
| 444 ManageProfileOverlay.getInstance().showErrorBubble_(errorText, | |
| 445 'create', | |
| 446 false); | |
| 447 }, | |
| 448 | |
| 449 /** @override */ | |
| 450 hideErrorBubble_: function() { | |
| 451 ManageProfileOverlay.getInstance().hideErrorBubble_('create'); | |
| 452 }, | |
| 453 | |
| 454 /** | |
| 455 * Shows an error message describing a local error (most likely a disk | |
| 456 * error) when creating a new profile. Called by BrowserOptions via the | |
| 457 * BrowserOptionsHandler. | |
| 458 * @private | |
| 459 */ | |
| 460 onLocalError_: function() { | |
| 461 this.showErrorBubble_('createProfileLocalError'); | |
| 462 }, | |
| 463 | |
| 464 /** | |
| 465 * For new limited users, shows a confirmation page after successfully | |
| 466 * creating a new profile; otherwise, the handler will open a new window. | |
| 467 * @private | |
| 468 */ | |
| 469 onSuccess_: function(is_managed) { | |
|
Pam (message me for reviews)
2013/05/27 08:17:25
I will change this to isManaged before committing.
| |
| 470 OptionsPage.closeOverlay(); | |
| 471 if (is_managed) { | |
| 472 // TODO(pamg): Fill out this stub. | |
| 473 console.log('Success - show confirmation'); | |
| 474 } | |
| 475 }, | |
| 476 | |
| 432 /** | 477 /** |
| 433 * Updates the signed-in or not-signed-in UI when in create mode. Called by | 478 * Updates the signed-in or not-signed-in UI when in create mode. Called by |
| 434 * the handler in response to the 'requestSignedInText' message. | 479 * the handler in response to the 'requestSignedInText' message. |
| 435 * @param {string} text The text to show for a signed-in user. An empty | 480 * @param {string} text The text to show for a signed-in user. An empty |
| 436 * string indicates that the user is not signed in. | 481 * string indicates that the user is not signed in. |
| 437 * @private | 482 * @private |
| 438 */ | 483 */ |
| 439 updateSignedInStatus_: function(text) { | 484 updateSignedInStatus_: function(text) { |
| 440 var isSignedIn = text !== ''; | 485 var isSignedIn = text !== ''; |
| 441 $('create-profile-limited-signed-in').hidden = !isSignedIn; | 486 $('create-profile-limited-signed-in').hidden = !isSignedIn; |
| 442 $('create-profile-limited-not-signed-in').hidden = isSignedIn; | 487 $('create-profile-limited-not-signed-in').hidden = isSignedIn; |
| 443 $('create-profile-limited').disabled = !isSignedIn; | 488 $('create-profile-limited').disabled = !isSignedIn; |
| 444 | 489 |
| 445 $('create-profile-limited-signed-in-label').textContent = text; | 490 $('create-profile-limited-signed-in-label').textContent = text; |
| 446 }, | 491 }, |
| 447 }; | 492 }; |
| 448 | 493 |
| 449 // Forward public APIs to private implementations. | 494 // Forward public APIs to private implementations. |
| 450 [ | 495 [ |
| 496 'onLocalError', | |
| 497 'onSuccess', | |
| 451 'updateSignedInStatus', | 498 'updateSignedInStatus', |
| 452 ].forEach(function(name) { | 499 ].forEach(function(name) { |
| 453 CreateProfileOverlay[name] = function() { | 500 CreateProfileOverlay[name] = function() { |
| 454 var instance = CreateProfileOverlay.getInstance(); | 501 var instance = CreateProfileOverlay.getInstance(); |
| 455 return instance[name + '_'].apply(instance, arguments); | 502 return instance[name + '_'].apply(instance, arguments); |
| 456 }; | 503 }; |
| 457 }); | 504 }); |
| 458 | 505 |
| 459 // Export | 506 // Export |
| 460 return { | 507 return { |
| 461 ManageProfileOverlay: ManageProfileOverlay, | 508 ManageProfileOverlay: ManageProfileOverlay, |
| 462 CreateProfileOverlay: CreateProfileOverlay, | 509 CreateProfileOverlay: CreateProfileOverlay, |
| 463 }; | 510 }; |
| 464 }); | 511 }); |
| OLD | NEW |