Skip to content
This repository was archived by the owner on Mar 3, 2020. It is now read-only.

Commit 37c43e7

Browse files
juanrossijustinwray
authored andcommitted
Make sure that requests are not being generated if an error was generated (#565)
* If a request was sent, don't create another one until the first one has finished. * If a request fails, wait one extra "round" before sending new ones.
1 parent b9822ff commit 37c43e7

File tree

1 file changed

+72
-31
lines changed

1 file changed

+72
-31
lines changed

src/static/js/fb-ctf.js

Lines changed: 72 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,9 @@ function setupInputListeners() {
274274
$listview,
275275
$mapSvg,
276276
$map,
277-
$countryHover;
277+
$countryHover,
278+
reload = true,
279+
reload_team = true;
278280

279281

280282
/**
@@ -516,44 +518,72 @@ function setupInputListeners() {
516518
}, FB_CTF.data.CONF.refreshConf);
517519

518520
// Countries and other modules
521+
var count = 0;
519522
setInterval(function() {
520-
if (FB_CTF.data.CONF.gameboard === '1') {
521-
// Map
522-
getCountryData();
523-
refreshMapData();
524-
// Announcements
525-
if (Widget.getWidgetStatus('Announcements') === 'open') {
526-
loadAnnouncementsModule();
527-
}
528-
// Filter
529-
if (Widget.getWidgetStatus('Filter') === 'open') {
530-
loadSavedFilterModule();
531-
}
532-
// Activity
533-
if (Widget.getWidgetStatus('Activity') === 'open') {
534-
loadActivityModule();
523+
if (reload == true || count > 1){
524+
reload = false;
525+
if (FB_CTF.data.CONF.gameboard === '1') {
526+
// Map
527+
getCountryData();
528+
refreshMapData();
529+
// Announcements
530+
if (Widget.getWidgetStatus('Announcements') === 'open') {
531+
loadAnnouncementsModule();
532+
}
533+
// Filter
534+
if (Widget.getWidgetStatus('Filter') === 'open') {
535+
loadSavedFilterModule();
536+
}
537+
// Activity
538+
if (Widget.getWidgetStatus('Activity') === 'open') {
539+
loadActivityModule();
540+
}
541+
} else {
542+
clearMapData();
543+
clearAnnouncements();
544+
clearActivity();
535545
}
536-
} else {
537-
clearMapData();
538-
clearAnnouncements();
539-
clearActivity();
546+
}
547+
548+
if (reload == false){
549+
count += 1;
550+
}
551+
552+
// reset counter
553+
if (count > 1){
554+
count = 0;
555+
reload = true;
540556
}
541557
}, FB_CTF.data.CONF.refreshMap);
542558

543559
// Teams
560+
var teams_count = 0;
544561
setInterval(function() {
545-
if (FB_CTF.data.CONF.gameboard === '1') {
546-
// Teams
547-
loadTeamData();
548-
if (Widget.getWidgetStatus('Teams') === 'open') {
549-
loadTeamsModule();
550-
}
551-
if (Widget.getWidgetStatus('Leaderboard') === 'open') {
552-
loadLeaderboardModule();
562+
if (reload_team == true || teams_count > 1){
563+
reload_team = false;
564+
if (FB_CTF.data.CONF.gameboard === '1') {
565+
// Teams
566+
loadTeamData();
567+
if (Widget.getWidgetStatus('Teams') === 'open') {
568+
loadTeamsModule();
569+
}
570+
if (Widget.getWidgetStatus('Leaderboard') === 'open') {
571+
loadLeaderboardModule();
572+
}
573+
} else {
574+
clearTeams();
575+
clearLeaderboard();
553576
}
554-
} else {
555-
clearTeams();
556-
clearLeaderboard();
577+
}
578+
579+
if (reload_team == false){
580+
teams_count += 1;
581+
}
582+
583+
// reset team counter
584+
if (teams_count > 1){
585+
teams_count = 0;
586+
reload_team = true;
557587
}
558588
}, FB_CTF.data.CONF.refreshMap);
559589

@@ -1433,13 +1463,16 @@ function setupInputListeners() {
14331463
return $.get(loadPath, function(data) {
14341464
FB_CTF.data.TEAMS = data;
14351465
var df = $.Deferred();
1466+
reload_team = true;
14361467
return df.resolve(FB_CTF.data.TEAMS);
14371468
}, 'json').error(function(jqhxr, status, error) {
14381469
console.error("There was a problem retrieving the team data.");
14391470
console.log(loadPath);
14401471
console.log(status);
14411472
console.log(error);
14421473
console.error("/error");
1474+
console.error("Team data request failed");
1475+
reload_team = false;
14431476
});
14441477
}
14451478

@@ -1498,13 +1531,15 @@ function setupInputListeners() {
14981531
return $.get(loadPath, function(data) {
14991532
FB_CTF.data.CONF = data;
15001533
var df = $.Deferred();
1534+
reload = true;
15011535
return df.resolve(FB_CTF.data.CONF);
15021536
}, 'json').error(function(jqhxr, status, error) {
15031537
console.error("There was a problem retrieving the conf data.");
15041538
console.log(loadPath);
15051539
console.log(status);
15061540
console.log(error);
15071541
console.error("/error");
1542+
reload = false;
15081543
});
15091544
}
15101545

@@ -1546,12 +1581,14 @@ function setupInputListeners() {
15461581
$('#' + key)[0].parentNode.setAttribute('data-captured', value.datacaptured);
15471582
}
15481583
});
1584+
reload = true;
15491585
}, 'json').error(function(jqhxr, status, error) {
15501586
console.error("There was a problem retrieving the map data.");
15511587
console.log(loadPath);
15521588
console.log(status);
15531589
console.log(error);
15541590
console.error("/error");
1591+
reload = false;
15551592
});
15561593
}
15571594

@@ -1568,12 +1605,14 @@ function setupInputListeners() {
15681605
$('#' + key)[0].parentNode.children[1].classList.remove("captured--you");
15691606
$('#' + key)[0].parentNode.children[1].classList.remove("captured--opponent");
15701607
});
1608+
reload = true;
15711609
}, 'json').error(function(jqhxr, status, error) {
15721610
console.error("There was a problem retrieving the map data.");
15731611
console.log(loadPath);
15741612
console.log(status);
15751613
console.log(error);
15761614
console.error("/error");
1615+
reload = false;
15771616
});
15781617
}
15791618

@@ -1591,13 +1630,15 @@ function setupInputListeners() {
15911630
return $.get(loadPath, function(data) {
15921631
FB_CTF.data.COUNTRIES = data;
15931632
var df = $.Deferred();
1633+
reload = true;
15941634
return df.resolve(FB_CTF.data.COUNTRIES);
15951635
}, 'json').error(function(jqxhr, status, error) {
15961636
console.error("There was a problem retrieving the game data.");
15971637
console.log(loadPath);
15981638
console.log(status);
15991639
console.log(error);
16001640
console.error("/error");
1641+
reload = false;
16011642
});
16021643
}
16031644

0 commit comments

Comments
 (0)