From e29efbbcdf0735b6e5d13c4555e0110b1a988dce Mon Sep 17 00:00:00 2001 From: Kevin Van Kessel Date: Mon, 22 Aug 2016 12:52:34 -0700 Subject: [PATCH 1/3] [Search] 'All' selected upon no filters. Fixes #1117 Upon deselecting every filter, the search returns nothing. This serves no useful purpose as discussed in #1117. Now deselecting every filter automatically selects 'All'. --- .../search/src/controllers/SearchMenuController.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/platform/search/src/controllers/SearchMenuController.js b/platform/search/src/controllers/SearchMenuController.js index ae53338795..f6018b732c 100644 --- a/platform/search/src/controllers/SearchMenuController.js +++ b/platform/search/src/controllers/SearchMenuController.js @@ -80,7 +80,7 @@ define(function () { // If there's still nothing in the filters string, there are no // filters selected if ($scope.ngModel.filtersString === '') { - $scope.ngModel.filtersString = 'NONE'; + $scope.ngModel.checkAll = true; } } @@ -95,12 +95,11 @@ define(function () { $scope.ngModel.checked[type] = false; }); - // Change the filters string depending on checkAll status - if ($scope.ngModel.checkAll) { - // This setting will make the filters display hidden - $scope.ngModel.filtersString = ''; - } else { - $scope.ngModel.filtersString = 'NONE'; + // This setting will make the filters display hidden + $scope.ngModel.filtersString = ''; + // Do not let checkAll become unchecked when it is the only checked filter + if (!$scope.ngModel.checkAll) { + $scope.ngModel.checkAll = true; } // Re-filter results From 702ebbd557ac4bc8c773ef3decf32a70262d8645 Mon Sep 17 00:00:00 2001 From: Kevin Van Kessel Date: Mon, 22 Aug 2016 13:19:47 -0700 Subject: [PATCH 2/3] [Search] Update test for #1117 fix. Changed test to work properly with #1117 fix. Checks if checkAll gets checked when no options are checked. Checks if changing checkAll updates the filter string to '' --- .../search/test/controllers/SearchMenuControllerSpec.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/platform/search/test/controllers/SearchMenuControllerSpec.js b/platform/search/test/controllers/SearchMenuControllerSpec.js index dcee87fd47..be4443d4cf 100644 --- a/platform/search/test/controllers/SearchMenuControllerSpec.js +++ b/platform/search/test/controllers/SearchMenuControllerSpec.js @@ -83,7 +83,7 @@ define( mockScope.ngModel.checkAll = false; controller.checkAll(); - expect(mockScope.ngModel.filtersString).toEqual('NONE'); + expect(mockScope.ngModel.filtersString).toEqual(''); }); it("checking checkAll option resets other options", function () { @@ -97,7 +97,7 @@ define( }); }); - it("tells the user when no options are checked", function () { + it("checks checkAll when no options are checked", function () { Object.keys(mockScope.ngModel.checked).forEach(function (type) { mockScope.ngModel.checked[type] = false; }); @@ -105,7 +105,8 @@ define( controller.updateOptions(); - expect(mockScope.ngModel.filtersString).toEqual('NONE'); + expect(mockScope.ngModel.filtersString).toEqual(''); + expect(mockScope.ngModel.checkAll).toEqual(true); }); it("tells the user when options are checked", function () { From 6cbdaa442b4c8c4666cff9c61560a5fb05f0c83d Mon Sep 17 00:00:00 2001 From: Kevin Van Kessel Date: Sun, 28 Aug 2016 12:01:42 -0700 Subject: [PATCH 3/3] [Search] Repurposed checkAll test. #1117 Changed test to ensure checkAll and it's appropriate filter string are set whenever checkAll is changed. Removed redundant line checking for a filter string of 'NONE' as this is no longer a possibility. --- platform/search/test/controllers/SearchMenuControllerSpec.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/platform/search/test/controllers/SearchMenuControllerSpec.js b/platform/search/test/controllers/SearchMenuControllerSpec.js index be4443d4cf..611f0d5a08 100644 --- a/platform/search/test/controllers/SearchMenuControllerSpec.js +++ b/platform/search/test/controllers/SearchMenuControllerSpec.js @@ -76,13 +76,15 @@ define( expect(mockScope.ngModel.filtersString).not.toEqual(''); }); - it("changing checkAll status updates the filter string", function () { + it("changing checkAll status sets checkAll to true", function () { controller.checkAll(); + expect(mockScope.ngModel.checkAll).toEqual(true); expect(mockScope.ngModel.filtersString).toEqual(''); mockScope.ngModel.checkAll = false; controller.checkAll(); + expect(mockScope.ngModel.checkAll).toEqual(true); expect(mockScope.ngModel.filtersString).toEqual(''); }); @@ -117,7 +119,6 @@ define( controller.updateOptions(); - expect(mockScope.ngModel.filtersString).not.toEqual('NONE'); expect(mockScope.ngModel.filtersString).not.toEqual(''); }); });