Last active
August 29, 2015 14:07
-
-
Save sTiLL-iLL/cbf5b7c6803d4ded32e3 to your computer and use it in GitHub Desktop.
brioWIFImodule.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
define(['knockout', 'jquery'], function (ko, $) { | |
return function (wifiInfo, wifiNetworks, SSIDList) { | |
var slf = this, SKT = skt || io.connect(), WifiInfo = wifiInfo || {}, | |
wirelessCollection = ko.observableArray(wifiNetworks) || ko.observableArray([]), | |
ssidCollection = ko.observableArray(SSIDList) || ko.observableArray([]), Abstract = { | |
isConnected: false, | |
BrioSSID: ko.observable(), | |
BrioPassword: ko.observable(), | |
BrioSecurityType: ko.observable(999), | |
BrioWifiType: ko.observable("none"), | |
}; | |
this.initializeService = function (wifiInfo) { | |
if (wifiInfo) { | |
CurrentNetwork = { | |
BrioSSID: ko.observable(wifiInfo.ssid), | |
BrioPassword: ko.observable(wifiInfo.password), | |
BrioNetworkType: ko.observable(wifiInfo.networkType), | |
BrioEncryption: ko.observable(wifiInfo.encryption), | |
BrioAuthentication: ko.observable(wifiInfo.authentication), | |
BrioSecurityType: ko.observable(wifiInfo.securityType), | |
BrioWifiType: ko.observable(wifiInfo.wifiType), | |
populateSSIDList: function () { | |
slf.populateNetworkList(SSIDList); | |
return CurrentNetwork; | |
}, | |
populateNetworkList: function () { | |
slf.updateWirelessCollection(wifiNetworks); | |
return CurrentNetwork; | |
}, | |
revealControls: function () { | |
slf.invokeControlSet(); | |
return CurrentNetwork; | |
}, | |
refresh: function () { | |
slf.doRefresh(); | |
return CurrentNetwork; | |
}, | |
wasWifiModified: function () { | |
return slf.hasWifiValueChanged(); | |
}, | |
connectNetwork: function (CBAK) { | |
var cbk = CBAK || {}; | |
if (!cbk) { | |
cbk = function (rspns) { | |
return rspns; | |
} | |
} | |
slf.connect(function (rspns) { | |
cbk(rspns); | |
}); | |
return CurrentNetwork; | |
}, | |
disconnectNetwork: function (CBAK) { | |
var cbk = CBAK || {}; | |
if (!cbk) { | |
cbk = function (rspns) { | |
return rspns; | |
} | |
} | |
slf.disconnect(function (rspns) { | |
cbk(rspns); | |
}); | |
return CurrentNetwork; | |
}, | |
isConnected: ko.computed({ | |
read: function () { | |
return slf.isWifiConnected(); | |
}, | |
write: function (newValue) { | |
if (newValue !== slf.isWifiReady()) { | |
slf.isWifiConnected(newValue); | |
} | |
}, | |
owner: this | |
}), | |
}; | |
} | |
else { | |
return false; | |
} | |
return CurrentNetwork; | |
}; | |
// private scope stuff.... | |
var isWifiConnected = ko.computed(false), | |
IsWifiOnline = ko.computed({ | |
read: function () { | |
return slf.isWifiConnected(); | |
}, | |
write: function (newValue) { | |
if (newValue !== slf.isWifiConnected()) { | |
slf.isWifiConnected(newValue); | |
$("#networkForm").trigger("wifiConnected", CurrentNetwork); | |
} | |
}, | |
owner: this | |
}), | |
updateWirelessCollection = function () { | |
slf.wirelessCollection.removeAll(); | |
slf.wirelessCollection(wifiNetworks); | |
$("#networkForm").trigger("wifiListChange", slf.wifiNetworks); | |
return CurrentNetwork; | |
}, | |
doRefresh = function (skt, cbak) { | |
var CBK = cbak || {}; | |
if (!CBK) { | |
CBK = function (wifiNetworks) { | |
slf.updateWirelessCollection(wifiNetworks) | |
}; | |
} | |
SKT.emit("GetWirelessNetworks", function (wifiNetworks) { | |
CBK(wifiNetworks); | |
}); | |
return CurrentNetwork; | |
}, | |
populateNetworkList = function (ssids) { | |
slf.ssidCollection(ssids); | |
if (ssids) { | |
if ($('#ssidLst').children().length != ssids.length && ssids.length > 0) { | |
$("#ssidLst").children().remove(); | |
$.each(ssids, function (idx, val) { | |
if (CurrentNetwork.BrioSSID() == val) { | |
$('#ssidLst').append(new Option(val, val, false, true)); | |
} | |
else { | |
$('#ssidLst').append(new Option(val, val)); | |
} | |
}); | |
return CurrentNetwork; | |
} | |
else { | |
//nothing changed, redraw if necessary | |
slf.invokeControlSet(); | |
} | |
$("#networkForm").trigger("ssidListChange", slf.ssidCollection); | |
} | |
else { | |
slf.invokeControlSet(); | |
return CurrentNetwork; | |
} | |
}, | |
disableFormControlSet = function () { | |
var inpts = $("#networkForm :input").isNot("[type='radio']").get(); | |
inpts.each(function (itm) { | |
$(itm).prop("disabled", "disabled"); | |
}); | |
return slf; | |
}, | |
hideFormControlSet = function () { | |
var inpts = $("#networkForm :input").isNot("[type='radio']").get(); | |
inpts.each(function (itm) { | |
$(itm).hide(); | |
}); | |
return CurrentNetwork; | |
}, | |
invokeControlSet = function (ssid, networkTypeId, encryptionTypeId) { | |
var wifiTypeId = networkTypeId || $("input[name='wapStateType']:checked, #networkForm").val(), | |
encID = encryptionTypeId || 999, | |
SSID = ssid || $("#ssidLst").val(); | |
if ($chkdId == "rdoWap") { | |
} | |
else if ($chkdId == "rdoClientWap") { | |
} | |
else { | |
$("#networkForm :input").prop("disabled", "disabled"); | |
} | |
}, | |
connect = function (func) { | |
var wInfo = { | |
ssid: CurrentNetwork.BrioSSID(), | |
password: CurrentNetwork.BrioPassword(), | |
networkType: CurrentNetwork.BrioNetworkType(), | |
authentication: CurrentNetwork.BrioAuthentication(), | |
encryption: CurrentNetwork.BrioEncryption(), | |
securityType: CurrentNetwork.BrioSecurityType(), | |
}; | |
SKT.emit("ConnectToWirelessNetwork", wInfo, wifiTypeId, function (err, rspns) { | |
if (!err) { | |
CurrentNetwork.IsConnected(true); | |
func(rspns); | |
} | |
else { | |
CurrentNetwork.IsConnected(false); | |
func(err); | |
} | |
}); | |
$("#networkForm").trigger("WifiConnected", CurrentNetwork); | |
return CurrentNetwork; | |
}, | |
disconnect = function (func) { | |
SKT.emit("DisconnectWirelessNetwork", function (err, rspns) { | |
func(rspns); | |
}); | |
CurrentNetwork.isWifiConnected(false); | |
$("#networkForm").trigger("WifiDisconnected", CurrentNetwork); | |
return CurrentNetwork; | |
}, | |
hasWifiChanged = ko.observable(false), | |
hasWifiValueChanged = ko.computed({ | |
write: function (newValue) { | |
if (newValue.ssid !== CurreNetwork.BrioSSID() || newValue.password !== CurrentNetwork.BrioPassword() || newValue.securityType !== CurrentNetwork.BrioSecurityType()) { | |
CurrentNetwork.BrioEncryption(newValue.encryption); | |
CurrentNetwork.BrioNetworkType(newValue.networkType); | |
CurrentNetwork.BrioPassword(newValue.password); | |
CurrentNetwork.BrioSSID(newValue.ssid); | |
$("#networkForm").trigger("currentNetworkChange", CurrentNetwork); | |
slf.hasWifiChanged(true); | |
} | |
else { | |
slf.hasWifiChanged(false); | |
} | |
}, | |
read: function () { | |
return slf.hasWifiChanged(); | |
}, | |
owner: this | |
}); | |
BrioNetworkType.subscribe(function (newValue) { | |
if (newValue.networkType !== CurrentNetwork.BrioNetworkType()) { | |
slf.hasWifiValueChanged(true); | |
} | |
else { | |
slf.hasWifiValueChanged(false); | |
} | |
CurrentNetwork.invokeControlSet(newValue); | |
$("#networkForm").trigger("currentNetworkChange", CurrentNetwork); | |
return CurrentNetwork; | |
}); | |
BrioEncryption.subscribe(function (newValue) { | |
if (newValue.encryption !== CurrentNetwork.BrioEncryption()) { | |
slf.hasWifiValueChanged(true); | |
} | |
else { | |
slf.hasWifiValueChanged(false); | |
} | |
CurrentNetwork.invokeControlSet(newValue); | |
$("#networkForm").trigger("currentNetworkChange", CurrentNetwork); | |
return CurrentNetwork; | |
}); | |
}; | |
return { | |
WifiObj_Interface: CurrentNetwork, | |
WifiObj_QueryChanged: hasWifiValueChanged, | |
WifiObj_CommandDispose: function (SSID) { | |
CurrentNetwork.disconnect(); | |
CurrentNetwork = null; | |
return (this = (slf = null)); | |
}, | |
}; | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment