2017-11-16 16:42:22 +11:00

103 lines
3.0 KiB
JavaScript

registerController('SignalStrengthController', ['$api', '$scope', function($api, $scope) {
$scope.title = "Loading...";
$scope.version = "Loading...";
$scope.interfaces = [];
$scope.interfaceStatus = [];
$scope.selectedInterface = "";
$scope.scanLoading = false;
$scope.continuousScan = false;
$scope.polarData = [];
// this function gets info from the module.info file
$scope.getVersionInfo = (function() {
$api.request({
module: 'SignalStrength',
action: 'getVersionInfo'
}, function(response) {
$scope.title = response.title;
$scope.version = response.version;
});
});
// this function generates a random color for the graph.js graph to use
function getRandomColor() {
var letters = '0123456789ABCDEF'.split('');
var color = '#';
for (var i = 0; i < 6; i++ ) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
// this function gets the cell info for an interface
$scope.scanInterface = (function() {
$scope.scanLoading = true;
$api.request({
module: 'SignalStrength',
action: 'getInterfaceScan',
selectedInterface: $scope.selectedInterface
}, function (response) {
$scope.scanLoading = false;
$scope.interfaceScan = response.interfaceScan;
polarDataArray = [];
response.interfaceScan.forEach(function(scannedCell) {
graphStrength = parseInt(scannedCell['strength'].substring(20, 23));
graphStrength += 100;
polarDataElement = {};
polarDataElement['value'] = graphStrength;
polarDataElement['color'] = getRandomColor();
polarDataElement['label'] = scannedCell['essid'];
polarDataArray.push(polarDataElement);
});
$scope.polarData = polarDataArray;
// call the javascript function to draw the chart
refreshChart();
// RECURSION!!!!!!!
if ($scope.continuousScan == true) {$scope.scanInterface();}
});
});
// this function builds the Scan Settings panel
$scope.getWirelessInterfaces = (function() {
$api.request({
module: 'SignalStrength',
action: 'getWirelessInterfaces'
}, function(response) {
$scope.interfaces = response.interfaces;
$scope.selectedInterface = response.interfaces[0];
});
});
// this function gets the status for each wireless interface - Up or Down
$scope.getInterfaceStatus = (function() {
$api.request({
module: 'SignalStrength',
action: 'getInterfaceStatus'
}, function(response) {
$scope.interfaceStatus = response.interfaceStatus;
});
});
// this function toggles an interfaces state - Up or Down
$scope.toggleInterface = (function(interfaceToToggle, interfaceStatus) {
$api.request({
module: 'SignalStrength',
action: 'toggleInterface',
interface: interfaceToToggle,
status: interfaceStatus
}, function(response) {
$scope.getInterfaceStatus();
});
});
// this function toggles the continuous scan setting
$scope.toggleContinuous = (function() {
if ($scope.continuousScan == true) {$scope.continuousScan = false;} else {$scope.continuousScan = true;}
});
// initialize the panels
$scope.getVersionInfo();
$scope.getWirelessInterfaces();
$scope.getInterfaceStatus();
}]);