aboutsummaryrefslogtreecommitdiff
path: root/bh20simplewebuploader
diff options
context:
space:
mode:
Diffstat (limited to 'bh20simplewebuploader')
-rw-r--r--bh20simplewebuploader/main.py9
-rw-r--r--bh20simplewebuploader/static/main.js10
-rw-r--r--bh20simplewebuploader/templates/export.html41
-rw-r--r--bh20simplewebuploader/templates/menu.html1
4 files changed, 58 insertions, 3 deletions
diff --git a/bh20simplewebuploader/main.py b/bh20simplewebuploader/main.py
index 2c360e1..b88055f 100644
--- a/bh20simplewebuploader/main.py
+++ b/bh20simplewebuploader/main.py
@@ -630,6 +630,10 @@ def validated_page():
validated_table(output, validated)
return render_template('validated.html', table=Markup(output.getvalue()), menu='STATUS')
+@app.route('/export')
+def export_page():
+ return render_template('export.html',menu='EXPORT')
+
@app.route('/demo')
def demo_page():
return render_template('demo.html',menu='DEMO',load_map=True)
@@ -685,6 +689,11 @@ def getCountDB():
# print(result, file=sys.stderr)
return jsonify({'sequences': int(result[0]["num"]["value"])})
+# Execute a 'global search'
+@app.route('/api/search', methods=['GET'])
+def search():
+ return jsonify(["TESTME"])
+
@app.route('/api/getAllaccessions', methods=['GET'])
def getAllaccessions():
query="""SELECT DISTINCT ?fasta ?value WHERE {?fasta ?x[ <http://edamontology.org/data_2091> ?value ]}"""
diff --git a/bh20simplewebuploader/static/main.js b/bh20simplewebuploader/static/main.js
index 1633c25..dc0864b 100644
--- a/bh20simplewebuploader/static/main.js
+++ b/bh20simplewebuploader/static/main.js
@@ -21,8 +21,6 @@ function fetchAPI(apiEndPoint) {
.then(data => {
console.log(data);
});
- document.getElementById("map_view").classList.add("invisible");
- document.getElementById("loader").classList.remove("invisible");
}
// Copy from function above but now output HTML table instead of plain json
@@ -51,7 +49,13 @@ function fetchHTMLTable(apiEndPoint) {
}
-let search = () => {
+/* Fetch record info using a 'global search' */
+let searchGlobal = () => {
+ let m = document.getElementById('search-input').value;
+ fetchAPI(scriptRoot + "/api/search?s=" + encodeURIComponent(m));
+}
+
+let searchSeq = () => {
let m = document.getElementById('search-input').value;
fetchAPI(scriptRoot + "/api/getDetailsForSeq?seq=" + encodeURIComponent(m));
}
diff --git a/bh20simplewebuploader/templates/export.html b/bh20simplewebuploader/templates/export.html
new file mode 100644
index 0000000..f105290
--- /dev/null
+++ b/bh20simplewebuploader/templates/export.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+ {% include 'header.html' %}
+ <body>
+ {% include 'banner.html' %}
+ {% include 'menu.html' %}
+
+ <h1>Export Data</h1>
+ <section class="blog">
+
+ COVID-19 PubSeq allows for exporting forms and data for other
+ services.
+
+ <h2>Export EBI/ENA Forms</h2>
+
+ <p>
+ Uploading data to EBI/ENA with PubSeq is described
+ <a href="/blog?id=using-covid-19-pubseq-part6">here</a>.
+ To export, first search for an uploaded entry through its
+ identifier:
+ </p>
+
+ <div class="search">
+ <input id="search-input" type="search" placeholder="e.g. MT246484" required>
+ <button class="button search-button" type="submit" onclick="searchGlobal()">
+ <span class="icon ion-search">
+ <span class="sr-only">Search</span>
+ </span>
+ </button>
+ </div>
+
+ </section>
+
+ {% include 'footer.html' %}
+
+ <script type="text/javascript">
+ let scriptRoot = {{ request.script_root|tojson|safe }}; // examples
+ </script>
+ </body>
+
+</html>
diff --git a/bh20simplewebuploader/templates/menu.html b/bh20simplewebuploader/templates/menu.html
index 0f6003f..d408171 100644
--- a/bh20simplewebuploader/templates/menu.html
+++ b/bh20simplewebuploader/templates/menu.html
@@ -5,6 +5,7 @@
<a href="/upload" class="{{ 'active' if menu=='UPLOAD' }}">UPLOAD</a>
<a href="/status" class="{{ 'active' if menu=='STATUS' }}">STATUS</a>
<a href="/demo" class="{{ 'active' if menu=='DEMO' }}">DEMO</a>
+ <a href="/export" class="{{ 'active' if menu=='EXPORT' }}">EXPORT</a>
<a href="/blog" class="{{ 'active' if menu=='BLOG' }}">BLOG</a>
<a href="/about" class="{{ 'active' if menu=='ABOUT' }}">ABOUT</a>
<a href="javascript:void(0);" class="icon" onclick="myFunction()">