From 6b2ac7c6f2402c76f030b9456b1e0c57fcf8bbb1 Mon Sep 17 00:00:00 2001 From: lltommy Date: Sun, 14 Jun 2020 21:55:26 +0200 Subject: Tried to make a start with the 'demo' part, table works, drilling down not --- bh20simplewebuploader/main.py | 18 +++++----- bh20simplewebuploader/static/main.js | 48 +++++++++++++++++++++++---- bh20simplewebuploader/templates/demo-run.html | 15 ++++++--- 3 files changed, 61 insertions(+), 20 deletions(-) diff --git a/bh20simplewebuploader/main.py b/bh20simplewebuploader/main.py index 851d8d5..b67e1bf 100644 --- a/bh20simplewebuploader/main.py +++ b/bh20simplewebuploader/main.py @@ -539,9 +539,9 @@ def getSEQCountbytech(): payload = {'query': query, 'format': 'json'} r = requests.get(baseURL, params=payload) result = r.json()['results']['bindings'] - return jsonify([{'Fasta Count': x['fastaCount']['value'], - 'tech': x['tech']['value'], - 'Label': x['tech_label']['value']} for x in result]) + return jsonify([{'count': x['fastaCount']['value'], + 'key': x['tech']['value'], + 'label': x['tech_label']['value']} for x in result]) ## List all Sequences/submissions by a given tech, as example e.g. http://purl.obolibrary.org/obo/OBI_0000759 ## Has to be encoded again so should be --> http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FOBI_0000759 @@ -582,9 +582,9 @@ def getSEQCountbyLocation(): payload = {'query': query, 'format': 'json'} r = requests.get(baseURL, params=payload) result = r.json()['results']['bindings'] - return jsonify([{'Fasta Count': x['fastaCount']['value'], - 'GeoLocation': x['geoLocation']['value'], - 'GeoLocation Label': x['geoLocation_label']['value']} for x in result]) + return jsonify([{'count': x['fastaCount']['value'], + 'key': x['geoLocation']['value'], + 'label': x['geoLocation_label']['value']} for x in result]) @app.route('/api/getSEQCountbySpecimenSource', methods=['GET']) @@ -599,9 +599,9 @@ def getSEQCountbySpecimenSource(): payload = {'query': query, 'format': 'json'} r = requests.get(baseURL, params=payload) result = r.json()['results']['bindings'] - return jsonify([{'Fasta Count': x['fastaCount']['value'], - 'Specimen Source': x['specimen_source']['value'], - 'Label': x['specimen_source_label']['value']} for x in result]) + return jsonify([{'count': x['fastaCount']['value'], + 'key': x['specimen_source']['value'], + 'label': x['specimen_source_label']['value']} for x in result]) # Example specimen http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FNCIT_C155831 @app.route('/api/getSEQbySpecimenSource', methods=['GET']) diff --git a/bh20simplewebuploader/static/main.js b/bh20simplewebuploader/static/main.js index 9373199..d90b5af 100644 --- a/bh20simplewebuploader/static/main.js +++ b/bh20simplewebuploader/static/main.js @@ -28,6 +28,28 @@ function fetchAPI(apiEndPoint) { } +function fetchAPIV2(apiEndPoint) { + fetch(scriptRoot + apiEndPoint) + .then(response => { + return response.json(); + }) + .then(data => { + console.log(data) + htmlString="" + + // Depending on what we want to explore we'd have to call a different function ....? But how to Include that? + for (var i=0; i" + } + htmlString=htmlString+"
"+data[i]["label"]+""+data[i]["count"]+"
" + + document.getElementById("table").innerHTML = htmlString + }); + + document.getElementById("results").classList.add("invisible"); +} + + let search = () => { let m = document.getElementById('search-input').value; fetchAPI(scriptRoot + "/api/getDetailsForSeq?seq=" + encodeURIComponent(m)); @@ -37,22 +59,36 @@ let fetchCount = () => { fetchAPI("/api/getCount"); } -let fetchSEQBySpecimen = () => { - fetchAPI("/api/getSEQCountbySpecimenSource"); +let fetchSEQCountBySpecimen = () => { + fetchAPIV2("/api/getSEQCountbySpecimenSource"); } -let fetchSEQByLocation = () => { - fetchAPI("/api/getSEQCountbyLocation"); +let fetchSEQCountByLocation = () => { + fetchAPIV2("/api/getSEQCountbyLocation"); } -let fetchSEQByTech = () => { - fetchAPI("/api/getSEQCountbytech"); +let fetchSEQCountByTech = () => { + fetchAPIV2("/api/getSEQCountbytech"); } let fetchAllaccessions = () => { fetchAPI("/api/getAllaccessions"); }; +let fetchCountByGPS = () => { + fetchAPI("/api/getCountByGPS"); +}; + +let fetchSEQCountbyLocation = () => { + fetchAPIV2("/api/getSEQCountbyLocation"); +}; + +let fetchSEQByLocation = () => { + console.log("Missing - set parameter for request, retrieve data") +}; + + + /* * Make sure that only one of the manual metadata entry and metadata upload * form components is *actually* a child of the form element in the DOM. diff --git a/bh20simplewebuploader/templates/demo-run.html b/bh20simplewebuploader/templates/demo-run.html index 52129ec..4479409 100644 --- a/bh20simplewebuploader/templates/demo-run.html +++ b/bh20simplewebuploader/templates/demo-run.html @@ -1,12 +1,13 @@

[Demo] Display content sequences by:

-
- - - - + + + + + +
@@ -18,4 +19,8 @@
+ +
+
+
-- cgit v1.2.3