console.log("app.sh startup") var app = angular.module("rvpnApp", ["ngRoute", "angular-duration-format"]); app.config(function($routeProvider, $locationProvider) { $routeProvider .when("/admin/status/", { templateUrl : "admin/partials/status.html" }) .when("/admin/index.html", { templateUrl : "admin/partials/servers.html" }) .when("/admin/servers/", { templateUrl : "admin/partials/servers.html" }) .when("/admin/#domains", { templateUrl : "green.htm" }) .when("/blue", { templateUrl : "blue.htm" }); $locationProvider.html5Mode(true); }); app.filter('bytes', function() { return function(bytes, precision) { if (isNaN(parseFloat(bytes)) || !isFinite(bytes)) return '-'; if (typeof precision === 'undefined') precision = 1; var units = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'], number = Math.floor(Math.log(bytes) / Math.log(1024)); return (bytes / Math.pow(1024, Math.floor(number))).toFixed(precision) + ' ' + units[number]; } }); app.filter('hfcduration', function() { return function(duration, precision) { remain = duration duration_day = 24*60*60 duration_hour = 60*60 duration_minute = 60 duration_str = "" days = Math.floor(remain / duration_day) if (days > 0) { remain = remain - (days * duration_day) duration_str = duration_str + days + 'd' } hours = Math.floor(remain / duration_hour) if (hours > 0) { remain = remain - (hours * duration_hour) duration_str = duration_str + hours + 'h' } mins = Math.floor(remain / duration_minute) if (mins > 0) { remain = remain - (mins * duration_minute) duration_str = duration_str + mins + 'm' } secs = Math.floor(remain) duration_str = duration_str + secs + 's' return (duration_str); } }); app.controller('statusController', function ($scope, $http) { console.log("statusController"); $scope.status_search = ""; var api = '/api/org.rootprojects.tunnel/status' $scope.updateView = function() { $http.get(api).then(function(response) { console.log(response); data = response.data; if (data.error == 'ok' ){ $scope.status = data.result; } }); } $scope.updateView() }); app.controller('serverController', function ($scope, $http) { $scope.servers = []; $scope.servers_search = ""; $scope.servers_trigger_details = []; $scope.filtered var api = '/api/org.rootprojects.tunnel/servers' $scope.updateView = function() { $http.get(api).then(function(response) { //console.log(response); data = response.data; if (data.error == 'ok' ){ $scope.servers = data.result.servers; } }); } $scope.triggerDetail = function(id) { //console.log("triggerDetail ", id, $scope.servers_trigger_details[id]) if ($scope.servers_trigger_details[id] == true) { $scope.servers_trigger_details[id] = false; } else { $scope.servers_trigger_details[id] = true } }; $scope.checkDetail = function(id) { //console.log("checkDetail ", id, $scope.servers_trigger_details[id]) if ($scope.servers_trigger_details[id] == true) { return false; } else { return true } }; $scope.updateView() });