CAT-199 Workstation admin default search options for browse
authorKatlyn Beck <kbeck@catalyte.io>
Tue, 29 Jan 2019 19:56:39 +0000 (19:56 +0000)
committerBill Erickson <berickxx@gmail.com>
Thu, 21 Mar 2019 19:54:48 +0000 (15:54 -0400)
- Set eg.search.browse_sort_default on selection of option
in dropdown.
- Append default browse sort to url on browse search.

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Katlyn Beck <kbeck@catalyte.io>
 Changes to be committed:
modified:   Open-ILS/src/templates/staff/admin/workstation/t_splash.tt2
modified:   Open-ILS/web/js/ui/default/staff/admin/workstation/app.js
modified:   Open-ILS/web/js/ui/default/staff/cat/catalog/app.js

Open-ILS/src/templates/staff/admin/workstation/t_splash.tt2
Open-ILS/web/js/ui/default/staff/admin/workstation/app.js
Open-ILS/web/js/ui/default/staff/cat/catalog/app.js

index 345f7db..84bc74d 100644 (file)
             <option value="advanced">[% l('Advanced (default)') %]</option>
             <option value="numeric" >[% l('Numeric') %]</option>
             <option value="expert"  >[% l('MARC Expert') %]</option>
+            <option value="browse"  >[% l('Browse') %]</option>
+          </select>
+        </div>
+      </div>
+
+      <div class="row new-entry">
+        <div class="col-md-8">
+          <label for="results_sort_selector">[% l('Browse Results Default Sort') %]</label>
+          <p>[% l('You can set the default of how items are sorted in the Browse field.') %]</p>
+        </div>
+        <div class="col-md-4">
+          <select id="results_sort_selector" ng-model="results_sort">
+            <option value="pubdate">[% l('Date: Newest to Oldest') %]</option>
+            <option value="pubdate.descending">[% l('Date: Oldest to Newest') %]</option>
+            <option value="titlesort">[% l('Title: A to Z') %]</option>
+            <option value="titlesort.descending">[% l('Title: Z to A') %]</option>
+            <option value="authorsort">[% l('Author: A to Z') %]</option>
+            <option value="authorsort.descending">[% l('Author: Z to A') %]</option>
           </select>
         </div>
       </div>
index d863844..1b0da00 100644 (file)
@@ -206,6 +206,12 @@ function($scope , $window , $location , egCore , egConfirmDialog) {
         }
     });
 
+    $scope.$watch('results_sort', function(newVal, oldVal) {
+        if (typeof newVal != 'undefined' && newVal != oldVal) {
+            egCore.hatch.setItem('eg.search.browse_sort_default', newVal);
+        }
+    });
+
     $scope.apply_sound = function() {
         if ($scope.disable_sound) {
             egCore.hatch.setItem('eg.audio.disable', true);
index dcde7ba..19bdc91 100644 (file)
@@ -1950,8 +1950,17 @@ function($scope , $routeParams , $location , $window , $q , egCore , egHolds , e
             });
         } else {
             $scope.catalog_url = url;
-       }
-
+        }
+        
+        // if we're displaying the browse search form,
+        // select whatever browse sort default the user
+        // has chosen via workstation preference
+        if (url.match(/\?pane=browse/)) {
+            var browse_sort_default = egCore.hatch.getLocalItem('eg.search.browse_sort_default');
+            if (browse_sort_default) {
+                url += '&sort=' + encodeURIComponent(browse_sort_default);
+            }
+        }
     }
 
     function init_parts_url() {