-<!-- patron search progress bar -->
-<div class="row" ng-show="show_search_progress">
- <div class="col-md-6">
- <div class="progress progress-striped active">
- <div class="progress-bar" role="progressbar" aria-valuenow="100"
- aria-valuemin="0" aria-valuemax="100" style="width: 100%">
- <span class="sr-only">[% l('Loading...') %]</span>
- </div>
- </div>
- </div>
-</div>
-
<!-- patron search results grid -->
<eg-grid
- ng-hide="show_search_progress"
idl-class="au" id-field="id"
features="-sort,-display,-multisort"
main-label="[% l('Patron Search Results') %]"
.controller('PatronSearchCtrl',
['$scope','$q','$routeParams','$timeout','$window','$location','egCore',
'$filter','egUser', 'patronSvc','egGridDataProvider','$document',
- 'egPatronMerge',
+ 'egPatronMerge','egProgressDialog',
function($scope, $q, $routeParams, $timeout, $window, $location, egCore,
$filter, egUser, patronSvc , egGridDataProvider , $document,
- egPatronMerge) {
+ egPatronMerge , egProgressDialog) {
$scope.initTab('search');
$scope.focusMe = true;
return deferred.promise;
}
- // Dispay the search progress bar to indicate a search is in progress
- $scope.show_search_progress = true;
+ if (!Object.keys(fullSearch.search).length) {
+ // Empty searches are rejected by the server. Avoid
+ // running the the empty search that runs on page load.
+ return $q.when();
+ }
+
+ egProgressDialog.open(); // Indeterminate
patronSvc.patrons = [];
egCore.net.request(
).then(
function() {
- // hide progress bar on 0-hits searches
- $scope.show_search_progress = false;
deferred.resolve();
},
null, // onerror
function(user) {
// hide progress bar as soon as the first result appears.
- $scope.show_search_progress = false;
+ egProgressDialog.close();
patronSvc.localFlesh(user); // inline
patronSvc.patrons.push(user);
deferred.notify(user);
}
- );
+ )['finally'](egProgressDialog.close); // close on 0-hits or error
return deferred.promise;
};