Skip to content

Commit 9a8e7e2

Browse files
author
Bryce Murphy
committed
Merge branch 'master' of github.com:jrtechs/github-graphs
2 parents ff22fa1 + 8d1b70b commit 9a8e7e2

4 files changed

Lines changed: 65 additions & 86 deletions

File tree

public/OrgRepoGraph.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
<div id="profileGen"></div>
6666
</div>
6767
<div class="col-md-6 col-12">
68-
<h2 id="graphLabel"></h2>
68+
<div id="graphLoading"></div>
6969
<div id="myGraph" class="w-100"></div>
7070
<div id="organizationInfo"></div>
7171
<pre id="eventSpan"></pre>

public/js/createOrgRepoGraph.js

Lines changed: 21 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -43,47 +43,6 @@ function alreadyInGraph(userID)
4343
}
4444

4545

46-
47-
/**
48-
* Adds the followers/following of a person
49-
* to the graph
50-
*
51-
* @param username
52-
* @param apiPath
53-
* @returns {Promise<any>}
54-
*/
55-
function addRepos(orgName, apiPath, page)
56-
{
57-
console.log(orgName + " page=" + page);
58-
updateProgress();
59-
return new Promise(function(resolve, reject) {
60-
queryAPIByOrg(apiPath + "?page=" + page, orgName, function(data) {
61-
console.log(data);
62-
console.log(data.length);
63-
var prom = [];
64-
for(var i = 0; i < data.length; i++) {
65-
if(!alreadyInGraph(data[i].id)) {
66-
prom.push(addRepoToGraph(data[i]));
67-
}
68-
}
69-
Promise.all(prom).then( () => {
70-
if(data.length === 30) {
71-
addRepos(orgName, apiPath, page+ 1).then(function() {
72-
resolve();
73-
})
74-
}
75-
else {
76-
resolve();
77-
}
78-
})
79-
},
80-
function(error) {
81-
reject(error);
82-
})
83-
});
84-
}
85-
86-
8746
/**
8847
* Greedy function which checks to see if a edge is in the graphs
8948
*
@@ -173,11 +132,11 @@ function processUserConnections(user)
173132
{
174133
return new Promise(function(resolve, reject)
175134
{
176-
177135
processConnections(user, API_FOLLOWING, 1).then(function()
178136
{
179137
processConnections(user, API_FOLLOWERS, 1).then(function()
180138
{
139+
updateProgress();
181140
resolve();
182141
})
183142
})
@@ -213,26 +172,6 @@ function createConnections()
213172
}
214173

215174

216-
var total = 1;
217-
var indexed = 0;
218-
var progressID;
219-
220-
221-
function updateProgress()
222-
{
223-
indexed++;
224-
225-
var percent = parseInt((indexed/total)*100);
226-
227-
$("#" + progressID).html("<div class=\"progress\">\n" +
228-
" <div class=\"progress-bar progress-bar-striped progress-bar-animated\" role=\"progressbar\" style=\"width: " + percent + "%\" aria-valuenow=\"" + percent + "\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\n" +
229-
"</div>");
230-
231-
console.log();
232-
}
233-
234-
235-
236175
function bringUpProfileView(id)
237176
{
238177
for(var i = 0; i < nodes.length; i++)
@@ -285,6 +224,7 @@ function addOrgUsers(orgname, page)
285224
}
286225
else
287226
{
227+
total = 2*(data.length + (page * 30));
288228
resolve();
289229
}
290230

@@ -307,6 +247,23 @@ function bringUpProfileView(id)
307247
}
308248
}
309249

250+
251+
var total = 1;
252+
var indexed = 0;
253+
254+
function updateProgress()
255+
{
256+
indexed++;
257+
258+
var percent = parseInt((indexed/total)*100);
259+
260+
$("#graphLoading").html("<div class=\"progress\">\n" +
261+
" <div class=\"progress-bar progress-bar-striped progress-bar-animated\" role=\"progressbar\" style=\"width: " + percent + "%\" aria-valuenow=\"" + percent + "\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\n" +
262+
"</div>");
263+
264+
console.log();
265+
}
266+
310267
/**
311268
* Creates a graph
312269
* @param username
@@ -322,7 +279,6 @@ function createOrgRepoGraph(orgname, containerName, graphsTitle)
322279

323280
addOrgUsers(orgname, 1).then(function()
324281
{
325-
$("#" + progressID).html("");
326282

327283
createConnections().then( () => {
328284
var container = document.getElementById(containerName);
@@ -331,13 +287,14 @@ function createOrgRepoGraph(orgname, containerName, graphsTitle)
331287
edges: edges
332288
};
333289
var network = new vis.Network(container, data, options);
334-
335290
network.on("click", function (params) {
336291
params.event = "[original event]";
337292
if(Number(this.getNodeAt(params.pointer.DOM)) !== NaN) {
338293
bringUpProfileView(Number(this.getNodeAt(params.pointer.DOM)));
339294
}
340295
});
296+
297+
$("#graphLoading").html("");
341298
});
342299
}).catch(function(error) {
343300
alert("Invalid Organization");

public/js/createOrgTable.js

Lines changed: 41 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,52 @@ function generateHtmlRow(repoData)
99
}
1010

1111

12-
function createOrgTable(orgName, tableContainer)
12+
var repos = [];
13+
14+
function fetchAllRepositories(orgName, page)
1315
{
14-
var html = "";
16+
return new Promise(function(resolve, reject)
17+
{
18+
queryAPIByOrg(API_REPOSITORIES + "?page=" + page, orgName,
19+
function(data)
20+
{
21+
repos.push(...data);
1522

16-
queryAPIByOrg(API_REPOSITORIES, orgName,
17-
function(data)
18-
{
19-
for(var i=0; i < data.length; i++)
23+
if (data.length === 30)
24+
{
25+
fetchAllRepositories(orgName, page + 1).then(function ()
26+
{
27+
resolve();
28+
})
29+
}
30+
else {
31+
resolve();
32+
}
33+
},
34+
function(error)
2035
{
21-
html += generateHtmlRow(data[i]);
22-
}
36+
//console.log("Unable to load table data");
37+
});
38+
});
39+
}
40+
41+
42+
function createOrgTable(orgName, tableContainer)
43+
{
44+
var html = "";
2345

24-
$("#" + tableContainer).html(html);
25-
$('#dataTable').DataTable();
2646

27-
},
28-
function(error)
47+
fetchAllRepositories(orgName, 1).then(function()
48+
{
49+
for(var i=0; i < repos.length; i++)
2950
{
30-
console.log("Unable to load table data");
31-
});
51+
html += generateHtmlRow(repos[i]);
52+
}
3253

54+
$("#" + tableContainer).html(html);
55+
$('#dataTable').DataTable();
56+
}).catch(function(error)
57+
{
58+
//console.log("Unable to create table");
59+
});
3360
}

public/js/friendsGraph.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,11 @@ function addPersonToGraph(profileData)
6666
*/
6767
function addFriends(username, apiPath, page)
6868
{
69-
console.log(username + " page=" + page);
7069
updateProgress();
7170
return new Promise(function(resolve, reject)
7271
{
7372
queryAPIByUser(apiPath + "?page=" + page, username, function(data)
7473
{
75-
console.log(data);
76-
console.log(data.length);
7774
for(var i = 0; i < data.length; i++)
7875
{
7976
if(!alreadyInGraph(data[i].id))
@@ -111,7 +108,6 @@ function addFriends(username, apiPath, page)
111108
*/
112109
function edgeInGraph(id1, id2)
113110
{
114-
console.log("edge check");
115111
for(var i = 0;i < edges.length; i++)
116112
{
117113
if(edges[i].from === id1 && edges[i].to === id2)
@@ -151,7 +147,6 @@ function addConnection(person1, person2)
151147

152148
function processConnections(user, apiPoint, page)
153149
{
154-
updateProgress();
155150
return new Promise(function(resolve, reject)
156151
{
157152
queryAPIByUser(apiPoint + "?page=" + page, user.name,
@@ -196,6 +191,7 @@ function processUserConnections(user)
196191
{
197192
processConnections(user, API_FOLLOWERS, 1).then(function()
198193
{
194+
updateProgress();
199195
resolve();
200196
})
201197
})
@@ -261,7 +257,7 @@ function addSelfToGraph(username)
261257
{
262258
queryAPIByUser("", username, function(data)
263259
{
264-
total = (data.followers + data.following) * 2;
260+
total = (data.followers + data.following);
265261
addPersonToGraph(data);
266262
resolve();
267263
},
@@ -305,7 +301,6 @@ function createFriendsGraph(username, containerName, graphsTitle)
305301
{
306302
createConnections().then(function()
307303
{
308-
console.log("cleared div");
309304
$("#" + progressID).html("");
310305

311306
var container = document.getElementById(containerName);

0 commit comments

Comments
 (0)