This repository has been archived on 2020-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
quay/static/js/pages/search.js
Joseph Schorr e9ffe0e27b Implement new search UI
We now have both autocomplete-based searching for quick results, as well as a full search page for a full listing of results
2017-04-28 13:57:28 -04:00

49 lines
No EOL
1.4 KiB
JavaScript

(function() {
/**
* Search page.
*/
angular.module('quayPages').config(['pages', function(pages) {
pages.create('search', 'search.html', SearchCtrl, {
'title': 'Search'
});
}]);
function SearchCtrl($scope, ApiService, $routeParams, $location) {
var refreshResults = function() {
$scope.currentPage = ($routeParams['page'] || '1') * 1;
var params = {
'query': $routeParams['q'],
'page': $scope.currentPage
};
$scope.maxPopularity = 0;
$scope.resultsResource = ApiService.conductRepoSearchAsResource(params).get(function(resp) {
$scope.results = resp['results'];
$scope.hasAdditional = resp['has_additional'];
$scope.startIndex = resp['start_index'];
resp['results'].forEach(function(result) {
$scope.maxPopularity = Math.max($scope.maxPopularity, result['popularity']);
});
});
};
$scope.previousPage = function() {
$location.search('page', (($routeParams['page'] || 1) * 1) - 1);
};
$scope.nextPage = function() {
$location.search('page', (($routeParams['page'] || 1) * 1) + 1);
};
$scope.currentQuery = $routeParams['q'];
refreshResults();
$scope.$on('$routeUpdate', function(){
$scope.currentQuery = $routeParams['q'];
refreshResults();
});
}
SearchCtrl.$inject = ['$scope', 'ApiService', '$routeParams', '$location'];
})();