Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 8ef2bb6

Browse files
author
vikasrohit
committedOct 30, 2015
Merge pull request #510 from appirio-tech/feature/quick-fixes-after-ga-release
Fixed p0 @parthshah @tladendo fyi
2 parents b35cfe0 + 0f4d00c commit 8ef2bb6

File tree

6 files changed

+61
-19
lines changed

6 files changed

+61
-19
lines changed
 

‎app/my-dashboard/my-challenges/my-challenges.controller.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
ChallengeService.getUserMarathonMatches(handle, marathonMatchParams),
4040
ChallengeService.getUserChallenges(handle, challengeParams)
4141
]).then(function(challenges){
42-
console.log('challenges: ', challenges);
4342
var marathonMatches = challenges[0];
4443
var devDesignChallenges = challenges[1];
4544

‎app/my-dashboard/subtrack-stats/subtrack-stats.controller.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
var subtrackRanks = UserStatsService.compileSubtracks(trackRanks);
2121

2222
UserStatsService.processStats(subtrackRanks);
23+
// filter stats based on processing done above
24+
// filtering is a separate step to allow multiple pre-processings and filter out in single call
25+
subtrackRanks = UserStatsService.filterStats(subtrackRanks);
2326
// sort subtrack ranks
2427
subtrackRanks = $filter('orderBy')(subtrackRanks, 'mostRecentEventDate', true);
2528

‎app/profile/about/about.jade

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848

4949
.track(
5050
ng-repeat="track in profileVm.profile.tracks",
51-
ng-if="profileVm.categories[track].length > 0",
51+
ng-if="profileVm.categories[track].showTrack",
5252
id="{{track}}_TRACK"
5353
)
5454

@@ -63,6 +63,7 @@
6363
ng-repeat="subtrack in profileVm.categories[track] | orderBy:'mostRecentEventDate':true",
6464
ui-sref="profile.subtrack({track: subtrack.track, subTrack: subtrack.subTrack})",
6565
class="{{$index == 0 && 'first'}}"
66+
ng-if="subtrack.showStats"
6667
)
6768
.name {{subtrack.subTrack | track}}
6869

@@ -77,7 +78,7 @@
7778

7879
.tag Ranking
7980

80-
.ranking(ng-if="subtrack.wins !== null && subtrack.rank === null && !subtrack.rating")
81+
.ranking(ng-if="subtrack.statType === 'Wins'")
8182
.number(style="color: #21B2F1") {{subtrack.wins}}
8283

8384
.tag Wins

‎app/profile/profile.controller.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
angular.module('tc.profile').controller('ProfileCtrl', ProfileCtrl);
55

66
ProfileCtrl.$inject = ['CONSTANTS', '$log', '$q',
7-
'TcAuthService', 'UserService', 'ProfileService', 'ChallengeService', 'ExternalAccountService',
7+
'TcAuthService', 'UserService', 'UserStatsService', 'ProfileService', 'ChallengeService', 'ExternalAccountService',
88
'userHandle', 'profile', 'ngDialog', '$anchorScroll'
99
];
1010

11-
function ProfileCtrl(CONSTANTS, $log, $q, TcAuthService, UserService, ProfileService, ChallengeService, ExternalAccountService, userHandle, profile, ngDialog, $anchorScroll) {
11+
function ProfileCtrl(CONSTANTS, $log, $q, TcAuthService, UserService, UserStatsService, ProfileService, ChallengeService, ExternalAccountService, userHandle, profile, ngDialog, $anchorScroll) {
1212
var vm = this;
1313
// set profile to the object that was resolved
1414
vm.profile = profile;
@@ -45,6 +45,19 @@
4545
vm.numProjects = vm.stats.challenges;
4646
vm.numWins = vm.stats.wins;
4747
vm.categories = ProfileService.getRanks(vm.stats);
48+
for(var trackName in vm.categories) {
49+
// trackStats is an array of subtrack rankings along with track stats properties (e.g showTrack)
50+
var trackStats = vm.categories[trackName];
51+
trackStats.showTrack = false;
52+
if (trackStats && trackStats.length > 0) {
53+
trackStats.forEach(function(subTrackRank) {
54+
UserStatsService.processStatRank(subTrackRank);
55+
if (subTrackRank.showStats) {
56+
trackStats.showTrack = true;
57+
}
58+
});
59+
}
60+
}
4861
} else {
4962
vm.stats = false;
5063
// vm.profile.tracks = [];

‎app/services/profile.service.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@
123123
'rank': false,
124124
'challenges': subTrack.challenges,
125125
'wins': subTrack.wins,
126+
'submissions': (subTrack.submissions) || 0,
126127
'mostRecentEventDate': new Date(subTrack.mostRecentEventDate)
127128
};
128129
});

‎app/services/userStats.service.js

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
var service = {
1515
getIterableStats: getIterableStats,
1616
processStats: processStats,
17-
compileSubtracks: compileSubtracks
17+
compileSubtracks: compileSubtracks,
18+
filterStats: filterStats,
19+
processStatRank: processStatRank
1820
};
1921

2022
var percentageFunc = function(n) { return $filter('percentage')(n);};
@@ -111,27 +113,50 @@
111113
}, []);
112114
}
113115

114-
function processStats(ranks) {
115-
angular.forEach(ranks, function(rank) {
116-
if (rank.track === 'DESIGN') {
116+
function processStatRank(rank) {
117+
rank.showStats = true;
118+
if (rank.track === 'DESIGN') {
119+
rank.stat = rank.wins;
120+
rank.statType = 'Wins';
121+
// for non rated tracks, use submissions to filter out empty values
122+
if(!rank.submissions) {
123+
rank.showStats = false;
124+
}
125+
} else if (rank.track === 'COPILOT') {
126+
rank.stat = rank.activeContests;
127+
rank.statType = 'Challenges';
128+
} else if (rank.track === 'DEVELOP') {
129+
if (['CODE', 'FIRST_2_FINISH'].indexOf(rank.subTrack) != -1) {
117130
rank.stat = rank.wins;
118131
rank.statType = 'Wins';
119-
} else if (rank.track === 'COPILOT') {
120-
rank.stat = rank.activeContests;
121-
rank.statType = 'Challenges';
122-
} else if (rank.track === 'DEVELOP') {
123-
if (['CODE', 'FIRST_2_FINISH'].indexOf(rank.subTrack) != -1) {
124-
rank.stat = rank.wins;
125-
rank.statType = 'Wins';
126-
} else {
127-
rank.stat = rank.rating;
128-
rank.statType = 'Rating';
132+
// for non rated tracks, use submissions to filter out empty values
133+
if(!rank.submissions) {
134+
rank.showStats = false;
129135
}
130136
} else {
131137
rank.stat = rank.rating;
132138
rank.statType = 'Rating';
133139
}
140+
} else {
141+
rank.stat = rank.rating;
142+
rank.statType = 'Rating';
143+
}
144+
}
145+
146+
function processStats(ranks) {
147+
angular.forEach(ranks, function(rank) {
148+
processStatRank(rank);
149+
});
150+
}
151+
152+
function filterStats(ranks) {
153+
var filtered = [];
154+
angular.forEach(ranks, function(rank) {
155+
if (rank.showStats) {
156+
filtered.push(rank);
157+
}
134158
});
159+
return filtered;
135160
}
136161

137162

0 commit comments

Comments
 (0)
This repository has been archived.