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

Commit a27b27c

Browse files
author
Nick Litwin
committed
Show empty state if a user has not participated in any challenges
1 parent 9141bd2 commit a27b27c

File tree

4 files changed

+40
-57
lines changed

4 files changed

+40
-57
lines changed

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

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
vm.domain = CONSTANTS.domain;
1111
vm.loading = true;
1212
vm.myChallenges = [];
13+
vm.userHasChallenges = true;
1314

1415
// Can we remove these since the filter is going on a different page?
1516
vm.viewActiveChallenges = viewActiveChallenges;
@@ -51,20 +52,26 @@
5152
var challenges = data[0];
5253
var spotlightChallenges = data[1];
5354

54-
// Helpers.addTrack(challenges);
55-
processChallengesResponse(challenges);
55+
if (challenges.length > 0) {
56+
processChallengesResponse(challenges);
5657

57-
vm.myChallenges = challenges;
58-
console.log('regular challenges: ', vm.myChallenges.plain())
58+
vm.myChallenges = challenges;
59+
console.log('regular challenges: ', vm.myChallenges.plain())
5960

60-
vm.spotlightChallenge = spotlightChallenges[0];
61-
console.log('spotlight: ', vm.spotlightChallenge);
62-
63-
vm.loading = false;
61+
vm.spotlightChallenge = spotlightChallenges[0];
62+
console.log('spotlight: ', vm.spotlightChallenge);
6463

64+
vm.userHasChallenges = true;
65+
vm.loading = false;
66+
} else {
67+
vm.userHasChallenges = false;
68+
vm.spotlightChallenges = spotlightChallenges.slice(0, 2);
69+
vm.loading = false;
70+
}
6571
})
6672
.catch(function(err) {
6773
$log.error(err);
74+
vm.userHasChallenges = true;
6875
vm.loading = false;
6976
// TODO - handle error
7077
});
Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
header
22
h1.section-title My Challenges
33

4-
p
4+
p.noChallenges(ng-hide="vm.userHasChallenges") You have not participated in any challenges yet.
5+
6+
p.viewChallenges(ng-show="vm.userHasChallenges")
57
a(ui-sref="something") View All My Challenges
68

79
.section-loading(ng-show="vm.loading")
810

9-
section.challenges(ng-hide="vm.loading")
11+
section.challenges(ng-if="vm.userHasChallenges && !vm.loading")
1012
challenge-tile.tile(ng-repeat="challenge in vm.myChallenges", challenge="challenge", domain="vm.domain")
1113

1214
challenge-tile.tile.spotlight(spotlight, challenge="vm.spotlightChallenge", domain="vm.domain")
@@ -15,10 +17,13 @@ section.challenges(ng-hide="vm.loading")
1517
.new-challenges.link
1618
a(href="https://www.{{vm.domain}}/challenges/") Find New Challenges
1719

18-
.topcoder-direct.link
20+
.topcoder-direct.link(ng-show="vm.userHasChallenges")
1921
a(href="https://www.{{vm.domain}}/direct") Launch Topcoder Direct
2022

21-
.help-library.link(ng-show='vm.myChallenges.length == 0')
23+
.help-library.link(ng-hide="vm.userHasChallenges")
2224
a(href="https://community.{{vm.domain}}/", target="_blank") View Help Library
2325

26+
.spotlightChallenges(ng-hide="vm.userHasChallenges")
27+
challenge-tile.tile.spotlight(ng-repeat="spotlight in vm.spotlightChallenges", spotlight, challenge="spotlight", domain="vm.domain")
28+
2429
hr

app/services/helpers.service.js

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616
countCompleted: countCompleted,
1717
getParameterByName: getParameterByName,
1818
getPageTitle: getPageTitle,
19-
isEmail: isEmail,
20-
addTrack: addTrack
19+
isEmail: isEmail
2120
};
2221
return service;
2322

@@ -162,47 +161,5 @@
162161
var re = /^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
163162
return re.test(value);
164163
}
165-
166-
function addTrack(challenges) {
167-
var tracks = {
168-
'Application Front-End Design': 'design',
169-
'Banners/Icons': 'design',
170-
'Design First2Finish': 'design',
171-
'Front-End Flash': 'design',
172-
'Idea Generation': 'design',
173-
'Logo Design': 'design',
174-
'Print/Presentation': 'design',
175-
'Studio Other': 'design',
176-
'Web Design': 'design',
177-
'Widget or Mobile Screen Design': 'design',
178-
'Wireframes': 'design',
179-
'Architecture': 'develop',
180-
'Assembly': 'develop',
181-
'Bug Hunt': 'develop',
182-
'Code': 'develop',
183-
'Conceptualization': 'develop',
184-
'Content Creation': 'develop',
185-
'Copilot Posting': 'develop',
186-
'Component Design': 'develop',
187-
'Component Development': 'develop',
188-
'First2Finish': 'develop',
189-
'Marathon Match': 'develop',
190-
'RIA Build': 'develop',
191-
'Specification': 'develop',
192-
'Test Scenarios': 'develop',
193-
'Test Suites': 'develop',
194-
'UI Prototype': 'develop'
195-
}
196-
197-
challenges.forEach(function(challenge) {
198-
var subtrack = challenge.challengeType;
199-
if (tracks[subtrack]) {
200-
challenge.track = tracks[subtrack];
201-
challenge.userDetails.roles = ['R', 'CP'];
202-
} else {
203-
challenge.track = 'Data Science';
204-
}
205-
});
206-
}
207164
}
208165
})();

assets/css/member-dashboard/my-challenges.scss

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,13 @@ $url_10: url(../images/sort-arrows.png);
1717
text-align: center;
1818
}
1919

20-
p {
20+
p.noChallenges {
21+
text-align: center;
22+
margin-top: 10px;
23+
font-size: 18px;
24+
}
25+
26+
p.viewChallenges {
2127
position: absolute;
2228
top: 3px;
2329
right: 10px;
@@ -35,4 +41,12 @@ $url_10: url(../images/sort-arrows.png);
3541
margin, since we can't use .tile:first-child here */
3642
margin-left: -20px;
3743
}
44+
45+
.spotlightChallenges {
46+
display: flex;
47+
flex-direction: row;
48+
justify-content: space-between;
49+
margin-top: 20px;
50+
margin-bottom: 10px;
51+
}
3852
}

0 commit comments

Comments
 (0)