From 7a008250c1532e486512c4b2edd03730a7324327 Mon Sep 17 00:00:00 2001 From: peteruithoven Date: Fri, 25 Apr 2014 16:24:16 +0200 Subject: [PATCH] Connecting to unsecured network --- js/ConnectingToNetworkPage.js | 93 +++++++++++++++++++++++++++++++++++ less/styles.less | 21 ++++++++ www/index.html | 47 +++++++++--------- 3 files changed, 138 insertions(+), 23 deletions(-) create mode 100644 js/ConnectingToNetworkPage.js diff --git a/js/ConnectingToNetworkPage.js b/js/ConnectingToNetworkPage.js new file mode 100644 index 0000000..6c44472 --- /dev/null +++ b/js/ConnectingToNetworkPage.js @@ -0,0 +1,93 @@ +/* + * This file is part of the Doodle3D project (http://doodle3d.com). + * + * Copyright (c) 2013, Doodle3D + * This software is licensed under the terms of the GNU GPL v2 or later. + * See file LICENSE.txt or visit http://www.gnu.org/licenses/gpl.html for full license details. + */ + +(function ConnectingToNetworkPage(w) { + + var _page; + var _statusField; + var _actionField; + var _networkAPI = new NetworkAPI(); + var _pageData = {}; + + var PAGE_ID = "#connecting_to_network"; + + var _self = this; + + $.mobile.document.on( "pageinit", PAGE_ID, function( event, data ) { + console.log("Connecting to network page pageinit"); + _page = $(this); + _statusField = _page.find("#status"); + _actionField = _page.find("#action"); + }); + $.mobile.document.on( "pagebeforeshow", PAGE_ID, function( event, data ) { + console.log("Connecting to network page pagebeforeshow"); + _pageData = d3d.util.getPageParams(PAGE_ID); + var boxURL = "http://"+_pageData.localip; + //console.log(" _boxData: ",_boxData); + + _networkAPI.init(boxURL); + _networkAPI.refreshing = onRefreshing; + _networkAPI.updated = onStatusUpdated; + joinNetwork(); + _networkAPI.startAutoRefresh(); + }); + $.mobile.document.on( "pagehide", PAGE_ID, function( event, data ) { + console.log("Connecting to network page pagehide"); + _networkAPI.stopAutoRefresh(); + }); + function joinNetwork() { + console.log("joinNetwork"); + console.log(" _pageData.password: ",_pageData.password); + _networkAPI.associate(_pageData.ssid,_pageData.password,true); + } + function onRefreshing() { + //console.log("ConnectingToNetworkPage:onRefreshing"); + d3d.util.showLoader(true); + } + function onStatusUpdated(data) { + console.log("ConnectingToNetworkPage:onStatusUpdated"); + console.log(" data: ",data); + data.status = parseInt(data.status,10); + console.log(" data.status: ",data.status); + + // update texts + var statusText = ""; + var actionText = ""; + switch(data.status) { + case NetworkAPI.STATUS.CONNECTING: + statusText = "Connecting to network "; + actionText = "Please reconnect to "+_pageData.ssid+". Once you are connected return to this page."; + _actionField.attr("class","info"); + break; + case NetworkAPI.STATUS.CONNECTING_FAILED: + statusText = "Could not connect..."; + actionText = "Please check password and try again"; + _actionField.attr("class","error"); + break; + case NetworkAPI.STATUS.CONNECTED: + statusText = "Connected"; + actionText = "The WiFi-Box is connected to "+_pageData.ssid+""; + _actionField.attr("class","info"); + break; + default: + actionText = "Something went wrong, please try again"; + _actionField.attr("class","error"); + break; + } + _statusField.html(statusText); + _actionField.html(actionText); + + if(data.status == NetworkAPI.STATUS.CONNECTED) { + _networkAPI.stopAutoRefresh(); + } + + // ToDo: attempt to auto redirect to connected WiFi-Box + // attempt to retrieve connectAPI list, if same wifiboxid available (only works for version 0.10.2+), redirect to box page + } +})(window); +//new JoinNetworkPage(); \ No newline at end of file diff --git a/less/styles.less b/less/styles.less index fcd7020..5f0306d 100644 --- a/less/styles.less +++ b/less/styles.less @@ -23,6 +23,27 @@ text-align: center; border-radius: 15px; } +#action { + margin: 0 -1em; + padding: 1em; + color: #fff; + text-shadow: 0px 1px 0px #999; +} + +#action.error { + background: #EB313C; + text-shadow: 0px 1px 0px #333; +} +#action.warning { + background: #E9A86E; +} +#action.notice { + background: #93CAF4; +} +#action.info { + background: #97DD8A; +} + @media only screen and (min-width: 768px) { body { padding-left: 20em; diff --git a/www/index.html b/www/index.html index 5bb43a1..46fcd52 100644 --- a/www/index.html +++ b/www/index.html @@ -280,33 +280,20 @@
-

Select your own network from the following list:

-
-
- -
- -
- Back -

Connect

-
-
-

Join a hidden network

- - - -
-
-
@@ -320,16 +307,30 @@
-
+
Back

Connect

+
+

Join a hidden network

+ + + +
+
+ +
+ +
+ Back +

Connecting...

+
-

Connecting to network...

-

Your WiFi-Box is trying to connect to your local network. To use your WiFi-Box, reconnect to the network you directed the WiFi-Box to. Once you are connected return to this page.

+

+