mirror of
https://github.com/hak5/nano-tetra-modules.git
synced 2025-10-29 16:58:09 +00:00
103 lines
3.0 KiB
JavaScript
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();
|
|
}]);
|