Browse Source

Load paginated data

bvj 4 years ago
parent
commit
2ecbaee13b
1 changed files with 31 additions and 5 deletions
  1. 31 5
      main.js

+ 31 - 5
main.js

@@ -16,6 +16,7 @@ define([
 	var side_panel_min_rel_width = 10;
 	var side_panel_min_rel_width = 10;
     var side_panel_max_rel_width = 90;
     var side_panel_max_rel_width = 90;
     var side_panel_start_width = 45;
     var side_panel_start_width = 45;
+    var load_next;
     var cfg = {
     var cfg = {
         //'micka_url': 'https://hub.lesprojekt.cz/micka/',
         //'micka_url': 'https://hub.lesprojekt.cz/micka/',
         'micka_url': '',
         'micka_url': '',
@@ -37,13 +38,29 @@ define([
     };
     };
     // do search 
     // do search 
     search_micka = function () {
     search_micka = function () {
+        load_next = 1;
+        document.getElementById('msres').innerHTML = '';
         var query = document.getElementById('mquery').value;
         var query = document.getElementById('mquery').value;
         query = query.length > 0 ? `FullText%3D'${query}'` : '';
         query = query.length > 0 ? `FullText%3D'${query}'` : '';
-        var mdata = fetch_metatada(`?request=GetRecords&query=${query}&format=application/json&MaxRecords=9999&StartPosition=&sortby=title%3AA&language=eng&outputSchema=http://www.w3.org/2005/Atom&typenames=gmd:MD_Metadata`);
+        var mdata = fetch_metatada(`?request=GetRecords&query=${query}&format=application/json&MaxRecords=9999&sortby=title%3AA&language=eng&outputSchema=http://www.w3.org/2005/Atom&typenames=gmd:MD_Metadata&StartPosition=${load_next}`);
         mdata.then(response => response.json())
         mdata.then(response => response.json())
         .then(arrayOfMetadata => {
         .then(arrayOfMetadata => {
             create_view(arrayOfMetadata.records);
             create_view(arrayOfMetadata.records);
-            
+            create_load(arrayOfMetadata.next);
+        })
+        .catch(error => {
+            console.log(log_prefix + error);
+        });
+    };
+    // load next page 
+    search_micka_next = function () {
+        var query = document.getElementById('mquery').value;
+        query = query.length > 0 ? `FullText%3D'${query}'` : '';
+        var mdata = fetch_metatada(`?request=GetRecords&query=${query}&format=application/json&MaxRecords=9999&sortby=title%3AA&language=eng&outputSchema=http://www.w3.org/2005/Atom&typenames=gmd:MD_Metadata&StartPosition=${load_next}`);
+        mdata.then(response => response.json())
+        .then(arrayOfMetadata => {
+            create_view(arrayOfMetadata.records);
+            create_load(arrayOfMetadata.next);
         })
         })
         .catch(error => {
         .catch(error => {
             console.log(log_prefix + error);
             console.log(log_prefix + error);
@@ -68,8 +85,17 @@ define([
             output += '</p>';
             output += '</p>';
             output += '</details>';
             output += '</details>';
         });
         });
-        document.getElementById('msres').innerHTML = output;
+        document.getElementById('msres').innerHTML += output;
     };
     };
+    //check pagination, enable load next page
+    var create_load = function (next) {
+        if (next) {
+            load_next += 100;
+            document.getElementById('msnext').innerHTML = `<button onclick="search_micka_next()">More</button>`;		
+        } else {
+            document.getElementById('msnext').innerHTML ='';
+        }
+    }
 	
 	
 /////////////////////////////////
 /////////////////////////////////
 
 
@@ -186,8 +212,8 @@ define([
 		<input type="text" id="mquery" onfocus="Jupyter.keyboard_manager.disable()" onfocusout="Jupyter.keyboard_manager.enable()">
 		<input type="text" id="mquery" onfocus="Jupyter.keyboard_manager.disable()" onfocusout="Jupyter.keyboard_manager.enable()">
 		<button onclick="search_micka();Jupyter.keyboard_manager.enable()" id="msBtn">Search</button>
 		<button onclick="search_micka();Jupyter.keyboard_manager.enable()" id="msBtn">Search</button>
 		</div>
 		</div>
-		<div id="msres">
-		</div>
+		<div id="msres"></div>
+		<div id="msnext"></div>
 		<script>
 		<script>
 		var msinput = document.getElementById("mquery");
 		var msinput = document.getElementById("mquery");
 		msinput.addEventListener("keyup", function(event) {
 		msinput.addEventListener("keyup", function(event) {