Skip to content

Commit ccd3830

Browse files
authored
Move closed polls to separate page (#75)
1 parent 0b18a29 commit ccd3830

File tree

9 files changed

+106
-105
lines changed

9 files changed

+106
-105
lines changed

main.go

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,34 @@ func main() {
126126
closedPolls = uniquePolls(closedPolls)
127127

128128
c.HTML(200, "index.tmpl", gin.H{
129-
"Polls": polls,
129+
"Polls": polls,
130+
"Username": claims.UserInfo.Username,
131+
"FullName": claims.UserInfo.FullName,
132+
})
133+
}))
134+
135+
r.GET("/closed", csh.AuthWrapper(func(c *gin.Context) {
136+
cl, _ := c.Get("cshauth")
137+
claims := cl.(cshAuth.CSHClaims)
138+
139+
closedPolls, err := database.GetClosedVotedPolls(c, claims.UserInfo.Username)
140+
if err != nil {
141+
c.JSON(500, gin.H{"error": err.Error()})
142+
return
143+
}
144+
ownedPolls, err := database.GetClosedOwnedPolls(c, claims.UserInfo.Username)
145+
if err != nil {
146+
c.JSON(500, gin.H{"error": err.Error()})
147+
return
148+
}
149+
closedPolls = append(closedPolls, ownedPolls...)
150+
151+
sort.Slice(closedPolls, func(i, j int) bool {
152+
return closedPolls[i].Id > closedPolls[j].Id
153+
})
154+
closedPolls = uniquePolls(closedPolls)
155+
156+
c.HTML(200, "closed.tmpl", gin.H{
130157
"ClosedPolls": closedPolls,
131158
"Username": claims.UserInfo.Username,
132159
"FullName": claims.UserInfo.FullName,

templates/closed.tmpl

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<title>CSH Vote</title>
5+
<!-- <link rel="stylesheet" href="https://themeswitcher.csh.rit.edu/api/get" /> -->
6+
<link
7+
rel="stylesheet"
8+
href="https://assets.csh.rit.edu/csh-material-bootstrap/4.3.1/dist/csh-material-bootstrap.min.css"
9+
media="screen"
10+
/>
11+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
12+
<style>
13+
ul {
14+
list-style: none;
15+
}
16+
</style>
17+
</head>
18+
<body>
19+
20+
{{ template "nav" . }}
21+
<div class="container main p-5">
22+
<h2>
23+
<div class="d-inline">Closed Polls</div>
24+
</h2>
25+
<br />
26+
<div>
27+
<ul class="list-group">
28+
{{ range $i, $poll := .ClosedPolls }}
29+
<li>
30+
<a
31+
class="list-group-item list-group-item-action"
32+
href="/results/{{ $poll.Id }}"
33+
>
34+
<span style="font-size: 1.1rem">
35+
{{ $poll.ShortDescription }}
36+
</span>
37+
38+
<span
39+
><i>(created by {{ $poll.CreatedBy }})</i></span
40+
>
41+
</a>
42+
</li>
43+
{{ end }}
44+
</ul>
45+
</div>
46+
</div>
47+
</body>
48+
</html>

templates/create.tmpl

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,8 @@
77
<meta name="viewport" content="width=device-width, initial-scale=1.0">
88
</head>
99
<body>
10-
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
11-
<div class="container">
12-
<a class="navbar-brand" href="/">Vote</a>
13-
<div class="nav navbar-nav ml-auto">
14-
<div class="navbar-user">
15-
<img alt="User profile photo" src="https://profiles.csh.rit.edu/image/{{ .Username }}" />
16-
<span class="text-light">{{ .FullName }}</span>
17-
<a href="/auth/logout" style="color: #c3c3c3;"><i>(logout)</i></a>
18-
</div>
19-
</div>
20-
</div>
21-
</nav>
10+
{{ template "nav" . }}
11+
2212
<div class="container main p-5">
2313
<h2>Create Poll</h2>
2414
<form action="/create" method="POST">

templates/hidden.tmpl

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,8 @@
2020
</style>
2121
</head>
2222
<body>
23-
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
24-
<div class="container">
25-
<a class="navbar-brand" href="/">Vote</a>
26-
<div class="nav navbar-nav ml-auto">
27-
<div class="navbar-user">
28-
<img src="https://profiles.csh.rit.edu/image/{{ .Username }}" />
29-
<span class="text-light">{{ .FullName }}</span>
30-
<a href="/auth/logout" style="color: #c3c3c3"><i>(logout)</i></a>
31-
</div>
32-
</div>
33-
</div>
34-
</nav>
35-
23+
{{ template "nav" . }}
24+
3625
<div
3726
style="text-align: center; font-size: 1.2rem"
3827
class="main p-5 error-page align-center"

templates/index.tmpl

Lines changed: 5 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,8 @@
1616
</style>
1717
</head>
1818
<body>
19-
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
20-
<div class="container">
21-
<a class="navbar-brand" href="/">Vote</a>
22-
<div class="nav navbar-nav ml-auto">
23-
<div class="navbar-user">
24-
<img src="https://profiles.csh.rit.edu/image/{{ .Username }}" />
25-
<span class="text-light">{{ .FullName }}</span>
26-
<a href="/auth/logout" style="color: #c3c3c3;"><i>(logout)</i></a>
27-
</div>
28-
</div>
29-
</div>
30-
</nav>
3119

20+
{{ template "nav" . }}
3221
<div class="container main p-5">
3322
<h2>
3423
<div class="d-inline">Active Polls</div>
@@ -47,43 +36,16 @@
4736
class="list-group-item list-group-item-action"
4837
href="/poll/{{ $poll.Id }}"
4938
>
50-
<span style="font-size: 1.1rem; white-space: normal; word-wrap: break-word;">{{
51-
$poll.ShortDescription
52-
}}</span>
53-
54-
<span
55-
><i>(created by {{ $poll.CreatedBy }})</i></span
56-
>
57-
</a>
58-
</li>
59-
{{
60-
end
61-
}}
62-
</ul>
63-
</div>
64-
<br />
65-
<h3>Closed Polls</h3>
66-
<br />
67-
<div>
68-
<ul class="list-group">
69-
{{ range $i, $poll := .ClosedPolls }}
70-
<li>
71-
<a
72-
class="list-group-item list-group-item-action"
73-
href="/results/{{ $poll.Id }}"
74-
>
75-
<span style="font-size: 1.1rem">{{
76-
$poll.ShortDescription
77-
}}</span>
39+
<span style="font-size: 1.1rem; white-space: normal; word-wrap: break-word;">
40+
{{ $poll.ShortDescription }}
41+
</span>
7842

7943
<span
8044
><i>(created by {{ $poll.CreatedBy }})</i></span
8145
>
8246
</a>
8347
</li>
84-
{{
85-
end
86-
}}
48+
{{ end }}
8749
</ul>
8850
</div>
8951
</div>

templates/nav.tmpl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{{ define "nav" }}
2+
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
3+
<div class="container">
4+
<a class="navbar-brand" href="/">Vote</a>
5+
<a class="nav-item nav-link text-light " href="/">Open Polls</a>
6+
<a class="nav-item nav-link text-light " href="/closed">Closed Polls</a>
7+
<a class="nav-item nav-link text-light " href="/create">Create Poll</a>
8+
<div class="nav navbar-nav ml-auto">
9+
<div class="navbar-user">
10+
<img src="https://profiles.csh.rit.edu/image/{{ .Username }}" />
11+
<span class="text-light">{{ .FullName }}</span>
12+
<a href="/auth/logout" style="color: #c3c3c3;"><i>(logout)</i></a>
13+
</div>
14+
</div>
15+
</div>
16+
</nav>
17+
18+
{{ end }}

templates/poll.tmpl

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,7 @@
1212
</style>
1313
</head>
1414
<body>
15-
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
16-
<div class="container">
17-
<a class="navbar-brand" href="/">Vote</a>
18-
<div class="nav navbar-nav ml-auto">
19-
<div class="navbar-user">
20-
<img src="https://profiles.csh.rit.edu/image/{{ .Username }}" />
21-
<span class="text-light">{{ .FullName }}</span>
22-
<a href="/auth/logout" style="color: #c3c3c3;"><i>(logout)</i></a>
23-
</div>
24-
</div>
25-
</div>
26-
</nav>
15+
{{ template "nav" . }}
2716

2817
<div class="container main p-5">
2918
<h2 style="white-space: normal; word-wrap: break-word;">{{ .ShortDescription }}</h2>

templates/result.tmpl

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,7 @@
1717
</style>
1818
</head>
1919
<body>
20-
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
21-
<div class="container">
22-
<a class="navbar-brand" href="/">Vote</a>
23-
<div class="nav navbar-nav ml-auto">
24-
<div class="navbar-user">
25-
<img src="https://profiles.csh.rit.edu/image/{{ .Username }}" />
26-
<span class="text-light">{{ .FullName }}</span>
27-
<a href="/auth/logout" style="color: #c3c3c3;"><i>(logout)</i></a>
28-
</div>
29-
</div>
30-
</div>
31-
</nav>
20+
{{ template "nav" . }}
3221

3322
<div class="container main p-5">
3423
{{ if eq .CanVote 9 }}

templates/unauthorized.tmpl

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,7 @@
2020
</style>
2121
</head>
2222
<body>
23-
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
24-
<div class="container">
25-
<a class="navbar-brand" href="/">Vote</a>
26-
<div class="nav navbar-nav ml-auto">
27-
<div class="navbar-user">
28-
<img src="https://profiles.csh.rit.edu/image/{{ .Username }}" />
29-
<span class="text-light">{{ .FullName }}</span>
30-
<a href="/auth/logout" style="color: #c3c3c3;"><i>(logout)</i></a>
31-
</div>
32-
</div>
33-
</div>
34-
</nav>
23+
{{ template "nav" . }}
3524

3625
<div
3726
style="text-align: center; font-size: 1.2rem"

0 commit comments

Comments
 (0)