mirror of
https://github.com/c0de-archive/CDRParser.git
synced 2025-08-13 01:58:44 +00:00
Initial Commit
This commit is contained in:
69
static/js/controller.js
Normal file
69
static/js/controller.js
Normal file
@@ -0,0 +1,69 @@
|
||||
var app = angular.module('MyApp', ['ngMaterial','tableSort',]).controller('logviewer', function($scope, $http, $mdDialog){
|
||||
var tmp = [];
|
||||
var list = '[[bigData]]'; // Pull in information provided by bottle's template engine
|
||||
data = list.replace(/"/g, '"'); // For some reason the quotes become HTMLescaped when retrieved from bottle, replace those with normal quotes
|
||||
data = JSON.parse(data); // Our data is already JSON, but it acts as a string before this stage
|
||||
data.forEach(function(d){
|
||||
// Rearrange Cisco's weird date format to something Javascript can understand and convert it to UNIX time
|
||||
// First 17 characters are the time including timezone
|
||||
// Remaining characters are the date
|
||||
// This moves the first 17 characters to after a space
|
||||
d.connect = Date.parse(d.connect.slice(17) + ' ' + d.connect.slice(0, 17));
|
||||
d.disconnect = Date.parse(d.disconnect.slice(17) + ' ' + d.disconnect.slice(0, 17));
|
||||
tmp.push(d);
|
||||
});
|
||||
|
||||
$scope.origins = [
|
||||
'originate',
|
||||
'answer'
|
||||
];
|
||||
|
||||
$scope.getfiltered = function(){
|
||||
$scope.data = [];
|
||||
var tmpdata = [];
|
||||
var thedata = tmp; // Use date-corrected data from the above data.forEach
|
||||
thedata.forEach(function(d){
|
||||
if (!$scope.query.username &&
|
||||
!$scope.query.origin &&
|
||||
!$scope.query.from &&
|
||||
!$scope.query.to){ // no query
|
||||
|
||||
tmpdata = tmp;
|
||||
}
|
||||
else if (d.username.indexOf($scope.query.username) != -1 && $scope.query.username != ''){
|
||||
// the user searched for a specific username
|
||||
tmpdata.push(d);
|
||||
}
|
||||
else if (d.origin.indexOf($scope.query.origin) != -1 && $scope.query.origin != ''){
|
||||
// the user searched for a specific origin (either originate or answer)
|
||||
tmpdata.push(d);
|
||||
}
|
||||
else if (d.calling.indexOf($scope.query.from) != -1 && $scope.query.from != ''){
|
||||
// the user searched for a specific caller
|
||||
tmpdata.push(d);
|
||||
}
|
||||
else if (d.called.indexOf($scope.query.to) != -1 && $scope.query.to != ''){
|
||||
// the user searched for a specific callee
|
||||
tmpdata.push(d);
|
||||
}
|
||||
});
|
||||
|
||||
// Remove any duplicates
|
||||
tmpdata.forEach(function(d){
|
||||
if($scope.data.indexOf(d) === -1){
|
||||
$scope.data.push(d);
|
||||
}
|
||||
});
|
||||
};
|
||||
$scope.resetquery = function(){ // Sets the query to default blank state
|
||||
$scope.query = {
|
||||
username: '',
|
||||
origin: '',
|
||||
from: '',
|
||||
to: '',
|
||||
};
|
||||
};
|
||||
$scope.resetquery();
|
||||
|
||||
$scope.$watch('query', $scope.getfiltered, true); // Automatically search after the debounce is over
|
||||
});
|
Reference in New Issue
Block a user