github.com/abayer/test-infra@v0.0.5/mungegithub/cherrypick/www/script.js (about) 1 "use strict"; 2 angular.module('CherrypickModule', ['ngMaterial', 'md.data.table', 'angular-toArrayFilter']); 3 4 angular.module('CherrypickModule').controller('CPCntl', ['DataService', '$interval', '$location', CPCntl]); 5 6 function CPCntl(dataService, $interval, $location) { 7 var self = this; 8 self.queue = {}; 9 self.raw = {}; 10 self.selectTab = selectTab; 11 self.selected = 0; 12 self.StatOrder = "-Count"; 13 self.location = $location; 14 15 var path = $location.path(); 16 if (path.length > 0) { 17 switch (path) { 18 case "/queue": 19 self.selected=0; 20 break; 21 case "/raw": 22 self.selected=1; 23 break; 24 case "/info": 25 self.selected=2; 26 break; 27 default: 28 console.log("unknown path: " + path); 29 break; 30 } 31 } 32 33 // Refresh data every minute 34 refreshQueue(); 35 $interval(refreshQueue, 60000); 36 37 function refreshQueue() { 38 dataService.getData('queue').then(function successCallback(response) { 39 self.queueData = response.data; 40 }, function errorCallback(response) { 41 console.log("Error: Getting Cherrypick Status"); 42 }); 43 } 44 45 // Refresh data every minute 46 refreshRaw(); 47 48 function refreshRaw() { 49 dataService.getData('raw').then(function successCallback(response) { 50 self.raw = response.data; 51 }, function errorCallback(response) { 52 console.log("Error: Getting Cherrypick Raw Status"); 53 }); 54 } 55 56 // Refresh every 10 minutes 57 refreshStats(); 58 $interval(refreshStats, 600000); 59 60 function refreshStats() { 61 dataService.getData('stats').then(function successCallback(response) { 62 var nextLoop = new Date(response.data.NextLoopTime); 63 document.getElementById("next-run-time").innerHTML = nextLoop.toLocaleTimeString(); 64 65 self.botStats = response.data.Analytics; 66 self.APICount = response.data.APICount; 67 self.CachedAPICount = response.data.CachedAPICount; 68 document.getElementById("api-calls-per-sec").innerHTML = response.data.APIPerSec; 69 document.getElementById("github-api-limit-count").innerHTML = response.data.LimitRemaining; 70 var nextReset = new Date(response.data.LimitResetTime); 71 document.getElementById("github-api-limit-reset").innerHTML = nextReset.toLocaleTimeString(); 72 }); 73 } 74 75 function selectTab(tabName) { 76 self.location.path('/' + tabName); 77 } 78 79 getQueueInfo() 80 81 function getQueueInfo() { 82 dataService.getData('queue-info').then(function successCallback(response) { 83 document.getElementById("queue-info").innerHTML = response.data; 84 }); 85 } 86 } 87 88 89 angular.module('CherrypickModule').service('DataService', ['$http', dataService]); 90 91 function dataService($http) { 92 return ({ 93 getData: getData, 94 }); 95 96 function getData(file) { 97 return $http.get(file); 98 } 99 }