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

Unified Diff: chrome/browser/resources/options/manage_profile_overlay.js

Issue 7845004: [Multi Profile] Don't allow the user to choose an empty profile name. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 3 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/options/manage_profile_overlay.js
diff --git a/chrome/browser/resources/options/manage_profile_overlay.js b/chrome/browser/resources/options/manage_profile_overlay.js
index ae97f12f87c3da19e4da92d6a4f7db5d84bf5d01..0bc99b07af4ea181589acee8567100930722cd6a 100644
--- a/chrome/browser/resources/options/manage_profile_overlay.js
+++ b/chrome/browser/resources/options/manage_profile_overlay.js
@@ -108,34 +108,47 @@ cr.define('options', function() {
},
/**
- * Determine whether |name| is valid; i.e. not equal to any other profile
- * name.
+ * Get the localized string id of the error to display if |name| is not
+ * valid.
* @param {string} name The profile name to validate.
- * @return true if the name is not equal to any other profile name.
+ * @return {string} The localString of the error to display to the user, or
+ * the empty string if there is no error.
* @private
*/
- isNameValid_: function(name) {
+ getNameErrorLocalStringId_: function(name) {
// if the name hasn't changed, assume it is valid.
if (name == this.profileInfo_.name)
- return true;
+ return '';
- return this.profileNames_[name] == undefined;
+ if (!name)
+ return 'manageProfilesEmptyNameError';
+
+ if (this.profileNames_[name] != undefined)
+ return 'manageProfilesDuplicateNameError';
+
+ return '';
},
/**
- * Update the UI elements accordingly if the profile name is valid/invalid.
- * @param {boolean} isValid True if the UI should be updated as if the name
- * were valid.
+ * Display the name error DOM elements, with |errorText| in the bubble.
+ * @param {string} errorText The localized string id to display as an error.
* @private
*/
- setNameIsValid_: function(isValid) {
- var dupeNameErrorEl = $('manage-profile-duplicate-name-error');
- if (isValid)
- dupeNameErrorEl.classList.add('hiding');
- else
- dupeNameErrorEl.classList.remove('hiding');
+ showNameError_: function(errorText) {
+ var nameErrorEl = $('manage-profile-name-error');
+ nameErrorEl.classList.remove('hiding');
+ nameErrorEl.textContent = localStrings.getString(errorText);
- $('manage-profile-ok').disabled = !isValid;
+ $('manage-profile-ok').disabled = true;
+ },
+
+ /**
+ * Hide the name error DOM elements.
+ * @private
+ */
+ hideNameError_: function() {
+ $('manage-profile-name-error').classList.add('hiding');
+ $('manage-profile-ok').disabled = false;
},
/**
@@ -144,7 +157,11 @@ cr.define('options', function() {
* @private
*/
onNameChanged_: function(event) {
- this.setNameIsValid_(this.isNameValid_(event.target.value));
+ var errorId = this.getNameErrorLocalStringId_(event.target.value);
+ if (errorId)
+ this.showNameError_(errorId);
+ else
+ this.hideNameError_();
},
/**
@@ -167,7 +184,7 @@ cr.define('options', function() {
ManageProfileOverlay.setProfileInfo(profileInfo);
$('manage-profile-overlay-manage').hidden = false;
$('manage-profile-overlay-delete').hidden = true;
- ManageProfileOverlay.getInstance().setNameIsValid_(true);
+ ManageProfileOverlay.getInstance().hideNameError_();
// Intentionally don't show the URL in the location bar as we don't want
// people trying to navigate here by hand.

Powered by Google App Engine
This is Rietveld 408576698