Commit 2f5136ce authored by delanoe's avatar delanoe

[FIX] merge with samuel changes (use of nx.isolates for degree <=1)

parents bd24b8a3 2a9c5311
...@@ -115,8 +115,9 @@ def do_distance(cooc_id): ...@@ -115,8 +115,9 @@ def do_distance(cooc_id):
#edges_to_remove = [ e for e in G.edges_iter() if #edges_to_remove = [ e for e in G.edges_iter() if
degree = G.degree() degree = G.degree()
nodes_to_remove = [n for n in degree if degree[n] <= 1] G.remove_nodes_from(nx.isolates(G))
G.remove_nodes_from(nodes_to_remove) #nodes_to_remove = [n for n in degree if degree[n] <= 1]
#G.remove_nodes_from(nodes_to_remove)
partition = best_partition(G.to_undirected()) partition = best_partition(G.to_undirected())
print("Density of the graph:", nx.density(G)) print("Density of the graph:", nx.density(G))
return(G,partition,ids,weight) return(G,partition,ids,weight)
...@@ -150,7 +151,8 @@ def get_cooc(request=None, corpus=None ...@@ -150,7 +151,8 @@ def get_cooc(request=None, corpus=None
G.node[node]['pk'] = ids[node] G.node[node]['pk'] = ids[node]
G.node[node]['label'] = session.query(Ngram.terms).filter(Ngram.id==node).first() G.node[node]['label'] = session.query(Ngram.terms).filter(Ngram.id==node).first()
G.node[node]['size'] = weight[ids[node]] G.node[node]['size'] = weight[ids[node]]
G.node[node]['group'] = partition[node] G.node[node]['type'] = "NGrams"
G.node[node]['attributes'] = { "clust_default": partition[node]} # new format
# G.add_edge(node, "cluster " + str(partition[node]), weight=3) # G.add_edge(node, "cluster " + str(partition[node]), weight=3)
except Exception as error: except Exception as error:
pass #PrintException() pass #PrintException()
......
...@@ -78,6 +78,8 @@ urlpatterns = patterns('', ...@@ -78,6 +78,8 @@ urlpatterns = patterns('',
url(r'^ngrams$', views.ngrams), # to be removed url(r'^ngrams$', views.ngrams), # to be removed
url(r'^nodeinfo/(\d+)$', views.nodeinfo), # to be removed ? url(r'^nodeinfo/(\d+)$', views.nodeinfo), # to be removed ?
url(r'^tfidf/(\d+)/(\w+)$', views_optimized.tfidf), url(r'^tfidf/(\d+)/(\w+)$', views_optimized.tfidf),
url(r'^api/corpusintersection/(\w+)$', views_optimized.getCorpusIntersection),
url(r'^api/userportfolio/project/(\d+)/corpuses$', views_optimized.getUserPortfolio),
url(r'^project/(\d+)/corpus/(\d+)/(\w+)/update$', views.update_nodes), url(r'^project/(\d+)/corpus/(\d+)/(\w+)/update$', views.update_nodes),
# TODO rest to update corpus and information for progress bar # TODO rest to update corpus and information for progress bar
......
...@@ -566,33 +566,14 @@ def graph(request, project_id, corpus_id, generic=100, specific=100): ...@@ -566,33 +566,14 @@ def graph(request, project_id, corpus_id, generic=100, specific=100):
project_type_id = cache.NodeType['Project'].id project_type_id = cache.NodeType['Project'].id
corpus_type_id = cache.NodeType['Corpus'].id corpus_type_id = cache.NodeType['Corpus'].id
results = {}
projs = session.query(Node).filter(Node.user_id == user_id,Node.type_id==project_type_id).all()
for i in projs:
# print(i.id , i.name)
if i.id not in results: results[i.id] = {}
results[i.id]["proj_name"] = i.name
results[i.id]["corpuses"] = []
corpuses = session.query(Node).filter(Node.parent_id==i.id , Node.type_id==corpus_type_id).all()
for j in corpuses:
if int(j.id)!=int(corpus_id):
info = { "id":j.id , "name":j.name }
results[i.id]["corpuses"].append(info)
# print("\t",j.id , j.name)
# import pprint
# pprint.pprint(results)
# if specific != None and generic != None :
graphurl = "corpus/"+str(corpus_id)+"/node_link.json" graphurl = "corpus/"+str(corpus_id)+"/node_link.json"
html = t.render(Context({\ html = t.render(Context({\
'debug': settings.DEBUG, 'debug': settings.DEBUG,
'user' : user,\ 'user' : user,\
'date' : date,\ 'date' : date,\
'corpus' : corpus,\ 'corpus' : corpus,\
'project' : project,\ 'project' : project,\
'corpusinfo' : results,\
'graphfile' : graphurl,\ 'graphfile' : graphurl,\
})) }))
......
...@@ -195,7 +195,7 @@ def tfidf(request, corpus_id, ngram_ids): ...@@ -195,7 +195,7 @@ def tfidf(request, corpus_id, ngram_ids):
"""Takes IDs of corpus and ngram and returns list of relevent documents in json format """Takes IDs of corpus and ngram and returns list of relevent documents in json format
according to TFIDF score (order is decreasing). according to TFIDF score (order is decreasing).
""" """
limit=6 limit=5
nodes_list = [] nodes_list = []
# filter input # filter input
ngram_ids = ngram_ids.split('a') ngram_ids = ngram_ids.split('a')
...@@ -219,7 +219,7 @@ def tfidf(request, corpus_id, ngram_ids): ...@@ -219,7 +219,7 @@ def tfidf(request, corpus_id, ngram_ids):
# print("\tcorpus_id:",corpus_id) # print("\tcorpus_id:",corpus_id)
# convert query result to a list of dicts # convert query result to a list of dicts
for node, score in nodes_query: for node, score in nodes_query:
print("\t corpus:",corpus_id,"\t",node.name) # print("\t corpus:",corpus_id,"\t",node.name)
node_dict = { node_dict = {
'id': node.id, 'id': node.id,
'score': score, 'score': score,
...@@ -229,6 +229,85 @@ def tfidf(request, corpus_id, ngram_ids): ...@@ -229,6 +229,85 @@ def tfidf(request, corpus_id, ngram_ids):
node_dict[key] = node.hyperdata[key] node_dict[key] = node.hyperdata[key]
nodes_list.append(node_dict) nodes_list.append(node_dict)
# print("= = = = = = = = \n") return JsonHttpResponse(nodes_list)
data = json.dumps(nodes_list)
return JsonHttpResponse(data)
def getCorpusIntersection(request , corpuses_ids):
FinalDict = False
if request.method == 'POST' and "nodeids" in request.POST and len(request.POST["nodeids"])>0:
import ast
node_ids = [int(i) for i in (ast.literal_eval( request.POST["nodeids"] )) ]
# Here are the visible nodes of the initial semantic map.
corpuses_ids = corpuses_ids.split('a')
corpuses_ids = [int(i) for i in corpuses_ids] # corpus[1] will be the corpus to compare
cooc_type_id = cache.NodeType['Cooccurrence'].id
cooc_ids = session.query(Node.id).filter(Node.user_id == request.user.id , Node.parent_id==corpuses_ids[1] , Node.type_id == cooc_type_id ).first()
if len(cooc_ids)==0:
return JsonHttpResponse(FinalDict)
# If corpus[1] has a coocurrence.id then lets continue
Cooc_Avg = {}
import networkx as nx
G = nx.Graph() # I use an undirected graph, because direction doesnt matter here, coocs should be a triangular matrix, so...
ngrams_data1 = session.query(NodeNgramNgram).filter( NodeNgramNgram.node_id==cooc_ids[0], NodeNgramNgram.ngramx_id.in_( node_ids )).all()
for ngram in ngrams_data1: # are there visible nodes in the X-axis of corpus to compare ?
G.add_edge( ngram.ngramx_id , ngram.ngramy_id , weight=ngram.score)
ngrams_data2 = session.query(NodeNgramNgram).filter( NodeNgramNgram.node_id==cooc_ids[0], NodeNgramNgram.ngramy_id.in_( node_ids )).all()
for ngram in ngrams_data2: # are there visible nodes in the Y-axis of corpus to compare ?
if not G.has_edge(ngram.ngramx_id,ngram.ngramy_id):
G.add_edge( ngram.ngramx_id , ngram.ngramy_id , weight=ngram.score)
for e in G.edges_iter():
n1 = e[0]
n2 = e[1]
# print( G[n1][n2]["weight"] , "\t", n1,",",n2 )
if n1 not in Cooc_Avg:
Cooc_Avg[n1]=0
if n2 not in Cooc_Avg:
Cooc_Avg[n2]=0
Cooc_Avg[n1]+=G[n1][n2]["weight"]
Cooc_Avg[n2]+=G[n1][n2]["weight"]
FinalDict = {}
for node in node_ids:
if node in Cooc_Avg:
FinalDict[node] = Cooc_Avg[node]/G.degree(node)
# Getting AVG-COOC of each ngram that exists in the cooc-matrix of the compared-corpus.
return JsonHttpResponse(FinalDict)
def getUserPortfolio(request , project_id):
user = request.user
user_id = cache.User[request.user.username].id
project_type_id = cache.NodeType['Project'].id
corpus_type_id = cache.NodeType['Corpus'].id
results = {}
projs = session.query(Node).filter(Node.user_id == user_id,Node.type_id==project_type_id ).all()
for i in projs:
# print (i.id,i.name)
if i.id not in results:
results[i.id] = {}
results[i.id]["proj_name"] = i.name
results[i.id]["corpuses"] = []
corpuses = session.query(Node).filter(Node.parent_id==i.id , Node.type_id==corpus_type_id).all()
for j in corpuses:
doc_count = session.query(func.count(Node.id)).filter(Node.parent_id==j.id).all()[0][0]
if doc_count >= 10:
# print(session.query(Node).filter(Node.id==j.id).first())
info = {
"id":j.id ,
"name":j.name ,
"c":doc_count
}
results[i.id]["corpuses"].append(info)
# print("\t\t",j.id , j.name , doc_count)
if len(results[i.id]["corpuses"])==0:
del results[i.id]
return JsonHttpResponse( results )
...@@ -5,6 +5,7 @@ from lxml.html import html5parser ...@@ -5,6 +5,7 @@ from lxml.html import html5parser
from datetime import datetime, date from datetime import datetime, date
from django.utils import timezone from django.utils import timezone
import dateutil.parser import dateutil.parser
import dateparser
from .FileParser import FileParser from .FileParser import FileParser
from ..NgramsExtractors import * from ..NgramsExtractors import *
...@@ -140,7 +141,10 @@ class EuropressFileParser(FileParser): ...@@ -140,7 +141,10 @@ class EuropressFileParser(FileParser):
if format_europresse == 50.2: if format_europresse == 50.2:
# TODO here check the split if needed: 'Brest Ville, mercredi 26 novembre 2014' # TODO here check the split if needed: 'Brest Ville, mercredi 26 novembre 2014'
try:# # 2015-oct-08 exception added
text = text.split(', ')[1] text = text.split(', ')[1]
except:
pass
format_date_fr = re.compile('\d*\s*\w+\s+\d{4}', re.UNICODE) format_date_fr = re.compile('\d*\s*\w+\s+\d{4}', re.UNICODE)
format_date_fr_v2 = re.compile('\s*\w+\s+\d+\s+\w+\s+\d{4}', re.UNICODE) format_date_fr_v2 = re.compile('\s*\w+\s+\d+\s+\w+\s+\d{4}', re.UNICODE)
...@@ -166,12 +170,15 @@ class EuropressFileParser(FileParser): ...@@ -166,12 +170,15 @@ class EuropressFileParser(FileParser):
if test_date_fr is not None or test_date_fr_v2 is not None: if test_date_fr is not None or test_date_fr_v2 is not None:
self.localeEncoding = "fr_FR" self.localeEncoding = "fr_FR"
locale.setlocale(locale.LC_ALL, localeEncoding) locale.setlocale(locale.LC_ALL, "fr_FR.utf-8")
if encoding != "utf-8": if encoding != "utf-8":
text = text.replace('י', 'é') text = text.replace('י', 'é')
text = text.replace('ű', 'û') text = text.replace('ű', 'û')
text = text.replace(' aot ', ' août ') text = text.replace(' aot ', ' août ')
try:
hyperdata['publication_date'] = dateparser.parse(text, languages=['fr'])
except:
try : try :
hyperdata['publication_date'] = datetime.strptime(text, '%d %B %Y') hyperdata['publication_date'] = datetime.strptime(text, '%d %B %Y')
except : except :
...@@ -278,10 +285,10 @@ class EuropressFileParser(FileParser): ...@@ -278,10 +285,10 @@ class EuropressFileParser(FileParser):
else: else:
hyperdata['doi'] = "not found" hyperdata['doi'] = "not found"
try: # try:
hyperdata['length_words'] = len(hyperdata['abstract'].split(' ')) # hyperdata['length_words'] = len(hyperdata['abstract'].split(' '))
except: # except:
PrintException() # PrintException()
hyperdata['length_letters'] = len(hyperdata['abstract']) hyperdata['length_letters'] = len(hyperdata['abstract'])
......
{% extends "menu.html" %} <html>
{% block css %} <head>
{% load staticfiles %} {% load staticfiles %}
<link rel="stylesheet" href="{% static "css/bootstrap.css" %}"> <link rel="stylesheet" href="{% static "css/bootstrap.css" %}">
<link rel="stylesheet" href="{% static "css/bootstrap-theme.min.css" %}"> <link rel="stylesheet" href="{% static "css/bootstrap-theme.min.css" %}">
<link rel="stylesheet" href="{% static "js/libs/jquery/jquery-ui.css" %}" media="screen"> <link rel="stylesheet" href="{% static "js/libs/jquery/jquery-ui.css" %}" media="screen">
<!-- <link rel="stylesheet" href="{% static "js/libs/bootstrap/css/bootstrap.css" %}" media="screen"> --> <!-- <link rel="stylesheet" href="{% static "js/libs/bootstrap/css/bootstrap.css" %}" media="screen"> -->
<link rel="stylesheet" href="{% static "js/libs/css2/freshslider.css" %}" media="screen"> <link rel="stylesheet" href="{% static "js/libs/css2/freshslider.css" %}" media="screen">
<link rel="stylesheet" href="{% static "js/libs/css2/custom.css" %}" media="screen"> <link rel="stylesheet" href="{% static "js/libs/css2/custom.css" %}" media="screen">
<link rel="stylesheet" href="{% static "js/libs/css2/sidebar.css" %}" media="screen"> <link rel="stylesheet" href="{% static "js/libs/css2/sidebar.css" %}" media="screen">
<style>
#leftcolumn {
font-size: 10px;
width:20%;
overflow: auto;
}
#ctlzoom {
width:7%;
}
<!-- #topPapers{
<link rel="stylesheet" href="{% static "js/libs/bootswatch/css/bootswatch.css" %}"> margin: 7px;
<link rel="stylesheet" href="{% static "js/libs/css2/font.css" %}" type="text/css"> padding: 5px 0px 5px 5px;
--> }
#topPapers ul {
list-style-type: none;
}
#ctlzoom {
position: absolute; right: 16%; bottom: 1%; list-style: none; padding: 0; margin: 0;
}
{% endblock %} #category0 ul li { margin: 0 12px 12px 0; }
#category1 ul li { margin: 0 12px 12px 0; }
</style>
<!--
<link rel="stylesheet" href="{% static "js/libs/bootswatch/css/bootswatch.css" %}">
<link rel="stylesheet" href="{% static "js/libs/css2/font.css" %}" type="text/css">
-->
</head>
<body>
<div class="navbar navbar-inverse" role="navigation">
<div class="container">
<div class="navbar-inner">
<button class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" style="line-height:15px; height:10px; padding: 10px 10px;" href="/"><img src="/img/logo.svg" title="Back to home."></a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="/about/" title="More informations about the project, its sponsors and its authors.">About</a>
</li>
{% if user.is_authenticated %}
<li><a href="/projects/" title="All your projects are here.">Projects</a></li>
{% endif %}
{% if project %}
<li><a href="/project/{{project.id}}">{{project.name}}</a></li>
{% endif %}
{% if corpus %}
<li><a href="/project/{{project.id}}/corpus/{{corpus.id}}">{{corpus.name}}</a></li>
{% endif %}
</ul>
<ul class="nav pull-right">
<li class="dropdown">
<a href="#" role="button" class="dropdown-toggle" data-toggle="dropdown" title="That is your login"><i class="icon-user"></i> {{ user }}<i class="caret"></i>
</a>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="http://www.iscpif.fr/tiki-index.php?page=gargantext_feedback" title="Send us a message (bug, thanks, congrats...)">Report Feedback</a></li>
<li class="divider"></li>
{% if user.is_authenticated %}
<li><a tabindex="-1" href="/auth/logout" title="Click here to logout especially on public devices">Logout</a></li>
{% else %}
<li><a tabindex="-1" href="/auth/">Login</a></li>
{% endif %}
</ul>
</li>
</ul>
</div>
{% block content %} </div>
</div>
<!-- this is the tweakbar --> <!-- this is the tweakbar -->
...@@ -61,6 +136,7 @@ ...@@ -61,6 +136,7 @@
<li> <li>
<a> <a>
<div id="graphid" style="visibility: hidden;">{{graphfile}}</div> <div id="graphid" style="visibility: hidden;">{{graphfile}}</div>
<div id="jquerytemplatenb" style="visibility: hidden;">{{user.id}}</div>
</a> </a>
</li> </li>
...@@ -76,24 +152,15 @@ ...@@ -76,24 +152,15 @@
</ul> </ul>
<ul id="category-A" class="nav navbar-nav navbar-right"> <ul id="category0" class="nav navbar-nav navbar-right">
<li> <li>
<ul > <ul style="list-style-type: none; margin:.5em 0em 1em 1em;">
<li><div id="sliderANodeWeight"></div></li> <li><div id="slidercat0nodesweight"></div></li>
<li><div id="sliderAEdgeWeight"></div></li> <li><div id="slidercat0edgesweight"></div></li>
<li><div id="sliderANodeSize"></div></li> <li><div id="slidercat0nodessize"></div></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<!--
a
a
a
a
a
a
-->
<ul id="filterslegend" class="nav navbar-nav navbar-right"> <ul id="filterslegend" class="nav navbar-nav navbar-right">
<li> <li>
<ul style="list-style-type: none;"> <ul style="list-style-type: none;">
...@@ -102,20 +169,20 @@ ...@@ -102,20 +169,20 @@
<li>Size</li> <li>Size</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul id="category1" class="nav navbar-nav navbar-right">
<ul id="category-B" class="nav navbar-nav navbar-right">
<li> <li>
<ul> <ul style="list-style-type: none; margin:0em 1em;">
<li><div id="sliderBNodeWeight"></div></li> <li><div id="slidercat1nodesweight"></div></li>
<li><div id="sliderBEdgeWeight"></div></li> <li><div id="slidercat1edgesweight"></div></li>
<li><div id="sliderBNodeSize"></div></li> <li><div id="slidercat1nodessize"></div></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li><a> <li><a>
<input type="checkbox" id="checkboxdiv" onclick="alertCheckBox(this);">Add</input> <input type="checkbox" id="checkboxdiv" onclick="alertCheckBox(this);">Add</input>
...@@ -127,19 +194,7 @@ ...@@ -127,19 +194,7 @@
</a></li> </a></li>
</ul> </ul>
<div class="colorgraph_div"></div>
<ul id="colorGraph" class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<img title="Set Colors" src="{% static "js/libs/img2/colors.png" %}" width="20px"><b class="caret"></b></img>
</a>
<ul class="dropdown-menu">
<li><a href="#" onclick='clustersBy("group")'>By Group</a></li>
<li><a href="#" onclick='clustersBy("default")'>By Default</a></li>
</ul>
</li>
</ul>
<!----> <!---->
...@@ -177,18 +232,13 @@ ...@@ -177,18 +232,13 @@
<div style="visibility: hidden;" id="sigma-othergraph"></div> <div style="visibility: hidden;" id="sigma-othergraph"></div>
<div id="semLoader"></div> <img id="semLoader" style="position:absolute; top:50%; left:40%; width:80px;" src="{% static "js/libs/img2/loading-bar.gif" %}"></img>
<ul id="ctlzoom"> <ul id="ctlzoom">
<!-- <div class="content-header"> <!-- <div class="content-header">
<button id="menu-toggle">X</button> <button id="menu-toggle">X</button>
</div> --> </div> -->
<li>
<div id="unfold">
<a href="#" id="aUnfold" class="rightarrow"></a>
</div>
</li>
<!-- <!--
<li> <li>
<a href="#" id="geomapicon" onclick="$('#geomapmodal').modal('show'); callGeomap();"> <a href="#" id="geomapicon" onclick="$('#geomapmodal').modal('show'); callGeomap();">
...@@ -260,7 +310,7 @@ ...@@ -260,7 +310,7 @@
<!-- <div id="topPapers"></div> --> <!-- <div id="topPapers"></div> -->
<div id="tab-container-top" class='tab-container'> <div id="tab-container-top" class='tab-container' style="display: none;">
<ul class='etabs'> <ul class='etabs'>
<li id="tabmed" class='tab active'><a href="#tabs3">Medline Pubs</a></li> <li id="tabmed" class='tab active'><a href="#tabs3">Medline Pubs</a></li>
...@@ -283,10 +333,11 @@ ...@@ -283,10 +333,11 @@
<div id="information"></div> <div id="information"></div>
</div> </div>
</div> </div>
<div id="savemodal" class="modal fade">
<div id="savemodal" class="modal fade">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
...@@ -345,98 +396,49 @@ ...@@ -345,98 +396,49 @@
</div> </div>
</div> </div>
</div> </div>
<div id="corpuses" class="modal fade">
<div id="corpuses" class="modal fade">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Corpus Comparison</h4> <h3 class="modal-title">Corpus Comparison Tool</h3>
</div> </div>
<div class="modal-body form-horizontal"> <div class="modal-body form-horizontal">
Chose another corpus to compare with: <h4>Choose one corpus:</h4>
<div class="form-group"> <div style="color:red;" id="selected_corpus"></div>
<label class="col-lg-2 control-label"> </label> <div id="user_portfolio">
<div class="col-lg-10">
<form id="corpuses_form" role="form">
<ul>
{% if corpusinfo %}
{% for k1, v1 in corpusinfo.items %}
{% if v1.corpuses|length > 0 %}
<br><li><a href="/project/{{k1}}/">{{v1.proj_name}}</a><br>
<ul style="list-style-type: none;">
{% for c in v1.corpuses %}
<li>
<div class="radio">
<label><input type="radio" id="{{c.id}}" name="optradio">
<a href="/project/{{k1}}/corpus/{{c.id}}/">{{c.name}}</a>
</label>
</div>
</li>
{% endfor %}
</ul>
</li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
</form>
</div>
</div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button id="closecorpuses" type="button" class="btn btn-default" data-dismiss="modal">Close</button> <button id="closecorpuses" type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" onclick='printCorpuses();'>Add Tab</button> <button id="add_corpus_tab" type="button" class="btn btn-primary" disabled onclick='printCorpuses();'>Add Tab</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div id="modalloader" class="modal fade"> <div id="modalloader" class="modal fade">
<div id="loader" class="loader"> <div id="loader" class="loader">
<img src="{% static "js/libs/img2/loader.gif" %}" ></img> <img src="{% static "js/libs/img2/loader.gif" %}" ></img>
</div> </div>
<div id="closeloader" data-dismiss="modal"></div> <div id="closeloader" data-dismiss="modal"></div>
</div>
<div id="geomapmodal" class="modal fade">
<!-- <div class="modal-content"> -->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Geomap</h4>
</div>
<div class="modal-body">
<div class="geomapCont"></div>
</div> </div>
<!-- </div> -->
<!-- <div class="geomapCont"></div> -->
<div id="closegeomap" data-dismiss="modal"></div>
</div>
</div>
</div>
<script src="{% static "js/jquery/jquery.min.js" %}" type="text/javascript"></script> <script src="{% static "js/jquery/jquery.min.js" %}" type="text/javascript"></script>
<script src="{% static "js/libs/jquery/jquery-ui.js" %}" type="text/javascript"></script> <script src="{% static "js/libs/jquery/jquery-ui.js" %}" type="text/javascript"></script>
...@@ -449,13 +451,13 @@ ...@@ -449,13 +451,13 @@
<script type="text/javascript" src="{% static "js/libs/jquery/jquery.easytabs.min.js" %}"></script> <script type="text/javascript" src="{% static "js/libs/jquery/jquery.easytabs.min.js" %}"></script>
<!--<script src="{% static "js/libs/bootstrap/js/bootstrap.min.js" %}"></script>--> <script src="{% static "js/libs/bootstrap/js/bootstrap.min.js" %}"></script>
<script src="{% static "js/libs/bootstrap/js/bootstrap-modal.js" %}" type="text/javascript"></script> <script src="{% static "js/libs/bootstrap/js/bootstrap-modal.js" %}" type="text/javascript"></script>
<script src="{% static "js/libs/bootstrap/js/bootstrap-hover-dropdown.min.js" %}" type="text/javascript"></script> <script src="{% static "js/libs/bootstrap/js/bootstrap-hover-dropdown.min.js" %}" type="text/javascript"></script>
<script src="{% static "js/tinawebJS/globalUtils.js" %}" type="text/javascript"></script> <script src="{% static "js/tinawebJS/globalUtils.js" %}" type="text/javascript"></script>
<script src="{% static "js/tinawebJS/plugins/jLouvain.js" %}" type="text/javascript"></script>
<script src="{% static "js/tinawebJS/sigma.min.js" %}" type="text/javascript" language="javascript"></script> <script src="{% static "js/tinawebJS/sigma.min.js" %}" type="text/javascript" language="javascript"></script>
<script src="{% static "js/tinawebJS/sigma.forceatlas2.js" %}" type="text/javascript" language="javascript"></script> <script src="{% static "js/tinawebJS/sigma.forceatlas2.js" %}" type="text/javascript" language="javascript"></script>
<script src="{% static "js/settings_explorerjs.js" %}" type="text/javascript" language="javascript"></script> <script src="{% static "js/settings_explorerjs.js" %}" type="text/javascript" language="javascript"></script>
...@@ -466,19 +468,24 @@ ...@@ -466,19 +468,24 @@
<script src="{% static "js/tinawebJS/minimap.js" %}" type="text/javascript" language="javascript"></script> <script src="{% static "js/tinawebJS/minimap.js" %}" type="text/javascript" language="javascript"></script>
<script src="{% static "js/tinawebJS/enviroment.js" %}" type="text/javascript" language="javascript"></script> <script src="{% static "js/tinawebJS/enviroment.js" %}" type="text/javascript" language="javascript"></script>
<script src="{% static "js/tinawebJS/asyncFA2.js" %}" type="text/javascript" language="javascript"></script> <script src="{% static "js/tinawebJS/asyncFA2.js" %}" type="text/javascript" language="javascript"></script>
<script src="{% static "js/tinawebJS/DataScanner.js" %}" type="text/javascript" language="javascript"></script> <script src="{% static "js/tinawebJS/Tinaweb.js" %}" type="text/javascript" language="javascript"></script>
<script src="{% static "js/tinawebJS/main.js" %}" type="text/javascript" language="javascript"></script> <script src="{% static "js/tinawebJS/main.js" %}" type="text/javascript" language="javascript"></script>
<script type="text/javascript"> <script type="text/javascript">
// $('#tab-container').easytabs({updateHash:false});
// Popup window code
$('#tab-container').easytabs({updateHash:false});
function newPopup(url) { function newPopup(url) {
popupWindow = window.open( popupWindow = window.open(
url,'popUpWindow','height=700,width=800,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,status=no') url,'popUpWindow','height=700,width=800,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,status=no')
} }
$('#tab-container').easytabs({updateHash:false});
// $('#tab-container-top').easytabs({updateHash:false});
</script> </script>
</body>
{% endblock %} </html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment