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

Unified Diff: chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.js

Issue 14028005: Update locally managed user creation flow according to mocks (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix nits Created 7 years, 8 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/chromeos/login/screen_locally_managed_user_creation.js
diff --git a/chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.js b/chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.js
index 05dfbd03e559373420e8902e459b83b99d62cd9d..f605ee764ec41bf508157b0052fa93352f496e85 100644
--- a/chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.js
+++ b/chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.js
@@ -37,7 +37,7 @@ cr.define('login', function() {
managerPod.passwordErrorElement.hidden = true;
});
this.passwordElement.addEventListener('keyup', function(e) {
- screen.updateContinueButton_();
+ screen.updateNextButtonForManager_();
});
},
@@ -185,6 +185,9 @@ cr.define('login', function() {
podToSelect.passwordBlock.hidden = false;
podToSelect.passwordElement.value = '';
podToSelect.focusInput();
+ chrome.send('managerSelectedOnLocallyManagedUserCreationFlow',
+ [podToSelect.user.emailAddress]);
+
},
};
@@ -213,6 +216,9 @@ cr.define('login', function() {
currentPage_: null,
+ // Contains data that can be auto-shared with handler.
+ context_: {},
+
/** @override */
decorate: function() {
this.managerList_ = new ManagerPodList();
@@ -244,7 +250,7 @@ cr.define('login', function() {
if (e.keyIdentifier == 'Enter') {
if (passwordField.value.length > 0) {
password2Field.focus();
- creationScreen.updateContinueButton_();
+ creationScreen.updateNextButtonForUser_();
}
e.stopPropagation();
}
@@ -256,18 +262,18 @@ cr.define('login', function() {
if (passwordField.value.length > 0) {
if (creationScreen.managerList_.selectedPod_)
creationScreen.managerList_.selectedPod_.focusInput();
- creationScreen.updateContinueButton_();
+ creationScreen.updateNextButtonForUser_();
}
e.stopPropagation();
}
});
password2Field.addEventListener('keyup', function(e) {
- creationScreen.updateContinueButton_();
+ creationScreen.updateNextButtonForUser_();
});
passwordField.addEventListener('keyup', function(e) {
- creationScreen.updateContinueButton_();
+ creationScreen.updateNextButtonForUser_();
});
},
@@ -278,13 +284,29 @@ cr.define('login', function() {
get buttons() {
var buttons = [];
- var proceedButton = this.ownerDocument.createElement('button');
- proceedButton.id = 'managed-user-creation-flow-proceed-button';
+ var startButton = this.ownerDocument.createElement('button');
+ startButton.id = 'managed-user-creation-flow-start-button';
+
+ startButton.textContent = loadTimeData.
+ getString('managedUserCreationFlowStartButtonTitle');
+ startButton.hidden = true;
+ buttons.push(startButton);
+
+ var previousButton = this.ownerDocument.createElement('button');
+ previousButton.id = 'managed-user-creation-flow-prev-button';
+
+ previousButton.textContent = loadTimeData.
+ getString('managedUserCreationFlowPreviousButtonTitle');
+ previousButton.hidden = true;
+ buttons.push(previousButton);
- proceedButton.textContent = loadTimeData.
- getString('managedUserCreationFlowProceedButtonTitle');
- proceedButton.hidden = true;
- buttons.push(proceedButton);
+ var nextButton = this.ownerDocument.createElement('button');
+ nextButton.id = 'managed-user-creation-flow-next-button';
+
+ nextButton.textContent = loadTimeData.
+ getString('managedUserCreationFlowNextButtonTitle');
+ nextButton.hidden = true;
+ buttons.push(nextButton);
var finishButton = this.ownerDocument.createElement('button');
finishButton.id = 'managed-user-creation-flow-finish-button';
@@ -294,49 +316,59 @@ cr.define('login', function() {
finishButton.hidden = true;
buttons.push(finishButton);
- var retryButton = this.ownerDocument.createElement('button');
- retryButton.id = 'managed-user-creation-flow-retry-button';
-
- retryButton.textContent = loadTimeData.
- getString('managedUserCreationFlowRetryButtonTitle');
- retryButton.hidden = true;
- buttons.push(retryButton);
-
var cancelButton = this.ownerDocument.createElement('button');
cancelButton.id = 'managed-user-creation-flow-cancel-button';
- cancelButton.textContent = loadTimeData.
- getString('managedUserCreationFlowCancelButtonTitle');
- cancelButton.hidden = true;
- buttons.push(cancelButton);
-
var creationFlowScreen = this;
finishButton.addEventListener('click', function(e) {
- creationFlowScreen.finishFlow_();
+ creationFlowScreen.finishButtonPressed_();
e.stopPropagation();
});
- proceedButton.addEventListener('click', function(e) {
- creationFlowScreen.proceedFlow_();
+ startButton.addEventListener('click', function(e) {
+ creationFlowScreen.startButtonPressed_();
e.stopPropagation();
});
- retryButton.addEventListener('click', function(e) {
- creationFlowScreen.retryFlow_();
+ nextButton.addEventListener('click', function(e) {
+ creationFlowScreen.nextButtonPressed_();
e.stopPropagation();
});
- cancelButton.addEventListener('click', function(e) {
- creationFlowScreen.cancel();
+ previousButton.addEventListener('click', function(e) {
+ creationFlowScreen.prevButtonPressed_();
e.stopPropagation();
});
return buttons;
},
+
Nikita (slow) 2013/04/12 13:12:15 nit: Drop empty line.
/**
* Does sanity check and calls backend with current user name/password pair
- * to create a user. May result in showPasswordError.
+ * to authenticate manager. May result in showManagerPasswordError.
+ * @private
+ */
+ validateAndLogInAsManager_: function() {
+ var selectedPod = this.managerList_.selectedPod_;
+ if (null == selectedPod)
+ return;
+
+ var managerId = selectedPod.user.emailAddress;
+ var managerPassword = selectedPod.passwordElement.value;
+ if (managerPassword.empty)
+ return;
+
+ this.disabled = true;
+ this.context_.managerId = managerId;
+ chrome.send('authenticateManagerInLocallyManagedUserCreationFlow',
+ [managerId, managerPassword]);
+ },
+
+
+ /**
+ * Does sanity check and calls backend with user display name/password pair
+ * to create a user.
* @private
*/
- validateInputAndStartFlow_: function() {
+ validateAndCreateLocallyManagedUser_: function() {
var firstPassword = $('managed-user-creation-flow-password').value;
var secondPassword =
$('managed-user-creation-flow-password-confirm').value;
@@ -346,17 +378,10 @@ cr.define('login', function() {
loadTimeData.getString('createManagedUserPasswordMismatchError'));
return;
}
- var selectedPod = this.managerList_.selectedPod_;
- if (null == selectedPod)
- return;
-
- var managerId = selectedPod.user.emailAddress;
- var managerPassword = selectedPod.passwordElement.value;
this.disabled = true;
- // TODO(antrim) : we might use some minimal password validation
- // (e.g. non-empty etc.) here.
- chrome.send('runLocallyManagedUserCreationFlow',
- [userName, firstPassword, managerId, managerPassword]);
+ this.context_.managedName = userName;
+ chrome.send('specifyLocallyManagedUserCreationFlowUserData',
+ [userName, firstPassword]);
},
/**
@@ -390,7 +415,7 @@ cr.define('login', function() {
this.lastIncorrectUserName_ = null;
if ($('managed-user-creation-flow-name').value == name)
this.clearUserNameError_();
- this.updateContinueButton_();
+ this.updateNextButtonForManager_();
},
/**
@@ -407,7 +432,7 @@ cr.define('login', function() {
this.nameErrorVisible = true;
$('managed-user-creation-flow-name-error').textContent = errorText;
- this.setButtonDisabledStatus('proceed', true);
+ this.setButtonDisabledStatus('next', true);
}
},
@@ -433,7 +458,7 @@ cr.define('login', function() {
this.passwordErrorVisible = true;
$('managed-user-creation-flow-password').focus();
- this.setButtonDisabledStatus('proceed', true);
+ this.setButtonDisabledStatus('next', true);
},
/**
@@ -465,7 +490,21 @@ cr.define('login', function() {
* @return {boolean} true, if form seems to be valid.
* @private
*/
- updateContinueButton_: function() {
+ updateNextButtonForManager_: function() {
+ var selectedPod = this.managerList_.selectedPod_;
+ canProceed = null != selectedPod &&
+ selectedPod.passwordElement.value.length > 0;
+
+ this.setButtonDisabledStatus('next', !canProceed);
+ return canProceed;
+ },
+
+ /**
+ * Updates state of Continue button after minimal checks.
+ * @return {boolean} true, if form seems to be valid.
+ * @private
+ */
+ updateNextButtonForUser_: function() {
var firstPassword = $('managed-user-creation-flow-password').value;
var secondPassword =
$('managed-user-creation-flow-password-confirm').value;
@@ -477,12 +516,7 @@ cr.define('login', function() {
this.lastVerifiedName_ &&
(userName == this.lastVerifiedName_);
- var selectedPod = this.managerList_.selectedPod_;
- canProceed = canProceed &&
- null != selectedPod &&
- selectedPod.passwordElement.value.length > 0;
-
- this.setButtonDisabledStatus('proceed', !canProceed);
+ this.setButtonDisabledStatus('next', !canProceed);
return canProceed;
},
@@ -496,10 +530,6 @@ cr.define('login', function() {
/**
* Show final splash screen with success message.
*/
- showFinishedMessage: function() {
- this.setVisiblePage_('success');
- this.setVisibleButtons_(['finish']);
- },
/**
* Show error message.
@@ -510,38 +540,56 @@ cr.define('login', function() {
showErrorMessage: function(errorText, recoverable) {
$('managed-user-creation-flow-error-value').innerHTML = errorText;
this.setVisiblePage_('error');
- this.setVisibleButtons_(recoverable ? ['retry', 'cancel'] : ['cancel']);
+ this.setVisibleButtons_(['cancel']);
},
/**
* Enables one particular subpage and hides the rest.
- * @param {string} visiblePage - name of subpage (one of 'progress',
- * 'error', 'success')
+ * @param {string} visiblePage - name of subpage.
* @private
*/
setVisiblePage_: function(visiblePage) {
- var screenNames = ['initial', 'progress', 'error', 'success'];
+ this.disabled = false;
+ this.updateText_();
+ var screenNames = ['intro',
Nikita (slow) 2013/04/12 13:12:15 nit: These should be really renamed in the upcomin
+ 'manager',
+ 'username',
+ 'progress',
+ 'error',
+ 'tutorial'];
for (i in screenNames) {
var screenName = screenNames[i];
var screen = $('managed-user-creation-flow-' + screenName);
screen.hidden = (screenName != visiblePage);
+ if (screenName == visiblePage) {
+ $('step-logo').hidden = screen.classList.contains('step-no-logo');
+ }
}
this.currentPage_ = visiblePage;
},
/**
* Enables specific control buttons.
- * @param {List of strings} buttonsList - list of buttons to display (values
- * can be 'retry', 'finish', 'cancel')
+ * @param {List of strings} buttonsList - list of buttons to display.
* @private
*/
setVisibleButtons_: function(buttonsList) {
- var buttonNames = ['proceed', 'retry', 'finish', 'cancel'];
+ var buttonNames = ['start',
+ 'prev',
+ 'next',
+ 'cancel',
+ 'finish'];
for (i in buttonNames) {
var buttonName = buttonNames[i];
- var button = $('managed-user-creation-flow-' + buttonName + '-button');
- if (button)
+ var button;
+ if ('cancel' == buttonName)
+ button = $('cancel-add-user-button');
+ else
+ button = $('managed-user-creation-flow-' + buttonName + '-button');
+ if (button) {
button.hidden = buttonsList.indexOf(buttonName) < 0;
+ button.disabled = false;
+ }
}
},
@@ -550,17 +598,31 @@ cr.define('login', function() {
button.disabled = status;
},
- finishFlow_: function() {
+ finishButtonPressed_: function() {
chrome.send('finishLocalManagedUserCreation');
},
- proceedFlow_: function() {
- this.validateInputAndStartFlow_();
+ startButtonPressed_: function() {
+ this.setVisiblePage_('manager');
+ this.setVisibleButtons_(['next', 'prev', 'cancel']);
+ this.setButtonDisabledStatus('next', true);
},
- retryFlow_: function() {
- this.setVisiblePage_('progress');
- chrome.send('retryLocalManagedUserCreation');
+ nextButtonPressed_: function() {
+ if (this.currentPage_ == 'manager') {
+ this.validateAndLogInAsManager_();
+ return;
+ }
+ if (this.currentPage_ == 'username') {
+ this.validateAndCreateLocallyManagedUser_();
+ return;
+ }
+ },
+
+ prevButtonPressed_: function() {
+ this.setVisiblePage_('intro');
+ this.setVisibleButtons_(['start', 'cancel']);
+ return;
},
/**
@@ -616,7 +678,12 @@ cr.define('login', function() {
this.managerList_.clearPods();
for (var i = 0; i < userList.length; ++i)
this.managerList_.addPod(userList[i]);
- if (userList.length > 0)
+
+ var usersInPane = Math.min(userList.length, 5);
+ $('managed-user-creation-flow-managers-pane').style.height =
+ (usersInPane * 60 + 28) + 'px';
+
+ if (userList.length == 1)
this.managerList_.selectPod(this.managerList_.pods[0]);
},
@@ -624,7 +691,7 @@ cr.define('login', function() {
* Cancels user creation and drops to user screen (either sign).
*/
cancel: function() {
- var notSignedInScreens = ['initial'];
+ var notSignedInScreens = ['intro', 'manager'];
if (notSignedInScreens.indexOf(this.currentPage_) >= 0) {
// Make sure no manager password is kept:
this.managerList_.clearPods();
@@ -637,16 +704,21 @@ cr.define('login', function() {
}
chrome.send('abortLocalManagedUserCreation');
},
- };
- LocallyManagedUserCreationScreen.showProgressScreen = function() {
- var screen = $('managed-user-creation-flow');
- screen.disabled = false;
- screen.setVisiblePage_('progress');
- screen.setVisibleButtons_(['cancel']);
+ updateText_: function() {
+ $('managed-user-creation-flow-tutorial-created-text').textContent =
+ loadTimeData.getStringF('managedUserProfileCreatedMessageTemplate',
+ this.context_.managedName);
+
+ var boldEmail = '<b>' + this.context_.managerId + '</b>';
+ $('managed-user-creation-flow-tutorial-instructions-text').innerHTML =
+ loadTimeData.getStringF('managedUserInstructionTemplate',
+ boldEmail);
+ }
+
};
- LocallyManagedUserCreationScreen.showIntialScreen = function() {
+ LocallyManagedUserCreationScreen.showIntroPage = function() {
var screen = $('managed-user-creation-flow');
$('managed-user-creation-flow-password').value = '';
@@ -658,16 +730,32 @@ cr.define('login', function() {
screen.passwordErrorVisible = false;
screen.nameErrorVisible = false;
- screen.setButtonDisabledStatus('proceed', true);
+ screen.setVisiblePage_('intro');
+ screen.setVisibleButtons_(['start', 'cancel']);
+ };
- screen.setVisiblePage_('initial');
- screen.setVisibleButtons_(['proceed', 'cancel']);
+ LocallyManagedUserCreationScreen.showProgressPage = function() {
+ var screen = $('managed-user-creation-flow');
+ screen.setVisiblePage_('progress');
+ screen.setVisibleButtons_(['cancel']);
};
- LocallyManagedUserCreationScreen.showFinishedMessage = function() {
+ LocallyManagedUserCreationScreen.showManagerPage = function() {
var screen = $('managed-user-creation-flow');
- screen.disabled = false;
- screen.showFinishedMessage();
+ screen.setVisiblePage_('manager');
+ screen.setVisibleButtons_(['cancel']);
+ };
+
+ LocallyManagedUserCreationScreen.showUsernamePage = function() {
+ var screen = $('managed-user-creation-flow');
+ screen.setVisiblePage_('username');
+ screen.setVisibleButtons_(['next', 'cancel']);
+ };
+
+ LocallyManagedUserCreationScreen.showTutorialPage = function() {
+ var screen = $('managed-user-creation-flow');
+ screen.setVisiblePage_('tutorial');
+ screen.setVisibleButtons_(['finish']);
};
LocallyManagedUserCreationScreen.showManagerPasswordError = function() {
@@ -676,11 +764,11 @@ cr.define('login', function() {
screen.showSelectedManagerPasswordError_();
};
- LocallyManagedUserCreationScreen.showErrorMessage = function(errorText,
- recoverable) {
+ LocallyManagedUserCreationScreen.showErrorPage = function(errorText,
+ recoverable) {
var screen = $('managed-user-creation-flow');
screen.disabled = false;
- screen.showErrorMessage(errorText, recoverable);
+ screen.showErrorPage(errorText, recoverable);
};
LocallyManagedUserCreationScreen.managedUserNameOk = function(name) {
@@ -704,12 +792,6 @@ cr.define('login', function() {
screen.loadManagers(userList);
};
- LocallyManagedUserCreationScreen.showPostImageSelectionScreen =
- function(userList) {
- var screen = $('managed-user-creation-flow');
- screen.setVisiblePage_('success');
- };
-
return {
LocallyManagedUserCreationScreen: LocallyManagedUserCreationScreen
};

Powered by Google App Engine
This is Rietveld 408576698