From 55cacf53fcc7a96aeec64c4c5a31324c2cd9693d Mon Sep 17 00:00:00 2001
From: Stephan Porada <sporada@uni-bielefeld.de>
Date: Tue, 12 Nov 2019 12:08:09 +0100
Subject: [PATCH] Add JSON handling with emit and on

---
 app/corpora/events.py                         |  6 ++++-
 app/templates/corpora/corpus_analysis.html.j2 | 25 +++++++------------
 2 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/app/corpora/events.py b/app/corpora/events.py
index 932d24db..1a7637bc 100644
--- a/app/corpora/events.py
+++ b/app/corpora/events.py
@@ -5,6 +5,7 @@ from flask import current_app, request
 from flask_login import login_required
 from .CQiWrapper.CQiWrapper import CQiWrapper
 import logging
+import json
 
 
 '''
@@ -36,13 +37,16 @@ def recv_query(message):
     logger.warning(message)
     analysis_client = analysis_clients[request.sid]
     corpus_name = 'CORPUS'
-    result_subcorpus_name = 'Query-results'  # should be set by the user somehow
+    result_subcorpus_name = 'Query-results'
     query = message['query']
     analysis_client.set_corpus_name(corpus_name)
     analysis_client.create_attribute_strings()
     analysis_client.query_subcorpus(result_subcorpus_name, query)
     results = analysis_client.show_results()
     logger.warning('Query results: {}'.format(str(results)))
+    json_results = json.dumps(results)
+    logger.warning('JSON results are {}'.format(json_results))
+    socketio.emit('query_results', json_results)
 
 
 def observe_corpus_analysis_connection(app, corpus_id, session_id):
diff --git a/app/templates/corpora/corpus_analysis.html.j2 b/app/templates/corpora/corpus_analysis.html.j2
index a742e919..8bb2f867 100644
--- a/app/templates/corpora/corpus_analysis.html.j2
+++ b/app/templates/corpora/corpus_analysis.html.j2
@@ -81,27 +81,20 @@ socket.on('init_corpus_analysis', function(msg) {
     </div>
   </div>
 </div>
+<script>
+socket.on('query_results', function(json_results) {
+  console.log('Results recieved')
+  console.log(json_results)
+  let json_results = json_results;
+});
+</script>
 <div class="col s12 m9 l9">
   <div class="card">
     <div class="card-content">
       <span class="card-title">Query Results</span>
       <table class="responsive highlight">
-       <tr>
-         <th>Firstname</th>
-         <th>Lastname</th>
-         <th>Age</th>
-       </tr>
-       <tr>
-         <td>Jill</td>
-         <td>Smith</td>
-         <td>50</td>
-       </tr>
-       {% for i in range(0,51) %}
-       <tr>
-         <td>Eve</td>
-         <td>Jackson</td>
-         <td>94</td>
-       </tr>
+       {% for hit in json_results %}
+
        {% endfor %}
       </table>
     </div>
-- 
GitLab