summaryrefslogtreecommitdiff
path: root/gstudio
diff options
context:
space:
mode:
authorgnowgi <nagarjun@gnowledge.org>2012-06-05 00:57:11 -0700
committergnowgi <nagarjun@gnowledge.org>2012-06-05 00:57:11 -0700
commita1cd248231180ba82206c6a456345834b519a889 (patch)
tree0cc683df6fb76a4a4970d40de31a7009ee4f9b9d /gstudio
parent887b87cc6d9031674216c655dd5c8f8e8a5acf5d (diff)
parent82569b9cb412b509d88de55bd3f15a9499dfe76e (diff)
downloadgnowsys-a1cd248231180ba82206c6a456345834b519a889.tar.gz
Merge pull request #52 from shefalishetty/master
values bug fixed and Conl+click merges and collapses
Diffstat (limited to 'gstudio')
-rw-r--r--gstudio/models.py70
-rw-r--r--gstudio/templates/gstudio/skeleton.html194
2 files changed, 185 insertions, 79 deletions
diff --git a/gstudio/models.py b/gstudio/models.py
index 535aded..6dc7983 100644
--- a/gstudio/models.py
+++ b/gstudio/models.py
@@ -893,8 +893,7 @@ class Nodetype(Node):
def get_graph_json(self):
- # predicate_id={"plural":"a1","altnames":"a2","contains_members":"a3","contains_subtypes":"a4","prior_nodes":"a5", "posterior_nodes":"a6"}
- g_json = {}
+ g_json = {}
g_json["node_metadata"]= []
g_json["relations"]=[]
@@ -903,72 +902,57 @@ class Nodetype(Node):
global attr_counter
nbh = self.get_nbh
predicate_id = {}
-
+
for key in nbh.keys():
val = str(counter) + "a"
predicate_id[key] = val
- counter = counter + 1
- #print predicate_id
+ counter = counter + 1
-
-
- this_node = {"_id":str(self.id),"title":self.title,"screen_name":self.title, "url":self.get_absolute_url(),"expanded":"true"}
+ this_node = {"_id":str(self.id),"title":self.title,"screen_name":self.title, "url":self.get_absolute_url(),"refType":self.reftype}
g_json["node_metadata"].append(this_node)
for key in predicate_id.keys():
if nbh[key]:
try:
- #g_json[str(key)]=[]
- #g_json["relations"].append(key)
-
g_json["node_metadata"].append({"_id":str(predicate_id[key]),"screen_name":key})
-
- #g_json[str(key)].append({"from":self.id , "to":predicate_id[key],"value":1, "level":1 })
-
g_json["relations"].append({"from":self.id ,"type":str(key),"value":1,"to":predicate_id[key] })
if not isinstance(nbh[key],basestring):
- for item in nbh[key]:
- if item.reftype!="Relation":
- # create nodes
+
+ for item in nbh[key]:
+ if item.reftype=="Relationtype":
+ if item.left_subjecttype.id==self.id:
+ flag=1
+ elif item.right_subjecttype.id==self.id:
+ flag=0
+ # create nodes
- g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title,"title":self.title, "url":item.get_absolute_url(),"expanded":"false"})
-
+ g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title,"title":self.title, "url":item.get_absolute_url(),"refType":item.reftype,"inverse":item.inverse,"flag":flag})
- # g_json[str(key)].append({"from":predicate_id[key] , "to":item.id ,"value":1 })
+
+ g_json["node_metadata"].append({"_id":str(item.id),"screen_name":item.title,"title":self.title, "url":item.get_absolute_url(),"refType":item.reftype})
#create links
- g_json["relations"].append({"from":predicate_id[key] ,"type":str(key), "value":1,"to":item.id })
-
- else:
-
- if item.left_subject.id==self.id:
- item1=item.right_subject
- elif item.right_subject.id==self.id:
- item1=item.left_subject
-
- g_json["node_metadata"].append({"_id":str(item1.id),"screen_name":item1.title,"title":self.title, "url":item1.get_absolute_url(),"expanded":"false"})
-
- # g_json[str(key)].append({"from":predicate_id[key] , "to":item.id ,"value":1 })
- #create links
- g_json["relations"].append({"from":predicate_id[key] ,"type":str(key), "value":1,"to":item1.id })
-
+ g_json["relations"].append({"from":predicate_id[key] ,"type":str(key), "value":1,"to":item.id })
+
+
else:
- #value={nbh["plural"]:"a4",nbh["altnames"]:"a5"}
- #this_node[str(key)]=nbh[key] key, nbh[key]
- #for item in value.keys():
+
g_json["node_metadata"].append({"_id":(str(attr_counter)+"a"),"screen_name":nbh[key]})
- #g_json[str(key)].append({"from":predicate_id[key] , "to":attr_counter ,"value":1, "level":2 })
- g_json["relations"].append({"from":predicate_id[key] ,"type":str(key) ,"value":1,"to":(str(attr_counter)+"a")})
+ g_json["relations"].append({"from":predicate_id[key] ,"type":str(key) ,"value":1,"to":(str(attr_counter)+"a")})
attr_counter-=1
except:
pass
- #print g_json
+
- return json.dumps(g_json)
-
+
+ return json.dumps(g_json)
+
+
+
+
@property
def get_possible_attributes(self):
"""
diff --git a/gstudio/templates/gstudio/skeleton.html b/gstudio/templates/gstudio/skeleton.html
index ad6cf4a..6991304 100644
--- a/gstudio/templates/gstudio/skeleton.html
+++ b/gstudio/templates/gstudio/skeleton.html
@@ -178,8 +178,8 @@
function init(a,b)
{
+
-
nodes_by_id = _.reduce(a, function(acc, n) {
acc[n._id] = n;
return acc;
@@ -198,11 +198,14 @@ function init(a,b)
return nodes_by_id[e.from] && nodes_by_id[e.to]&& e.type!="title" && e.type!="content"
}).value();
-
+
}
$(function fgraph() {
-
+neighbour_node= new Array();
+clicked_node=new Array();
+prev_node=new Array();
+neighbour_node= neighbour_node.concat({{object.id}});
$.getJSON('/nodetypes/graphs/graph_json/' + {{object.id}}, function (json1) {
metadata=json1.node_metadata;
@@ -338,29 +341,128 @@ function load(key)
.attr("fill", "#6D6666");
-
-$(window).bind('keydown',function(event){
- if(17==event.keyCode){
- new_g.on("click",function(d){
- if(d._id>0 && d.expanded=="false")
- {
- d3.select("#amazingViz").remove();
- d.expanded="true";
- $.getJSON('/nodetypes/graphs/graph_json/' + d._id , function (json2) {
- new_metadata=json2.node_metadata;
- new_relations=json2.relations;
- new_relnset=json2.relset
- metadata=_.union(new_metadata,metadata);
- relations=_.union(new_relations,relations);
- init(metadata,relations);
- load(d._id)
- })
+$(window).bind('keydown',function(event) {
+ if(event.keyCode==17){
+
+ new_g.on("click",function(d){
+
+
+
+
+ if(d._id>0 && d.expanded=="true" && d._id!= {{object.id}})
+ {
+
+ $.getJSON('/nodetypes/graphs/graph_json/' + d._id , function (json2) {
+ new_metadata=json2.node_metadata;
+
+ });
+
+ _.filter(new_metadata, function(e){if(e._id>0)
+ {
+ clicked_node=clicked_node.concat(e._id) ;
+ }
+ });
+
+
+ index = _.indexOf(neighbour_node , d._id);
+ prev_node=neighbour_node.slice(0,index);
+
+ neighbour_node = _.difference(neighbour_node,clicked_node) ;
+
+ neighbour_node= neighbour_node.concat(prev_node);
+ neighbour_node = _.uniq(neighbour_node);
+ metadata=[]
+ relations=[]
+ metadata1=[]
+ relations1=[]
+ for(i=0;i<(neighbour_node.length);i++)
+ {
+
+ d3.select("#amazingViz").remove();
+ g=neighbour_node[i]
+
+
+
+ $.ajax({
+ async:false,
+ url:'/nodetypes/graphs/graph_json/' + g ,
+ datatype:'json',
+ success:function (json2) {
+ new_metadata=json2.node_metadata;
+ new_relations=json2.relations;
+ metadata=_.union(new_metadata,metadata);
+
+ relations=_.union(new_relations,relations);
+ relations= check_Relationtype(metadata,relations);
+ }});
+
}
-
- });
+ _.each(metadata, function(m){
+
+ for(i=0;i<neighbour_node.length;i++)
+ {
+ if(m._id==neighbour_node[i])
+ {m.expanded="true";}
+ else
+ {m.expanded="false";}
+ }
+
+
+ });
+
+ init(metadata,relations);
+ load({{object.id}}) ;
-}
+
+
+ }
+
+
+
+
+ else if(d._id>0 && d._id!= {{object.id}})
+ {
+
+ neighbour_node =neighbour_node.concat(d._id);
+
+ d3.select("#amazingViz").remove();
+
+ $.ajax({
+ async:false,
+ url:'/nodetypes/graphs/graph_json/' + d._id ,
+ datatype:'json',
+ success:function (json2) {
+
+ new_metadata=json2.node_metadata;
+ new_relations=json2.relations;
+
+ metadata=_.union(new_metadata,metadata);
+ relations=_.union(new_relations,relations);
+ relations= check_Relationtype(metadata,relations);
+ _.each(metadata, function(m){
+
+ for(i=0;i<neighbour_node.length;i++)
+ {
+ if(m._id==neighbour_node[i])
+ m.expanded="true";
+ }
+ });
+
+
+ }});
+ console.log(metadata);
+ init(metadata,relations);
+ load({{object.id}});
+
+
+
+
+ }
});
+}
+
+});
+
@@ -370,15 +472,7 @@ $(window).bind('keydown',function(event){
});
- /*new_g.append("svg:ellipse")
- .attr("cx", function(d) { return d.x - w/2.0 +15; })
- .attr("cy", function(d) { return d.y - h/2.0 +15 ; })
- .call(force.drag)
- .attr("rx", function(d) { return ((d.screen_name).length) +10 })
- .attr("ry", function(d) { if (d._id==key) return 8; else if (isNaN(d._id) || (d._id)<0) return 1; else return 7 });
- //.style("fill", function color(d) { if (d._id==key) return "red"; else if (isNaN(d._id) || (d._id)<0) return "white" ; else return "green"});*/
-
-
+
@@ -389,8 +483,7 @@ $(window).bind('keydown',function(event){
.attr("dy", ".35em")
.attr("text-anchor","middle")
- // .attr("style",function text(d) { if ((d._id)>0) return "font-size:9.00pt;fill:blue;" ; else return "font-size:9.00pt;fill:black;"})
-
+
.text(function(d) {
return d.screen_name;
});
@@ -423,7 +516,7 @@ $(window).bind('keydown',function(event){
.style("fill-opacity", ".2")
.style("stroke", "#666")
.style("stroke-width", "1.5px")
- .style("fill", function color(d) {var e=(d._id).charAt(0); if (d.expanded=="true") return "red"; else return "none"});
+ .style("fill", function(d) {if ((d.expanded=="true" && d.refType=="Objecttype") ||(d._id=={{object.id}}) ) return "blue"; else if(d.expanded=="true" && d.refType=="Gbobject") return "red"; else return "none"});
@@ -462,9 +555,38 @@ $(window).bind('keydown',function(event){
}
+function check_Relationtype(metadata,relations)
+{
+
+
+ _.each(metadata,function(d){
+ if (d.refType=="Relationtype")
+ {
+ a=d.inverse;
+ if (d.flag==1)
+ {
+ relations= _.reject(relations,function(e)
+ {
+ return e.type==a
+ });
+ }
+ else if (d.flag==0)
+ {
+ relations= _.reject(relations,function(e)
+ {
+ return e.type==d.screen_name
+ });
+ }
+ }
+
+ });
+return relations;
+
+
+}
+
});
-//fgraph({{object.id}});
</script>