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

Commit 3d88ec5

Browse files
committed
Merge pull request #235 from appirio-tech/subtrack-stats-scroll
Subtrack stats scroll
2 parents 0f9c6d7 + b548b8d commit 3d88ec5

File tree

5 files changed

+88
-31
lines changed

5 files changed

+88
-31
lines changed

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,27 @@
2222
var subtrackRanks = [];
2323

2424
var trackRanks = ProfileService.getRanks(stats);
25+
2526
angular.forEach(trackRanks, function(subtracks, track) {
2627
if (Array.isArray(subtracks) && subtracks.length) {
2728
subtrackRanks = subtrackRanks.concat(subtracks);
2829
}
2930
});
3031

32+
angular.forEach(subtrackRanks, function(subtrack) {
33+
if (subtrack.track === 'COPILOT') {
34+
subtrack.stat = subtrack.activeContests;
35+
subtrack.statType = 'Active Contests';
36+
} else if (subtrack.track === 'DESIGN') {
37+
subtrack.stat = subtrack.wins;
38+
subtrack.statType = 'Wins';
39+
} else {
40+
subtrack.stat = subtrack.rating;
41+
subtrack.statType = 'Rating';
42+
}
43+
});
44+
console.log('subtrackRanks: ', subtrackRanks);
45+
3146
vm.subtrackRanks = subtrackRanks;
3247
vm.hasRanks = !!vm.subtrackRanks.length;
3348
vm.loading = false;

app/my-dashboard/subtrack-stats/subtrack-stats.jade

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
.ratings(ng-if="vm.hasRanks && !vm.loading")
55
.tracks
66
.track(ng-repeat="subtrack in vm.subtrackRanks | orderBy: ['track', 'rank']", ui-sref="profile.develop({userHandle: vm.profile.handle, track: subtrack.track, subTrack: subtrack.subTrack})")
7-
p.subtrack {{subtrack.subTrack | underscoreStrip}}
7+
.flex-wrapper
8+
p.subtrack {{subtrack.subTrack | underscoreStrip}}
89

9-
p.rating {{subtrack.rating | number}}
10-
span
10+
p.rating {{subtrack.stat | number}}
11+
span(style="background-color: {{subtrack.stat | ratingColor}}", ng-if="subtrack.track === 'DEVELOP' || subtrack.track === 'DATA_SCIENCE'")
1112

12-
p Rating
13+
p {{subtrack.statType}}

app/services/profile.service.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,20 +135,20 @@
135135
stats.COPILOT.track = 'COPILOT';
136136
stats.COPILOT.subTrack = 'COPILOT';
137137
}
138-
var ans = {
138+
var compiledStats = {
139139
'DEVELOP': removeRankless(dev),
140140
'DESIGN': removeRankless(design),
141141
'DATA_SCIENCE': removeRankless(dataScience),
142142
'COPILOT': copilot
143143
};
144144

145145
function removeRankless(arr) {
146-
return arr
147-
.filter(function(subTrack) {
148-
return subTrack && (subTrack.rank || subTrack.rating || subTrack.wins || subTrack.fulfillment);
149-
});
146+
return arr.filter(function(subTrack) {
147+
return subTrack && (subTrack.rank || subTrack.rating || subTrack.wins || subTrack.fulfillment);
148+
});
150149
}
151-
return ans;
150+
151+
return compiledStats;
152152
}
153153

154154
function getChallengeTypeStats(stats, track, type) {

assets/css/my-dashboard/subtrack-stats.scss

Lines changed: 60 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,67 @@
33
.subtrack-stats {
44
.ratings {
55
.tracks {
6-
display: flex;
7-
flex-flow: row wrap;
8-
justify-content: center;
6+
@include horizontal-scroll;
7+
@media only screen and (min-width: 768px) {
8+
display: flex;
9+
flex-flow: row wrap;
10+
justify-content: center;
11+
overflow: visible;
12+
white-space: normal;
13+
}
914

1015
.track {
11-
display: flex;
12-
flex-direction: column;
13-
align-items: center;
14-
margin-right: 30px;
15-
padding: 30px 20px;
16-
cursor: pointer;
17-
18-
&:hover {
19-
background-color: #F5FAE5;
20-
21-
.subtrack {
22-
color: #99CC00;
23-
border-bottom-color: #99CC00;
24-
}
16+
position: relative;
17+
display: inline-block;
18+
margin-right: 65px;
19+
padding: 20px 0;
20+
@media only screen and (min-width: 768px) {
21+
display: flex;
22+
flex-direction: column;
23+
align-items: center;
24+
margin-right: 30px;
25+
padding: 30px 20px;
26+
cursor: pointer;
27+
28+
&:hover {
29+
background-color: #F5FAE5;
2530

26-
p:last-child {
27-
color: #5E9EF1;
31+
.subtrack {
32+
color: #99CC00;
33+
border-bottom-color: #99CC00;
34+
}
35+
36+
p:last-child {
37+
color: #5E9EF1;
38+
}
2839
}
40+
41+
42+
}
43+
44+
&:first-child {
45+
margin-left: 20px;
46+
}
47+
48+
&:last-child {
49+
margin-right: 20px;
50+
}
51+
52+
.flex-wrapper {
53+
display: flex;
54+
flex-direction: column;
55+
align-items: center;
56+
}
57+
58+
59+
&:not(:first-child):before {
60+
content: '';
61+
display: block;
62+
position: absolute;
63+
top: 32px;
64+
left: -30px;
65+
@include forward-slash(1px, 60px, 0, 2px, 30deg);
66+
background-color: #D1D3D4;
2967
}
3068

3169
p {
@@ -49,6 +87,9 @@
4987
margin-bottom: 7px;
5088
font-size: 32px;
5189
color: $primary-text;
90+
@media only screen and (max-width: 767px) {
91+
margin-top: 10px;
92+
}
5293

5394
span {
5495
position: absolute;

gulpfile.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ gulp.task('serve', ['inject', 'ngConstants'], function() {
288288
scroll: true
289289
},
290290
logPrefix: 'Topcoder-Account',
291-
notify: true,
291+
notify: false,
292292
port: 3000,
293293
reloadDelay: 1000
294294
};
@@ -351,7 +351,7 @@ gulp.task('serve-build', ['build'], function() {
351351
scroll: true
352352
},
353353
logPrefix: 'Topcoder-Account',
354-
notify: true,
354+
notify: false,
355355
reloadDelay: 1000
356356
};
357357

0 commit comments

Comments
 (0)