Skip to content
This repository was archived by the owner on Dec 8, 2022. It is now read-only.

Commit 860035b

Browse files
Update to make a leaderboard component for after voting has ended
1 parent b4b4176 commit 860035b

File tree

6 files changed

+169
-23
lines changed

6 files changed

+169
-23
lines changed

src/components/VoteLeaderboardSearch.vue

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
v-for="(item, i) in pageData.items"
5656
:key="i"
5757
v-bind="item"
58+
:is-voting-disabled="isVotingDisabled"
5859
@click="showCode(item)"
5960
/>
6061
</v-row>
@@ -65,7 +66,11 @@
6566
circle
6667
></v-pagination>
6768
</v-row>
68-
<CodeModal v-bind="this.item" v-model="showModal" />
69+
<CodeModal
70+
v-bind="this.item"
71+
v-model="showModal"
72+
:is-voting-disabled="isVotingDisabled"
73+
/>
6974
</v-container>
7075
</template>
7176

@@ -82,6 +87,12 @@ export default {
8287
CodeModal,
8388
SearchBar
8489
},
90+
props: {
91+
isVotingDisabled: {
92+
type: Boolean,
93+
default: false
94+
}
95+
},
8596
data() {
8697
return {
8798
totalEntries: "",
@@ -227,4 +238,12 @@ export default {
227238
};
228239
</script>
229240

230-
<style></style>
241+
<style lang="scss" scoped>
242+
h2 {
243+
text-align: center;
244+
color: #0d1d41;
245+
font-family: "Barlow", sans-serif;
246+
font-weight: bold;
247+
margin-bottom: 12px;
248+
}
249+
</style>

src/views/Voting/Ballot.vue

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,6 @@ export default {
9191
background-color: white;
9292
}
9393
94-
h2 {
95-
text-align: center;
96-
color: #0d1d41;
97-
font-family: "Barlow", sans-serif;
98-
font-weight: bold;
99-
margin-bottom: 12px;
100-
}
101-
10294
.first {
10395
margin-top: -60px;
10496
padding-top: 40px;
@@ -139,6 +131,7 @@ h2 {
139131
height: 150px;
140132
}
141133
134+
/* bubble seems to not be used */
142135
.bubble {
143136
max-width: 700px;
144137
border: #011e41;

src/views/Voting/BallotCard.vue

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
</div>
1717

1818
<v-btn elevation="0" color="cwhqBlue" block>See Code</v-btn>
19-
<v-btn elevation="0" color="primary" block>Vote</v-btn>
19+
<v-btn v-if="!isVotingDisabled" elevation="0" color="primary" block
20+
>Vote</v-btn
21+
>
2022
</v-card>
2123
</template>
2224

@@ -31,7 +33,8 @@ export default {
3133
"text",
3234
"username",
3335
"value",
34-
"initials"
36+
"initials",
37+
"isVotingDisabled" // boolean, required
3538
]
3639
};
3740
</script>

src/views/Voting/BallotLeaders.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<v-row>
44
<v-col>
55
<h2 class="ballot-header">
6-
Today's Leaders
6+
<slot name="header">Today's Leaders</slot>
77
</h2>
88
</v-col>
99
</v-row>

src/views/Voting/CodeModal.vue

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@
2424
solo
2525
v-bind="fields.email"
2626
v-model="fields.email.value"
27-
:disabled="isSubmitting"
27+
:disabled="isSubmitting || isVotingDisabled"
2828
/>
2929
<v-btn
3030
block
3131
tile
3232
color="cwhqBlue"
3333
type="submit"
34-
:disabled="isSubmitting"
35-
>Confirm Vote</v-btn
34+
:disabled="isSubmitting || isVotingDisabled"
35+
>{{ isVotingDisabled ? "Vote Over" : "Cast Vote" }}</v-btn
3636
>
3737

3838
<v-row no-gutters class="icons" justify="center">
@@ -112,7 +112,8 @@ export default {
112112
"text",
113113
"username",
114114
"value",
115-
"initials"
115+
"initials",
116+
"isVotingDisabled" //boolean, required
116117
],
117118
data() {
118119
return {
@@ -126,7 +127,9 @@ export default {
126127
email: {
127128
type: "email",
128129
value: "",
129-
label: "ENTER E-MAIL TO VOTE"
130+
label: this.isVotingDisabled
131+
? "VOTING HAS ENDED"
132+
: "ENTER E-MAIL TO VOTE"
130133
}
131134
}
132135
};
Lines changed: 133 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,142 @@
11
<template>
2-
<div>
3-
test
2+
<div class="ballot-wrapper">
3+
<div class="image first pb-9">
4+
<v-container>
5+
<v-row class="content">
6+
<v-col class="text-center">
7+
<div class="text-center" style="width: 100%;">
8+
<a href="#" @click="reload">
9+
<img src="/images/logo-small.png" class="mt-2" />
10+
</a>
11+
</div>
12+
13+
<div style="max-width:600px; margin: auto;">
14+
<h2>
15+
Thank You All Who Participated
16+
</h2>
17+
<div>
18+
The CWHQ code challenge is now over. Congraulation to everyone
19+
below who completed every mission, including our boss question.
20+
The entries are in order by number of votes. We hope you'll lend
21+
us your aid for next year's edition!
22+
</div>
23+
</div>
24+
</v-col>
25+
</v-row>
26+
</v-container>
27+
</div>
28+
<div class="pt-4 pb-12">
29+
<VoteLeaderboardSearch :is-voting-disabled="true">
30+
<template slot="header">Voting Has Ended!</template>
31+
<template slot="content">
32+
The 2021 CWHQ code challenge is now over.
33+
<br />
34+
<br />
35+
<b>
36+
Behold, the final contestants who have completed 21 coding
37+
challenges! Congratulations to everyone, and thank you for
38+
participating!
39+
<br />
40+
<br />
41+
You can use the search bar above to find a particular entry.
42+
</b>
43+
</template>
44+
</VoteLeaderboardSearch>
45+
</div>
46+
<div class="footer"></div>
447
</div>
548
</template>
649

750
<script>
51+
// TODO: this component is largely copy pasted from Ballot - they should be consolidated at some point
52+
import VoteLeaderboardSearch from "@/components/VoteLeaderboardSearch";
53+
854
export default {
9-
// TODO: remain leaderboard to leaderbar, and rename this to leaderboard
10-
name: "VoteOverLeaderboard"
55+
name: "Ballot",
56+
components: {
57+
VoteLeaderboardSearch
58+
},
59+
methods: {
60+
reload() {
61+
// TODO: handle this better
62+
window.location = this.$route.path;
63+
// window.location = "/voting?page=1";
64+
}
65+
}
1166
};
1267
</script>
1368

14-
<style lang="scss" scoped></style>
69+
<style lang="scss" scoped>
70+
.ballot-wrapper {
71+
background-color: white;
72+
}
73+
74+
.first {
75+
margin-top: -60px;
76+
padding-top: 40px;
77+
}
78+
79+
.image {
80+
$height: 550px;
81+
background-size: cover;
82+
min-height: $height;
83+
background-image: url("/images/website-banner-challenge-2021.png");
84+
&:after {
85+
content: "";
86+
display: block;
87+
position: absolute;
88+
z-index: 2;
89+
top: -60px;
90+
left: 0;
91+
height: $height;
92+
width: 100%;
93+
background: url("https://codewizardshq.com/wp-content/themes/codewizards/assets/images/banner-bg-2.png")
94+
no-repeat center top;
95+
background-size: cover;
96+
}
97+
98+
.content {
99+
z-index: 12;
100+
position: relative;
101+
102+
h2 {
103+
color: white;
104+
font-size: 42px;
105+
}
106+
}
107+
}
108+
109+
.footer {
110+
background-color: #0d1d41;
111+
height: 150px;
112+
}
113+
114+
/* bubble seems to not be used */
115+
.bubble {
116+
max-width: 700px;
117+
border: #011e41;
118+
border-radius: 20px;
119+
padding: 30px;
120+
margin: auto;
121+
}
122+
123+
.colored {
124+
display: block;
125+
position: relative;
126+
background-color: #a1c5d3;
127+
color: #011e41;
128+
129+
background-image: url(data:image/png;base64,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),
130+
url(data:image/png;base64,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);
131+
background-position: left center, right center;
132+
background-repeat: no-repeat;
133+
134+
a {
135+
small {
136+
color: white;
137+
display: block;
138+
padding-top: 12px;
139+
}
140+
}
141+
}
142+
</style>

0 commit comments

Comments
 (0)