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

Commit 9e5a4d9

Browse files
author
vikasrohit
committed
SUP-2839, Profile: # of wins in summary does not match winning challenges shown on Profile
SUP-3012, [Profile] Implement "private challenge" card -- Fixed issue with rendering of fallback-src directive for "No image available" placeholder image. -- Hidden the placement(for both dev and design) and submission images (for design) view for invite-only challenges. -- Changed the placeholder image for private challenges where submissions are not viewable. As of now API does not support that, hence, negation of isPrivate field is used to determine submissionViewable or not.
1 parent 08988f9 commit 9e5a4d9

File tree

7 files changed

+108
-12
lines changed

7 files changed

+108
-12
lines changed

app/directives/challenge-tile/challenge-tile.jade

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343

4444
p.date-completed {{challenge.submissionEndDate | date : 'MMMM yyyy'}}
4545

46-
.winner-ribbon(ng-show="challenge.wonFirst")
46+
.winner-ribbon(ng-show="challenge.wonFirst && !challenge.isPrivate")
4747

4848
.challenge-card__bottom.challenge-card__bottom--completed
4949
.challenge-details(ng-switch-when="DATA_SCIENCE", ng-switch="challenge.subTrack", ng-class="challenge.track")
@@ -55,10 +55,16 @@
5555
p Total Points
5656

5757
.challenge-details(ng-switch-when="DEVELOP")
58-
dev-challenge-user-place(challenge="challenge", view="view")
58+
dev-challenge-user-place(challenge="challenge", view="view", ng-hide="challenge.isPrivate")
59+
.invite-only-banner(ng-show="challenge.isPrivate")
60+
img(src=require("../../../assets/images/ico-invite-only-prj.svg"))
61+
span INVITE-ONLY CHALLENGE
5962

6063
.challenge-details(ng-switch-when="DESIGN")
61-
design-challenge-user-place(challenge="challenge", view="view")
64+
design-challenge-user-place(challenge="challenge", view="view", ng-hide="challenge.isPrivate")
65+
.invite-only-banner(ng-show="challenge.isPrivate")
66+
img(src=require("../../../assets/images/ico-invite-only-prj.svg"))
67+
span INVITE-ONLY CHALLENGE
6268

6369
// Only show if not data science track
6470
p.roles
@@ -113,7 +119,11 @@
113119
p Total Points
114120

115121
.challenge-details(ng-switch-when="DEVELOP")
116-
dev-challenge-user-place(challenge="challenge", view="view")
122+
dev-challenge-user-place(challenge="challenge", view="view", ng-hide="challenge.isPrivate")
123+
.invite-only-banner(ng-show="challenge.isPrivate")
124+
img(src=require("../../../assets/images/ico-invite-only-prj.svg"))
117125

118126
.challenge-details(ng-switch-when="DESIGN")
119-
design-challenge-user-place(challenge="challenge", view="view")
127+
design-challenge-user-place(challenge="challenge", view="view", ng-hide="challenge.isPrivate")
128+
.invite-only-banner(ng-show="challenge.isPrivate")
129+
img(src=require("../../../assets/images/ico-invite-only-prj.svg"))

app/directives/challenge-user-place/design-challenge-user-place.jade

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,18 @@
55
p.place.completed(ng-show="challenge.userStatus === 'COMPLETED'") COMPLETED
66

77
.thumbnail(ng-click="!challenge.isPrivate && imageURL && openLightbox()", ng-class="{hidden: challenge.userStatus !== 'PASSED_REVIEW'}")
8-
img(ng-show="!challenge.isPrivate", ng-src="{{imageURL || require('../../../assets/images/card-bg-no-image.svg')}}", fallback-src=require("../../../assets/images/card-bg-no-image.svg"))
9-
img(ng-show="challenge.isPrivate", src=require("../../../assets/images/card-bg-private-project.svg"))
8+
img(ng-show="challenge.submissionViewable && imageURL", ng-src="{{imageURL}}")
9+
img(ng-show="challenge.submissionViewable && !imageURL", ng-src="../../../assets/images/card-bg-no-image.svg")
10+
.private-challenge-banner(ng-show="!challenge.submissionViewable")
11+
img(src=require("../../../assets/images/ico-private-prj.svg"))
12+
span PRIVATE CHALLENGE
1013

1114
.thumbnail-gallery(ng-show="numImages", ng-click="!challenge.isPrivate && imageURL && openLightbox()")
1215
.gallery-icon
1316

14-
.num-images {{numImages}} IMAGES
17+
.num-images
18+
span(ng-show="challenge.submissionViewable") {{numImages}} IMAGES
19+
span(ng-show="!challenge.submissionViewable") No image is visible
1520

1621
.list-view(ng-show="view === 'list'")
1722
.place-date
@@ -21,14 +26,18 @@
2126
p.place.completed(ng-show="challenge.userStatus === 'COMPLETED'") COMPLETED
2227
p.date-completed {{challenge.submissionEndDate | date : 'MMMM yyyy'}}
2328

24-
.winner-ribbon(ng-show="challenge.wonFirst")
29+
.winner-ribbon(ng-show="challenge.wonFirst && !challenge.isPrivate")
2530

2631

2732
.thumbnail(ng-click="!challenge.isPrivate && imageURL && openLightbox()", ng-class="{hidden: challenge.userStatus !== 'PASSED_REVIEW'}")
28-
img(ng-show="!challenge.isPrivate", ng-src="{{imageURL || require('../../../assets/images/card-bg-no-image.svg')}}", fallback-src=require("../../../assets/images/ico-picture.svg"))
29-
img(ng-show="challenge.isPrivate", src=require("../../../assets/images/card-bg-private-project.svg"))
33+
img(ng-show="challenge.submissionViewable && imageURL", ng-src="{{imageURL}}")
34+
img(ng-show="challenge.submissionViewable && !imageURL", ng-src="../../../assets/images/card-bg-no-image.svg")
35+
.private-challenge-banner(ng-show="!challenge.submissionViewable")
36+
img(src=require("../../../assets/images/ico-private-prj.svg"))
3037

3138
.thumbnail-gallery(ng-show="numImages", ng-click="!challenge.isPrivate && imageURL && openLightbox()")
3239
.gallery-icon
3340

34-
.num-images {{numImages}} IMAGES
41+
.num-images
42+
span(ng-show="challenge.submissionViewable") {{numImages}} IMAGES
43+
span(ng-show="!challenge.submissionViewable") No image is visible

app/services/challenge.service.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,8 @@ import moment from 'moment'
231231
if (!challenge.userHasSubmitterRole) {
232232
challenge.userStatus = 'COMPLETED'
233233
}
234+
// FIXME, replace with field from response
235+
challenge.submissionViewable = !challenge.isPrivate;
234236
}
235237
})
236238
}

assets/css/directives/challenge-tile.scss

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,52 @@ challenge-tile .challenge.tile-view {
5353
flex: 2;
5454
}
5555

56+
.private-challenge-banner {
57+
width: 100%;
58+
background-color: $gray-darkest;
59+
flex: 1;
60+
display: flex;
61+
flex-direction: column;
62+
justify-content: center;
63+
align-items: center;
64+
65+
img {
66+
width: auto;
67+
}
68+
69+
span {
70+
@include font-with-weight('Sofia Pro', 300);
71+
font-size: 12px;
72+
line-height: 16px;
73+
text-transform: uppercase;
74+
color: $gray-dark;
75+
margin-top: 20px;
76+
}
77+
}
78+
79+
.invite-only-banner {
80+
width: 100%;
81+
background-color: $gray-darkest;
82+
flex: 1;
83+
display: flex;
84+
flex-direction: column;
85+
justify-content: center;
86+
align-items: center;
87+
88+
img {
89+
width: auto;
90+
}
91+
92+
span {
93+
@include font-with-weight('Sofia Pro', 300);
94+
font-size: 12px;
95+
line-height: 16px;
96+
text-transform: uppercase;
97+
color: $gray-dark;
98+
margin-top: 20px;
99+
}
100+
}
101+
56102
// roles bar is common for both active and completed
57103
.roles {
58104
width: 100%;

assets/css/directives/design-challenge-user-place.scss

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ design-challenge-user-place {
3131
width: 268px;
3232
height: 200px;
3333
overflow: hidden;
34+
display: flex;
35+
flex-direction: column;
3436

3537
img {
3638
width: 100%;

assets/images/ico-invite-only-prj.svg

Lines changed: 13 additions & 0 deletions
Loading

assets/images/ico-private-prj.svg

Lines changed: 14 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)