snipt/media/js/src/jobs.js

51 lines
1.1 KiB
JavaScript

'use strict';
(function(window) {
if (typeof angular !== 'undefined') {
var root = window;
var $ = root.jQuery;
var controllers = {};
var app = root.app;
app.filter('startFrom', function() {
return function(input, start) {
start = +start;
return input ? input.slice(start) : input;
};
});
// Controllers.
controllers.JobSearchController = function($http, $scope, filterFilter, $timeout) {
$scope.currentPage = 0;
$scope.pageSize = 10;
$http.get('/jobs-json/').then(function(response) {
$scope.jobs = response.data;
$scope.filterJobs();
});
$scope.filterJobs = function() {
$scope.filteredJobs = filterFilter($scope.jobs, $scope.query);
$scope.currentPage = 0;
};
$scope.numberOfPages = function() {
if ($scope.filteredJobs) {
return Math.ceil($scope.filteredJobs.length / $scope.pageSize);
}
};
$scope.$watch('query', function (val) {
$scope.filterJobs();
});
};
// Assign the controllers.
app.controller(controllers);
}
})(window);