aboutsummaryrefslogtreecommitdiff
path: root/gn2/wqflask/templates
diff options
context:
space:
mode:
authorMunyoki Kilyungi2024-03-27 12:14:59 +0300
committerBonfaceKilz2024-03-27 17:59:06 +0300
commit505899f424c043d05de31188a1ef145fc03a1a6c (patch)
tree99c5bcfef72a20d1efe21c4d593ff6ea2022842e /gn2/wqflask/templates
parent04e1e23e76182d9a08de8817ef0771ad2e396655 (diff)
downloadgenenetwork2-505899f424c043d05de31188a1ef145fc03a1a6c.tar.gz
Clean up gnqa answer page.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com> Co-authored-by: Alexander Kabui <alexanderkabua@gmail.com>
Diffstat (limited to 'gn2/wqflask/templates')
-rw-r--r--gn2/wqflask/templates/gnqa.html5
-rw-r--r--gn2/wqflask/templates/gnqa_answer.html375
2 files changed, 77 insertions, 303 deletions
diff --git a/gn2/wqflask/templates/gnqa.html b/gn2/wqflask/templates/gnqa.html
index 1c373289..1b08deb2 100644
--- a/gn2/wqflask/templates/gnqa.html
+++ b/gn2/wqflask/templates/gnqa.html
@@ -56,7 +56,9 @@
#gnqna_search_home {
field-sizing: normal;
}
-
+ .answers {
+ width: 75%;
+ }
</style>
{% endblock %}
@@ -103,6 +105,7 @@
</h1>
</header>
<form class="col-sm-12" id="gnqna_search_home"
+ hx-history="true"
hx-post="/gnqna"
hx-target=".gnqa-copy"
hx-swap="outerHTML"
diff --git a/gn2/wqflask/templates/gnqa_answer.html b/gn2/wqflask/templates/gnqa_answer.html
index beaf8e99..50c7ff53 100644
--- a/gn2/wqflask/templates/gnqa_answer.html
+++ b/gn2/wqflask/templates/gnqa_answer.html
@@ -1,320 +1,91 @@
-{% extends "base.html" %}
-{% block title %}GNQNA{% endblock %}
-
-{% block css %}
-<link rel="stylesheet" type="text/css" href="/static/new/css/markdown.css" />
-<style type="text/css">
- #loader {
- display: none;
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- width: 100%;
- background: rgba(0,0,0,0.75) url("/static/gif/loader.gif") no-repeat center center;
- z-index: 10000;
- }
-
- .btn{
- cursor: pointer;
- outline: 0;
- color: #AAA;
-
- }
-
- .btn:focus {
- outline: none;
- }
-
-
- .blue-btn{
- color: blue;
- }
-
- .red-btn{
- color: red;
- }
- .panel-heading {
- padding: 0;
- border:0;
- }
- .panel-title a, .panel-title a:active {
- display:block;
- padding:15px;
- color:#555;
- font-weight:bold;
- text-decoration:none;
- border: none;
-
- outline: none;
- }
-
- .panel-heading a:before {
- font-family: 'Glyphicons Halflings';
- content: "\e114";
- float: right;
- transition: all 0.5s;
- }
-
- .panel-heading.active a:before {
- -webkit-transform: rotate(180deg);
- -moz-transform: rotate(180deg);
- transform: rotate(180deg);
- }
-
-</style>
-{% endblock %}
-
-{% block content %} <!-- Start of body -->
-
-<div style="min-height: 100vh;width: 100vw; margin-bottom: 10px;">
- <div id="loader"></div>
- <div style="margin:10px; border:1px solid #ccc;padding: 15px;">
- <div >
- <h1 id="gnqa_query" style="font-weight: bolder">{{query}}<h1>
- </div>
-
- <div style="width:90vw;overflow-wrap: normal; margin-top: 5px;">
- <p id="gnqa_answer">{{answer}} <p>
- </div>
-
- <div>
- <div class="rating" style="margin-right:30px;padding:8px;text-align: right;" data-doc-id="{{query}}" data-task-id="{{task_id['task_id']}}">
-
- <button class="btn" id="green" data-toggle="tooltip" data-placement="top" title="rate this answer +1 "><i class="fa fa-thumbs-up fa-lg fa-2x" aria-hidden="true"></i></button>
- <button class="btn" id="red" data-toggle="tooltip" data-placement="top" title="rate this answer -1"><i class="fa fa-thumbs-down fa-lg fa-2x" aria-hidden="true"></i></button>
-
- </div>
-
+<section class="container-fluid answers">
+ <h1 class="row text-left">
+ {{ query }}
+ </h1>
+ <div class="row">
+ <p class="col-sm-12 lead">{{ answer }}</p>
+ <div class="rating col-sm-3 col-offset-3" data-doc-id="{{query}}" data-task-id="{{task_id['task_id']}}">
+ <button class="btn btn-success" data-toggle="tooltip" data-placement="top" title="Vote Up"><i class="fa fa-thumbs-up fa-lg fa-2x" aria-hidden="true"></i></button>
+ <button class="btn btn-danger" data-toggle="tooltip" data-placement="top" title="Vote Down"><i class="fa fa-thumbs-down fa-lg fa-2x" aria-hidden="true"></i></button>
</div>
</div>
-
- <div>
-
-
- <div class="container" style="min-width:85vw;overflow-y: auto;min-height: 100vh;">
- <h4> <a href="#" style="font-weight: bold;">References</a></h4>
- {% if references %}
- <ul id="gnqa_ref">
-
- {% for reference in references %}
-
- <li id="gnqa_ref_item">
- <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
- <!--panel starts here -->
- <div class="panel panel-default">
- {% if loop.first %}
-
- <div class="panel-heading active" role="tab" id="heading{{reference.doc_id}}">
- <h4 class="panel-title">
-
- <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse{{reference.doc_id}}" aria-expanded="true" aria-controls="collapse{{reference.doc_id}}">
- <h2 style="font-weight:bold;">{{ reference.bibInfo }} </h2>
- </a>
- </h4>
- </div>
-
-
- <div id="collapse{{reference.doc_id}}" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="heading{{reference.doc_id}}">
- <div class="panel-body">
-
- <div>
- </div>
- {% if reference.pubmed %}
-
- <div style="margin: 5px;color:#3071a9;cursor: pointer;" >
-
- <button type="button" data-toggle="modal" data-target=".bd-pubmed-modal-lg-{{reference.doc_id}}" style="border:none;text-decoration:underline;outline: none;padding:5px;margin-left:25px;background: transparent;">
- <span><b>See PubMed Info</b></span>
- </button>
- </div>
-
-
- <div>
- {% include 'pubmed_modal.html' %}
- </div>
-
-
- {% endif %}
-
- <p class="node-references">{{reference.comboTxt}}</p>
-
-
+ <div class="row container">
+ <h1>References</h1>
+ {% if references %}
+
+ <ul class="list-unstyled">
+ {% for reference in references %}
+ <li>
+ <div class="panel-group" role="tablist" aria-multiselectable="true">
+ <div class="panel panel-default">
+ {% if loop.first %}
+ <div class="panel-heading active" role="tab" id="heading{{ reference.doc_id }}">
+ <h4 class="panel-title">
+
+ <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse{{ reference.doc_id }}" aria-expanded="true" aria-controls="collapse{{reference.doc_id}}">
+ <h2>{{ reference.bibInfo }} </h2>
+ </a>
+ </h4>
+ </div>
+ <div id="collapse{{reference.doc_id}}" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="heading{{reference.doc_id}}">
+ <div class="panel-body">
+ <div>
</div>
- </div>
-
-
-
- {% else %}
-
- <div class="panel-heading" role="tab" id="heading{{reference.doc_id}}">
- <h4 class="panel-title">
-
- <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse{{reference.doc_id}}" aria-expanded="false" aria-controls="collapse{{reference.doc_id}}">
- <h2 style="font-weight:bold;">{{ reference.bibInfo }} </h2>
- </a>
- </h4>
- </div>
-
-
-
- <div id="collapse{{reference.doc_id}}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading{{reference.doc_id}}">
-
- <div class="panel-body">
-
-
- {% if reference.pubmed %}
-
-
- <div style="margin: 5px;color:#3071a9;cursor: pointer;" >
-
- <button type="button" data-toggle="modal" data-target=".bd-pubmed-modal-lg-{{reference.doc_id}}" style="border:none;text-decoration:underline;outline: none;padding:5px;margin-left:25px;background: transparent;">
- <span><b>See PubMed Info</b></span>
- </button>
- </div>
-
-
-
- <div>
- {% include 'pubmed_modal.html' %}
-
- </div>
-
-
-
- {% endif %}
+ {% if reference.pubmed %}
+ <div style="margin: 5px;color:#3071a9;cursor: pointer;" >
<p class="node-references">{{reference.comboTxt}}</p>
-
- </div>
+ <details>
+ <summary>See PubMed Info</summary>
+ <h4>{{ reference.pubmed[0].get('title') }}</h4>
+ <p><b>Authors: {{ reference.pubmed[0].get('authors') }}</b></p>
+ <p><b>PMID: {{ reference.pubmed[0].get('pub_id') }}</b></p>
+ <p><b>Abstract: </b> {{ reference.pubmed[0].get('abstract')|safe }}</p>
+ <p><i><a href="{{reference.pubmed[0].get('source')}}" target="_blank" style="float:left;">See full Article on Pubmed</a></i></p>
+ </details>
+ {% endif %}
</div>
- {% endif %}
-
</div>
-
+ {% else %}
+ <div class="panel-heading" role="tab" id="heading{{reference.doc_id}}">
+ <h4 class="panel-title">
+
+ <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse{{reference.doc_id}}" aria-expanded="false" aria-controls="collapse{{reference.doc_id}}">
+ <h2 style="font-weight:bold;">{{ reference.bibInfo }} </h2>
+ </a>
+ </h4>
</div>
- </li>
- {% endfor %}
- </ul>
- {% else %}
- <p>No references available.</p>
- {% endif %}
- </div>
- </div>
-</div>
-{% endblock %}
-
-{% block js %}
-<script src="{{ url_for('js', filename='jquery/jquery.min.js') }}" type="text/javascript"></script>
-<script src="{{ url_for('js', filename='linkify/linkify.min.js') }}" type="text/javascript"></script>
-<script src="{{ url_for('js', filename='linkify/linkify-html.min.js') }}" type="text/javascript"></script>
-<script type="text/javascript">
- $('.panel-collapse').on('show.bs.collapse', function () {
- $(this).siblings('.panel-heading').addClass('active');
- });
- $('.panel-collapse').on('hide.bs.collapse', function () {
- $(this).siblings('.panel-heading').removeClass('active');
- });
+ <div id="collapse{{reference.doc_id}}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading{{reference.doc_id}}">
- document.addEventListener('DOMContentLoaded', function() {
- const GN_SERVER_URL = {{gn_server_url|tojson}}
- $('#globalsearchform').hide()
- $('footer').hide()
- const answer = {{ answer | tojson }};
- const query = {{query | tojson }}
- const task_id = {{ task_id | tojson }}["task_id"];
- async function voteRequest (gn_server_url,task_id,metadata){
- try{
- const response = await fetch(`/gnqna/rating/${task_id}`,{
- method:"POST",
- headers: {
- 'Content-Type': 'application/json'
- },
- body: JSON.stringify(metadata)
- })
- if (response.ok){
- return {"message":"success",status:0}
- }
- else {
- let {error,error_description} = await response.json()
- return {"message":`HTTP Error:HTTP Response Code: ${response?.status}-reason-${error_description}`,status:1}
- }
- }
- catch (err){
- return {"message":err,status:1}}
- }
- likeBtn = document.querySelector("#green");
- dislikeBtn = document.querySelector("#red")
- likeBtn.addEventListener("click",(event)=>{
- if (likeBtn.classList.contains("blue-btn")){
- var {caller,weight} = (voteWeight["default"])
- }
- else {
- var {caller,weight} = voteWeight["like"]
+ <div class="panel-body">
- }
- voteRequest(GN_SERVER_URL,task_id,{weight,query,answer}).then(({message,status})=>{
- alert(message);
- status == 0 ? caller():"";
- })
- })
- dislikeBtn.addEventListener("click", (event) = {
- var {caller,weight} = voteWeight["dislike"]
- if (dislikeBtn.classList.contains("red-btn")){
- var {caller,weight} = (voteWeight["default"])
- }
- voteRequest(GN_SERVER_URL,task_id,{weight,query,answer}).then(({message,status})=>{
- alert(message)
- status == 0 ? caller():""
- }));
- let voteWeight = {
- like: {
- caller:function(){
- dislikeBtn.classList.remove("red-btn")
- likeBtn.classList.toggle("blue-btn")
- },
- weight: 1
- },
- dislike: {
- caller:function(){
- likeBtn.classList.remove("blue-btn")
- dislikeBtn.classList.toggle("red-btn")
- },
+ {% if reference.pubmed %}
- weight:-1
- },
- default: {
- caller:function() {
- likeBtn.classList.remove("blue-btn")
- dislikeBtn.classList.remove("red-")
- },
- }}
-</script>
-<script type="text/javascript">
- function nodeLinkify(node_list) {
- node_list.forEach((node) => {
- node.innerHTML = linkifyHtml(node.innerHTML, {
- target:{
- url:"_blank",
- email:null
- }
- })
- })
+ <div style="margin: 5px;color:#3071a9;cursor: pointer;" >
- nodeLinkify(document.querySelectorAll(".pubmed-abstract"))
+ <button type="button" data-toggle="modal" data-target=".bd-pubmed-modal-lg-{{reference.doc_id}}" style="border:none;text-decoration:underline;outline: none;padding:5px;margin-left:25px;background: transparent;">
+ <span><b>See PubMed Info</b></span>
+ </button>
+ </div>
- nodeLinkify(document.querySelectorAll(".node-references"))
+ {% endif %}
- var coll = document.getElementsByClassName("collapsible-btn");
- for (var i = 0; i < coll.length; i++) {
- coll[i].addEventListener("click", function() {
+ <p class="node-references">{{reference.comboTxt}}</p>
- this.classList.toggle("active-btn");
- });
- }
-</script>
-{% endblock %}
+ </div>
+ </div>
+ {% endif %}
+ </div>
+ </div>
+ </li>
+ {% endfor %}
+ </ul>
+
+ {% else %}
+ <p><i>No references available.</i></p>
+ {% endif %}
+ </div>
+</section>