(function() {
‘use strict’;
angular.module(‘herald.node’, [
'ui.router', 'herald.page', 'herald.directives', 'herald.pagination', 'angularMoment'
])
.controller(‘NodeController’,
['$http', '$stateParams', 'Page', 'PaginationFactory', function($http, $stateParams, Page, PaginationFactory) { var ctrl = this; Page.title('Reports'); ctrl.pagination = PaginationFactory.DEFAULT; ctrl.cache = PaginationFactory.createPageCache(60); // 60 seconds cache ctrl.node = null; ctrl.nav = { node: null, report: null }; this.nodeId = $stateParams.nodeId; var gateway = '/api/v1/nodes/' + this.nodeId; function setNode(nodeData) { ctrl.node = nodeData; ctrl.nav.node = ctrl.node.name; } function getResultsPage(pageNumber) { ctrl.pagination.page(pageNumber); if (ctrl.cache.isLoaded(pageNumber)) { setNode(ctrl.cache.get(pageNumber)); return; } var config = { headers: ctrl.pagination.toHeaders() }; $http.get(gateway, config).success(function(data, status, headers, config) { setNode(data); ctrl.pagination = PaginationFactory.fromHeaders(headers); var loadedPage = ctrl.pagination.page(); Page.title('Reports for', data.name); ctrl.cache.set(loadedPage, data); }); } getResultsPage(ctrl.pagination.page()); ctrl.onPageChange = function(newPage) { getResultsPage(newPage); };
}]);
})();