Add ability to select sort order
[quanweb.git] / js / src / SearchController.js
index 6f48c6c828fc63ddb463f9a8fcd5ed2f5c897438..557fc1aa42c02c5ab1bd1116787481023b626a91 100644 (file)
@@ -5,7 +5,8 @@ var SearchController = (function () {
     var my = {},
         booksModel = undefined;
 
-    const terms = ['aut', 'lan', 'ser', 'tit'];
+    const textFields = ['aut', 'lan', 'ser', 'tit'];
+    const terms = textFields.concat(['lst', 'srt']);
 
     // ==============
     // Public methods
@@ -13,8 +14,8 @@ var SearchController = (function () {
     my.init = function(linkedBooksModel) {
         booksModel = linkedBooksModel;
         
-        for (var idx in terms) {
-            addEnterListener(terms[idx]);
+        for (var idx in textFields) {
+            addEnterListener(textFields[idx]);
         }
     };
     
@@ -28,11 +29,13 @@ var SearchController = (function () {
                 booksModel.ids = jsonValue;
                 booksModel.count = booksModel.ids.length;
                 booksModel.first = (-1);
+
+                const max_pos = Math.max(0, booksModel.count - booksModel.pageSize);
         
                 var elem = Browser.getElementById('slider');
-                elem.max = booksModel.count;
+                elem.max = max_pos;
                 elem = Browser.getElementById('bottom_slider');
-                elem.max = booksModel.count;
+                elem.max = max_pos;
         
                 PagingController.adjustPos(0);
             })
@@ -78,10 +81,14 @@ var SearchController = (function () {
                 else {
                     url += '&';
                 }
-                url += term + '=' + encodeURIComponent('%' + value + '%');
+                if (textFields.includes(term)) {
+                  url += term + '=' + encodeURIComponent('%' + value + '%');
+                }
+                else {
+                  url += term + '=' + encodeURIComponent('' + value);
+                }
             }
         }
-
         return url;
     }