Better filtering - show page numbers as you filter.
parent
4a8278c635
commit
a34c8eb65e
|
@ -29,14 +29,14 @@
|
|||
<div class="loading-jobs" ng-show="!jobs">
|
||||
Loading jobs…
|
||||
</div>
|
||||
<div class="pagination ng-cloak" ng-cloak ng-show="jobs && numberOfPages() > 1">
|
||||
<div class="pagination ng-cloak" ng-cloak ng-show="jobs">
|
||||
<button class="btn prev" style="margin: 0 10px;" href ng-disabled="currentPage == 0" ng-click="currentPage=currentPage - 1">Previous</button>
|
||||
<span class="page">{[{ currentPage + 1 }]} / {[{ numberOfPages() }]}</span>
|
||||
<button class="btn next" style="margin: 0 10px;" ng-disabled="currentPage >= jobs.length / pageSize - 1" ng-click="currentPage=currentPage + 1">Next</button>
|
||||
<button class="btn next" style="margin: 0 10px;" ng-disabled="currentPage >= filteredJobs.length / pageSize - 1" ng-click="currentPage=currentPage + 1">Next</button>
|
||||
</div>
|
||||
<section class="jobs">
|
||||
<ul>
|
||||
<li ng-repeat="job in jobs|filter:query|startFrom:currentPage * pageSize|limitTo:pageSize">
|
||||
<li ng-repeat="job in filteredJobs|startFrom:currentPage * pageSize|limitTo:pageSize">
|
||||
<a href="{[{ job.url }]}?aff=dbe7e" class="group">
|
||||
<span class="left">
|
||||
<span class="job">{[{ job.title }]}</span>
|
||||
|
@ -50,10 +50,10 @@
|
|||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<div class="pagination ng-cloak" ng-cloak ng-show="jobs && numberOfPages() > 1">
|
||||
<div class="pagination ng-cloak" ng-cloak ng-show="jobs">
|
||||
<button class="btn prev" style="margin: 0 10px;" href ng-disabled="currentPage == 0" ng-click="currentPage=currentPage - 1">Previous</button>
|
||||
<span class="page">{[{ currentPage + 1 }]} / {[{ numberOfPages() }]}</span>
|
||||
<button class="btn next" style="margin: 0 10px;" ng-disabled="currentPage >= jobs.length / pageSize - 1" ng-click="currentPage=currentPage + 1">Next</button>
|
||||
<button class="btn next" style="margin: 0 10px;" ng-disabled="currentPage >= filteredJobs.length / pageSize - 1" ng-click="currentPage=currentPage + 1">Next</button>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -17,19 +17,27 @@
|
|||
});
|
||||
|
||||
// Controllers.
|
||||
controllers.JobSearchController = function($http, $scope) {
|
||||
controllers.JobSearchController = function($http, $scope, filterFilter) {
|
||||
$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.numberOfPages = function() {
|
||||
if ($scope.jobs) {
|
||||
return Math.ceil($scope.jobs.length / $scope.pageSize);
|
||||
if ($scope.filteredJobs) {
|
||||
return Math.ceil($scope.filteredJobs.length / $scope.pageSize);
|
||||
}
|
||||
};
|
||||
|
||||
$scope.$watch('query', function (val) {
|
||||
$scope.filterJobs();
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -389,7 +389,7 @@
|
|||
<script type="text/javascript" src="{{ STATIC_URL }}js/src/search.js"></script>
|
||||
<script type="text/javascript" src="{{ STATIC_URL }}js/src/jobs.js"></script>
|
||||
{% else %}
|
||||
<script type="text/javascript" src="{{ STATIC_URL }}js/snipt-all.min.js?59"></script>
|
||||
<script type="text/javascript" src="{{ STATIC_URL }}js/snipt-all.min.js?60"></script>
|
||||
{% endif %}
|
||||
|
||||
{% block inline-js %}
|
||||
|
|
Loading…
Reference in New Issue