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  }