Skip to content
This repository has been archived by the owner on May 4, 2022. It is now read-only.

Commit

Permalink
Merge branch 'master' into fancy-search-result-badges
Browse files Browse the repository at this point in the history
  • Loading branch information
apetro committed Jun 8, 2018
2 parents c20ae78 + c29a6d4 commit 080a140
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 19 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ and this project adheres to
sync with the number of search results actually being displayed. (#827)
* Hide app directory search loading indicator when search returns zero results
(#826)
* Suggest ways to recover from a search with zero results (#828)
* Gracefully handle case where directory search JSON URL is bad, as is the case
in naive localhost demo against stub data (#825)

Expand Down
19 changes: 18 additions & 1 deletion web/src/main/webapp/my-app/search/controllers.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ define([
var initDirectorySearch = function() {
$scope.wiscDirectoryLoading = true;
$scope.wiscDirectoryResultsBadge = '?';
$scope.wiscDirectoryHopeForResults = true;
directorySearchService.directorySearch($scope.searchTerm).then(
function(results) {
$scope.wiscDirectoryLoading = false;
Expand All @@ -112,9 +113,11 @@ define([
$scope.wiscDirectoryResults = results.records;
$scope.wiscDirectoryResultCount = results.count;
$scope.wiscDirectoryResultsBadge = results.count;
// hope for results is well justified, leave it true
} else {
$scope.wiscDirectoryResultsEmpty = true;
$scope.wiscDirectoryResultsBadge = '0';
$scope.wiscDirectoryHopeForResults = false;
}
if (results.errors &&
results.errors[0] &&
Expand All @@ -131,6 +134,7 @@ define([
'Directory search error [' + results.errors[1].error_msg +
'] on term ' + $scope.searchTerm);
$scope.wiscDirectoryResultsBadge = '!';
$scope.wiscDirectoryHopeForResults = false;
}

$scope.wiscDirectoryErrorMessage= results.errors[1].error_msg;
Expand All @@ -143,6 +147,7 @@ define([
$scope.wiscDirectoryErrorMessage =
'Error. Unable to search the directory.';
$scope.wiscDirectoryResultsBadge = '!';
$scope.wiscDirectoryHopeForResults = false;
}
);
};
Expand Down Expand Up @@ -187,6 +192,10 @@ define([
.filter(function(i) {
return appsWithMatchingTitle.indexOf(i) === -1;
}));

if ($scope.filteredApps.length === 0) {
$scope.appDirectoryHopeForResults = false;
}
};

$scope.showAllDirectoryResults = function() {
Expand All @@ -200,15 +209,22 @@ define([
$scope.appDirectoryLoading = true;
$scope.appDirectoryResultsBadge = '?';
$scope.appDirectoryErrorMessage = '';
$scope.googleResults = [];
// there's hope when there are or might be nonzero results
// hopeless when we know there will be no results to show
$scope.appDirectoryHopeForResults = true;

$scope.directoryEnabled = false;
$scope.wiscDirectoryResults = [];
$scope.wiscDirectoryResultCount = 0;
$scope.wiscDirectoryResultsBadge = '?';
$scope.wiscDirectoryTooManyResults = false;
$scope.wiscDirectoryHopeForResults = false;

$scope.googleSearchEnabled = false;
$scope.googleResults = [];
$scope.googleResultsEstimatedCount = 0;
$scope.googleEmptyResults = false;
$scope.googleHopeForResults = false;
$scope.searchResultLimit = 20;
$scope.showAll = $rootScope.GuestMode || false;
base.setupSearchTerm();
Expand All @@ -228,6 +244,7 @@ define([
$scope.appDirectoryResultsBadge = '!';
$scope.appDirectoryErrorMessage =
'Error: Could not load app directory.';
$scope.appDirectoryHopeForResults = false;
});
};
init();
Expand Down
52 changes: 34 additions & 18 deletions web/src/main/webapp/my-app/search/partials/search-results.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,40 @@
</md-tab-label>
<md-tab-body>
<md-content>

<!-- No results and no hope for results;
Offer some failed search recovery suggestions. -->
<div id="no-results" class="search-results-container search-results"
ng-show="!appDirectoryHopeForResults
&& !wiscDirectoryHopeForResults
&& !googleHopeForResults">
<p><strong>No matches.</strong></p>
<p>Suggestions:</p>
<p ng-if="kbSearchUrl">
Search the
<a ng-href="{{kbSearchUrl}}{{searchText}}"
target="_blank" rel="noopener noreferrer">
KnowledgeBase</a>
</p>
<p ng-if="eventsSearchUrl">
Look for
<a ng-href="{{eventsSearchUrl}}{{searchText}}"
target="_blank" rel="noopener noreferrer">
events</a>
</p>
<p ng-if="helpdeskUrl">
Get help from the
<a ng-href="{{helpdeskUrl}}"
target="_blank" rel="noopener noreferrer">
Help Desk</a>
</p>
<p ng-if="feedbackUrl">
<a ng-href="{{feedbackUrl}}"
target="_blank" rel="noopener noreferrer">Give feedback</a>
on {{portal.theme.title}} search
</p>
</div>

<!-- MyUW results -->
<div class="search-results-container">
<marketplace-results></marketplace-results>
Expand All @@ -44,24 +78,6 @@
<div ng-show="googleSearchEnabled" class="search-results-container">
<campus-domain-results></campus-domain-results>
</div>

<!-- No search results found -->
<div id="no-results" class="search-results-container search-results" ng-show="totalCount === 0">
<p><strong>No matches.</strong></p>
<p>Suggestions:</p>
<p ng-if="kbSearchUrl">
Search the <a ng-href="{{kbSearchUrl}}{{searchText}}" target="_blank" rel="noopener noreferrer">KnowledgeBase</a>
</p>
<p ng-if="eventsSearchUrl">
Look for <a ng-href="{{eventsSearchUrl}}{{searchText}}" target="_blank" rel="noopener noreferrer">events</a>
</p>
<p ng-if="helpdeskUrl">
Get help from the <a ng-href="{{helpdeskUrl}}" target="_blank" rel="noopener noreferrer">Help Desk</a>
</p>
<p ng-if="feedbackUrl">
<a ng-href="{{feedbackUrl}}" target="_blank" rel="noopener noreferrer">Give feedback</a> on {{portal.theme.title}} search
</p>
</div>
</md-content>
</md-tab-body>
</md-tab>
Expand Down

0 comments on commit 080a140

Please sign in to comment.