(function() {

‘use strict’;

angular.module(‘herald.nodes’, [

'herald.directives',
'herald.page',
'herald.pagination',
'angularMoment'

])

.controller(‘NodesController’, [‘$http’, ‘Page’, ‘PaginationFactory’, function($http, Page, PaginationFactory) {

Page.title('All Puppet nodes');
var ctrl = this;
ctrl.title = 
ctrl.pagination = PaginationFactory.DEFAULT;
ctrl.cache = PaginationFactory.createPageCache(60); // 60 seconds cache
ctrl.all = [];

function getResultsPage(pageNumber) {
  ctrl.pagination.page(pageNumber);
  if (ctrl.cache.isLoaded(pageNumber)) {
    ctrl.all = ctrl.cache.get(pageNumber);
    return;
  }
  var config = { headers: ctrl.pagination.toHeaders() };
  $http.get('/api/v1/nodes', config).success(function(data, status, headers, config) {
    ctrl.all = data;
    ctrl.pagination = PaginationFactory.fromHeaders(headers);
    var loadedPage = ctrl.pagination.page();
    ctrl.cache.set(loadedPage, data);
  });
}
getResultsPage(ctrl.pagination.page());
ctrl.onPageChange = function(newPage) {
  getResultsPage(newPage);
};

}]);

})();