about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLei Yan2015-07-23 16:35:25 +0000
committerLei Yan2015-07-23 16:35:25 +0000
commitb32f4a01c339bf29556b1ac933afdff8236cd19d (patch)
tree7d5a875411bb6ee47ac4c9be1fa40ae3c59d3878
parent5eadc461dbc9f60457d83e4a75f5e0cf043a87ca (diff)
downloadgenenetwork2-b32f4a01c339bf29556b1ac933afdff8236cd19d.tar.gz
Committer: Lei Yan <lei@penguin.uthsc.edu>
On branch master
-rwxr-xr-xwqflask/wqflask/templates/base.html14
-rwxr-xr-xwqflask/wqflask/templates/gsearchact.html147
-rwxr-xr-xwqflask/wqflask/views.py5
3 files changed, 166 insertions, 0 deletions
diff --git a/wqflask/wqflask/templates/base.html b/wqflask/wqflask/templates/base.html
index 78682710..79eeae9c 100755
--- a/wqflask/wqflask/templates/base.html
+++ b/wqflask/wqflask/templates/base.html
@@ -73,6 +73,20 @@
                 </div>
             </div>
     </div>
+	
+	<div class="container-fluid" style="background-color: #d5d5d5; height: 95px;">
+	
+					<form method="get" action="/gsearch">
+					<div class="row" >
+						<select class="form-control col-xs-2" style="width: 170px; margin-top: 15px; margin-left: 10px;" name="type">
+							<option value="gene">Genes / Molecules</option>
+							<option value="phenotype">Phenotypes</option>
+						</select>
+						<input class="btn btn-primary form-control col-xs-2" style="width: 100px; margin-top: 15px; margin-left: 10px;" type="submit" value="Search All">
+						<input class="form-control col-xs-6" style="width: 980px; margin-top: 15px; margin-left: 10px;" type="text" name="terms" required>
+					</div>
+					</form>
+					</div>
 
     {% block content %}{% endblock %}
 
diff --git a/wqflask/wqflask/templates/gsearchact.html b/wqflask/wqflask/templates/gsearchact.html
new file mode 100755
index 00000000..26d7b5cd
--- /dev/null
+++ b/wqflask/wqflask/templates/gsearchact.html
@@ -0,0 +1,147 @@
+{% extends "base.html" %}
+{% block title %}Search Results{% endblock %}
+{% block css %}
+    <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+    <link rel="stylesheet" type="text/css" href="/static/packages/DT_bootstrap/DT_bootstrap.css" />
+    <link rel="stylesheet" type="text/css" href="/static/packages/TableTools/media/css/TableTools.css" />
+{% endblock %}
+{% block content %}
+<!-- Start of body -->
+
+    <div class="container">
+
+        <p>To study a record, click on its ID below.<br />Check records below and click Add button to add to selection.</p>
+
+        <div>
+            <br />
+            <button class="btn btn-default" id="select_all"><span class="glyphicon glyphicon-ok"></span> Select All</button>
+            <button class="btn btn-default" id="deselect_all"><span class="glyphicon glyphicon-remove"></span> Deselect All</button>
+            <button class="btn btn-default" id="invert"><span class="glyphicon glyphicon-resize-vertical"></span> Invert</button>
+            <button class="btn btn-default" id="add"><span class="glyphicon glyphicon-plus-sign"></span> Add</button>
+            <button class="btn btn-primary pull-right"><span class="glyphicon glyphicon-download"></span> Download Table</button>
+            <br />
+            <br />
+            <table class="table table-hover table-striped" id="trait_table">
+                <thead>
+                    <tr>
+						<th></th>
+						<th>Index</th>
+						<th>Symbol</th>
+						<th>Record</th>
+						<th>Description</th>
+						<th>Species</th>
+						<th>Group</th>
+						<th>Tissue</th>
+						<th>Dataset</th>
+						<th>Chr</th>
+						<th>Mb</th>
+						<th>Mean</th>
+						<th>Max LRS</th>
+						<th>Locus</th>
+						<th>Pvalue</th>
+						<th>Additive</th>
+                    </tr>
+                </thead>
+
+                <tbody>
+                    {% for this_trait in results %}
+                    <TR>
+						<td><input type="checkbox"></td>
+						<td>{{ loop.index }}</td>
+                        {% for item in this_trait %}
+							<TD>{{ item }}</TD>
+						{% endfor %}
+                    </TR>
+                {% endfor %}
+                </tbody>
+
+            </table>
+        </div>
+    </div>
+
+<!-- End of body -->
+
+{% endblock %}
+
+{% block js %}
+    <script type="text/javascript" src="/static/new/javascript/search_results.js"></script>
+    
+    <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
+    <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.naturalSort.js"></script>
+	<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/dataTables.colResize.js"></script>
+    <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/dataTables.colReorder.js"></script>
+    <script language="javascript" type="text/javascript" src="/static/packages/DT_bootstrap/DT_bootstrap.js"></script>
+    <script language="javascript" type="text/javascript" src="/static/packages/TableTools/media/js/TableTools.min.js"></script>
+     <script type="text/javascript" charset="utf-8">
+        function getValue(x) {
+            if (x.indexOf('input') >= 0) {
+                if ($(x).val() == 'x') {
+                    return 0
+                }
+                else {
+                   return parseFloat($(x).val());
+                }
+            }
+            return parseFloat(x);
+        }
+            
+        jQuery.fn.dataTableExt.oSort['cust-txt-asc'] = function (a, b) {
+            var x = getValue(a);
+            var y = getValue(b);
+            return ((x < y) ? -1 : ((x > y) ? 1 : 0));
+        };
+            
+        jQuery.fn.dataTableExt.oSort['cust-txt-desc'] = function (a, b) {
+            var x = getValue(a);
+            var y = getValue(b);
+            return ((x < y) ? 1 : ((x > y) ? -1 : 0));
+        };
+
+
+        $(document).ready( function () {
+            
+            $('#trait_table tr').click(function(event) {
+                if (event.target.type !== 'checkbox') {
+                    $(':checkbox', this).trigger('click');
+                }
+            });
+
+            console.time("Creating table");
+            $('#trait_table').DataTable( {
+                "columns": [
+					{ "sortable": false },
+                    { "sortable": true },
+                    { "type": "natural" },
+                    { "type": "natural" },
+                    { "type": "natural", "width": "35%"  },
+                    { "type": "natural", "width": "15%"  },
+                    { "type": "cust-txt" },
+                    { "type": "natural", "width": "12%"  },
+					{ "type": "natural", "width": "12%"  },
+					{ "type": "natural", "width": "12%"  },
+					{ "type": "natural", "width": "12%"  },
+					{ "type": "natural", "width": "12%"  },
+                    { "type": "natural", "width": "15%"  },
+                    { "type": "cust-txt" }
+                ],
+              
+				"sDom": "tir",
+                "iDisplayLength": -1,
+                "autoWidth": true,
+                "bLengthChange": true,
+                "bDeferRender": true,
+                "bSortClasses": false,
+                "scrollY": "700px",
+                "scrollCollapse": true,
+                "colResize": {
+                    "tableWidthFixed": false,
+                },
+                "paging": false
+            } );
+
+            console.timeEnd("Creating table");
+        });
+        
+    </script>
+    
+{% endblock %}
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index a1cecc9e..d188aea1 100755
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -155,6 +155,11 @@ def search_page():
         else:
             return render_template("search_error.html")
 
+@app.route("/gsearch", methods=('GET',))
+def gsearchact():
+    result = gsearch.GSearch(request.args).__dict__
+    return render_template("gsearchact.html", **result)
+			
 @app.route("/gsearch0", methods=('GET',))
 def gsearchreq0():
     return render_template("gsearch0.html")