blob: 82c414dac8202f79ec84932aa239b649a103f503 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
var stargit=(function(){
// Functions:
var flash;
var githubNodesObj = {};
var githubEdgesObj = {};
var graphAttributes = {};
function setFlash(){
flash = $('#SiGMa')[0];
if(!flash){
return false;
}else{
return true;
}
}
// This function refreshes the graph from the login of
// a user:
function getGithubGraph(user){
url = "/graph/local/"+user;
$.ajax({
url: url,
dataType: 'json',
success:
function(json){
resetGraph(json);
}
});
}
// This function gets the graph attributes to refresh
// the different comboboxes:
function getGraphAttributes(){
url = "/graph/attributes";
$.ajax({
url: url,
dataType: 'json',
success:
function(json){
graphAttributes = (json && json["attributes"]) ? json["attributes"] : {};
setComboBoxes();
}
});
}
function resetGraph(graph){
if(!setFlash()){
return;
}
flash.resetGraphPosition();
flash.killForceAtlas();
flash.deleteGraph();
flash.updateGraph(graph);
flash.initForceAtlas();
if($("#query_color").value) flash.setColor($("#query_color").value,graphAttributes);
if($("#query_size").value) flash.setSize($("#query_size").value);
}
// This function updates the comboboxes:
function setComboBoxes(){
var colorAtts = [];
var sizeAtts = [];
for(var att in graphAttributes){
graphAttributes[att]["id"] = att;
if(graphAttributes[att]["type"]=="Num"){
sizeAtts.push(graphAttributes[att]);
colorAtts.push(graphAttributes[att]);
}else{
colorAtts.push(graphAttributes[att]);
}
}
var nodes_color = $("#query_color");
var nodes_size = $("#query_size");
while(nodes_color.options.length) nodes_color.options.remove(0);
while(nodes_size.options.length) nodes_size.options.remove(0);
var i;
var optn;
var l=colorAtts.length;
for(i=0;i<l;i++){
optn = document.createElement("OPTION");
optn.text = colorAtts[i]["label"] ? colorAtts[i]["label"] : colorAtts[i]["id"];
optn.value = colorAtts[i]["id"];
nodes_color.options.add(optn);
}
l=sizeAtts.length;
for(i=0;i<l;i++){
optn = document.createElement("OPTION");
optn.text = sizeAtts[i]["label"] ? sizeAtts[i]["label"] : sizeAtts[i]["id"];
optn.value = sizeAtts[i]["id"];
nodes_size.options.add(optn)
}
}
// PUBLIC FUNCTIONS:
return {
loadUser: function(name){
getGithubGraph(name);
},
setSize: function(e){
if(!setFlash()) return;
flash.setSize(e.value);
},
setColor: function(e){
if(!setFlash()) return;
flash.setColor(e.value,graphAttributes);
},
toggleEdges: function(){
if(!setFlash()) return;
var areEdgesDisplayed = flash.getDisplayEdges();
flash.setDisplayEdges(!areEdgesDisplayed);
return !areEdgesDisplayed;
},
toggleLabels: function(){
if(!setFlash()) return;
var areLabelsDisplayed = flash.getDisplayLabels();
flash.setDisplayLabels(!areLabelsDisplayed);
return !areLabelsDisplayed;
},
toggleFishEye: function(){
if(!setFlash()) return;
var isFishEye = flash.hasFishEye();
if(isFishEye){
flash.deactivateFishEye();
}else{
flash.activateFishEye();
}
return !isFishEye;
}
};
})();
|