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

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

Issue 4237001: Add support for different type of encyrption when adding a network.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 1 month 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/chromeos_internet_network_element.js
===================================================================
--- chrome/browser/resources/options/chromeos_internet_network_element.js (revision 64675)
+++ chrome/browser/resources/options/chromeos_internet_network_element.js (working copy)
@@ -48,7 +48,7 @@
var el = e.target;
// If click is on action buttons of a network item.
if (!(el.buttonType && el.networkType && el.servicePath)) {
- if (el.className == 'other-network' || el.buttonType) {
+ if (el.buttonType) {
return;
}
// If click is on a network item or its label, walk up the DOM tree
@@ -144,10 +144,9 @@
/** @inheritDoc */
decorate: function() {
- var isOtherNetworksItem = this.data.servicePath == '?';
-
this.className = 'network-item';
this.connected = this.data.connected;
+ this.other = this.data.servicePath == '?';
this.id = this.data.servicePath;
// textDiv holds icon, name and status text.
var textDiv = this.ownerDocument.createElement('div');
@@ -161,7 +160,7 @@
nameEl.textContent = this.data.networkName;
textDiv.appendChild(nameEl);
- if (isOtherNetworksItem) {
+ if (this.other) {
// No status and buttons for "Other..."
this.appendChild(textDiv);
return;
@@ -298,11 +297,10 @@
hidePassword: function() {
this.connecting = false;
var children = this.childNodes;
- for (var i = 0; i < children.length; i++) {
- if (children[i].className == 'network-password' ||
- children[i].className == 'other-network') {
+ // Remove all password divs starting from the end.
+ for (var i = children.length-1; i >= 0; i--) {
+ if (children[i].className == 'network-password') {
this.removeChild(children[i]);
- return;
}
}
},
@@ -310,14 +308,40 @@
showOtherLogin: function() {
if (this.connecting)
return;
- var passwordDiv = this.ownerDocument.createElement('div');
- passwordDiv.className = 'other-network';
+
+ var ssidDiv = this.ownerDocument.createElement('div');
+ ssidDiv.className = 'network-password';
var ssidInput = this.ownerDocument.createElement('input');
ssidInput.placeholder = localStrings.getString('inetSsidPrompt');
- passwordDiv.appendChild(ssidInput);
+ ssidDiv.appendChild(ssidInput);
+
+ var securityDiv = this.ownerDocument.createElement('div');
+ securityDiv.className = 'network-password';
+ var securityInput = this.ownerDocument.createElement('select');
+ var securityNoneOption = this.ownerDocument.createElement('option');
+ securityNoneOption.value = 'none';
+ securityNoneOption.label = localStrings.getString('inetSecurityNone');
+ securityInput.appendChild(securityNoneOption);
+ var securityWEPOption = this.ownerDocument.createElement('option');
+ securityWEPOption.value = 'wep';
+ securityWEPOption.label = localStrings.getString('inetSecurityWEP');
+ securityInput.appendChild(securityWEPOption);
+ var securityWPAOption = this.ownerDocument.createElement('option');
+ securityWPAOption.value = 'wpa';
+ securityWPAOption.label = localStrings.getString('inetSecurityWPA');
+ securityInput.appendChild(securityWPAOption);
+ var securityRSNOption = this.ownerDocument.createElement('option');
+ securityRSNOption.value = 'rsn';
+ securityRSNOption.label = localStrings.getString('inetSecurityRSN');
+ securityInput.appendChild(securityRSNOption);
+ securityDiv.appendChild(securityInput);
+
+ var passwordDiv = this.ownerDocument.createElement('div');
+ passwordDiv.className = 'network-password';
var passInput = this.ownerDocument.createElement('input');
passInput.placeholder = localStrings.getString('inetPassPrompt');
passInput.type = 'password';
+ passInput.disabled = true;
passwordDiv.appendChild(passInput);
var togglePassLabel = this.ownerDocument.createElement('label');
@@ -333,20 +357,42 @@
togglePassLabel.appendChild(togglePassSpan);
passwordDiv.appendChild(togglePassLabel);
- var buttonEl = this.ownerDocument.createElement('button');
- buttonEl.textContent = localStrings.getString('inetLogin');
- buttonEl.buttonType = true;
- buttonEl.addEventListener('click', this.handleOtherLogin_);
+ var buttonEl =
+ this.createButton_('inetLogin', true, this.handleOtherLogin_);
buttonEl.style.right = '0';
buttonEl.style.position = 'absolute';
buttonEl.style.visibility = 'visible';
+ buttonEl.disabled = true;
passwordDiv.appendChild(buttonEl);
+
+ this.appendChild(ssidDiv);
+ this.appendChild(securityDiv);
this.appendChild(passwordDiv);
- ssidInput.addEventListener('keydown', function(e) {
- buttonEl.disabled =
- ssidInput.value.length < NetworkItem.MIN_WIRELESS_SSID_LENGTH;
+ securityInput.addEventListener('change', function(e) {
+ // If changed to None, then disable passInput and clear it out.
+ // Otherwise enable it.
+ if (securityInput.value == 'none') {
+ passInput.disabled = true;
+ passInput.value = '';
+ } else {
+ passInput.disabled = false;
+ }
});
+
+ var keyup_listener = function(e) {
+ // Disable login button if ssid is not long enough or
+ // password is not long enough (unless no security)
+ var ssid_good =
+ ssidInput.value.length >= NetworkItem.MIN_WIRELESS_SSID_LENGTH;
+ var pass_good =
+ securityInput.value == 'none' ||
+ passInput.value.length >= NetworkItem.MIN_WIRELESS_PASSWORD_LENGTH;
+ buttonEl.disabled = !ssid_good || !pass_good;
+ };
+ ssidInput.addEventListener('keyup', keyup_listener);
+ securityInput.addEventListener('change', keyup_listener);
+ passInput.addEventListener('keyup', keyup_listener);
this.connecting = true;
},
@@ -361,13 +407,15 @@
handleOtherLogin_: function(e) {
var el = e.target;
- var parent = el.parentNode;
+ var parent = el.parentNode.parentNode;
el.disabled = true;
- var ssid = parent.childNodes[0];
- var pass = parent.childNodes[1];
+ var ssid = parent.childNodes[1].firstChild;
+ var sec = parent.childNodes[2].firstChild;
+ var pass = parent.childNodes[3].firstChild;
+ sec.disabled = true;
ssid.disabled = true;
pass.disabled = true;
- chrome.send('loginToNetwork', [ssid.value, pass.value]);
+ chrome.send('loginToOtherNetwork', [sec.value, ssid.value, pass.value]);
},
/**
@@ -397,6 +445,13 @@
*/
cr.defineProperty(NetworkItem, 'connecting', cr.PropertyKind.BOOL_ATTR);
+ /**
+ * Whether the underlying network is an other network for adding networks.
+ * Only used for display purpose.
+ * @type {boolean}
+ */
+ cr.defineProperty(NetworkItem, 'other', cr.PropertyKind.BOOL_ATTR);
+
return {
NetworkElement: NetworkElement
};
« no previous file with comments | « chrome/browser/chromeos/status/network_menu.cc ('k') | chrome/browser/resources/options/chromeos_internet_options_page.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698