Skip to content

Commit cc9e4d4

Browse files
authored
Merge pull request #52 from br0xen/master
View archived jams
2 parents c49ea80 + 6f949e1 commit cc9e4d4

File tree

5 files changed

+120
-21
lines changed

5 files changed

+120
-21
lines changed

admin_archive.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,28 @@ func handleAdminArchive(w http.ResponseWriter, req *http.Request, page *pageData
2020
redirect("/admin/jam", w, req)
2121
} else if id != "" {
2222
// Display a specific archive
23+
agj := new(ArchivedGamejam)
2324
for _, v := range m.archive.Jams {
2425
if id == v.UUID {
25-
page.TemplateData = v
26+
agj.UUID = v.UUID
27+
agj.Name = v.Name
28+
agj.Date = v.Date
29+
agj.Rankings = v.Rankings
30+
agj.Teams = v.Teams
31+
agj.Votes = v.Votes
2632
break
2733
}
2834
}
35+
// We want to replace the team UUIDs in the rankings with their name
36+
for k, v := range agj.Rankings {
37+
for _, tv := range agj.Teams {
38+
if tv.UUID == v {
39+
agj.Rankings[k] = tv.Name
40+
break
41+
}
42+
}
43+
}
44+
page.TemplateData = agj
2945
page.SubTitle = "Archived Game Jam"
3046
page.show("admin-viewarchived.html", w)
3147
} else {

assets.go

Lines changed: 10 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ func InitPageData(w http.ResponseWriter, req *http.Request) *pageData {
286286
// Build the menu
287287
if p.LoggedIn {
288288
p.Menu = append(p.Menu, menuItem{"Admin", "/admin", "fa-key"})
289+
p.Menu = append(p.Menu, menuItem{"Jam", "/admin/jam", "fa-play-circle-o"})
289290
p.Menu = append(p.Menu, menuItem{"Teams", "/admin/teams", "fa-users"})
290291
p.Menu = append(p.Menu, menuItem{"Games", "/admin/games", "fa-gamepad"})
291292
p.Menu = append(p.Menu, menuItem{"Votes", "/admin/votes", "fa-sticky-note"})

model_archive.go

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"errors"
45
"fmt"
56
"strconv"
67
"time"
@@ -125,11 +126,75 @@ func NewArchivedGamejam(uuid string) (*ArchivedGamejam, error) {
125126
if err != nil {
126127
return nil, err
127128
}
128-
// Probably we want to load in the teams & votes too...
129+
// Now load in all of the teams
130+
var tmUUIDs []string
131+
if tmUUIDs, err = bolt.GetBucketList([]string{"jam", "teams"}); err != nil {
132+
return nil, err
133+
}
134+
for _, v := range tmUUIDs {
135+
tm, err := gj.LoadTeam(bolt, v)
136+
if err != nil {
137+
return nil, err
138+
}
139+
gj.Teams = append(gj.Teams, *tm)
140+
}
141+
142+
// And finally, the Rankings
143+
var ranks []string
144+
if ranks, err = bolt.GetKeyList([]string{"jam", "rankings"}); err != nil {
145+
return nil, err
146+
}
147+
fmt.Println("Ranks:", ranks)
148+
for _, v := range ranks {
149+
var tmUUID string
150+
tmUUID, err = bolt.GetValue([]string{"jam", "rankings"}, v)
151+
if err != nil {
152+
return nil, err
153+
}
154+
gj.Rankings = append(gj.Rankings, tmUUID)
155+
}
129156

157+
// We could pull votes too... But I'm not right now.
130158
return gj, nil
131159
}
132160

161+
func (a *ArchivedGamejam) LoadTeam(openbolt *boltease.DB, uuid string) (*Team, error) {
162+
tm := NewTeam(uuid)
163+
var err error
164+
if tm.Name, err = openbolt.GetValue(tm.mPath, "name"); err != nil {
165+
return nil, errors.New("Error loading team: " + err.Error())
166+
}
167+
168+
// Load the Team Members
169+
var memberUuids []string
170+
mbrsPath := append(tm.mPath, "members")
171+
if memberUuids, err = openbolt.GetBucketList(mbrsPath); err == nil {
172+
for _, v := range memberUuids {
173+
mbr, err := NewTeamMember(uuid, v)
174+
if err != nil {
175+
return nil, err
176+
}
177+
if mbr.Name, err = openbolt.GetValue(mbr.mPath, "name"); err != nil {
178+
return nil, errors.New("Error loading team member: " + err.Error())
179+
}
180+
tm.Members = append(tm.Members, *mbr)
181+
}
182+
}
183+
184+
// Load the Team's Game
185+
tm.Game, err = NewGame(uuid)
186+
if err != nil {
187+
return nil, err
188+
}
189+
if tm.Game.Name, err = openbolt.GetValue(tm.Game.mPath, "name"); err != nil {
190+
tm.Game.Name = ""
191+
}
192+
if tm.Game.Link, err = openbolt.GetValue(tm.Game.mPath, "link"); err != nil {
193+
tm.Game.Link = ""
194+
}
195+
return tm, nil
196+
}
197+
133198
func (a *ArchivedGamejam) Save() error {
134199
bolt, err := boltease.Create(DataDir+"/gamejam_"+a.UUID+".db", 0600, nil)
135200
defer bolt.CloseDB()

templates/admin-viewarchived.html

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,41 @@
22
<div>Couldn't find the requested archive.</div>
33
{{ else }}
44
<div class="space">
5-
<h2>{{ .TemplateData.Name }} ({{.TemplateData.UUID}})</h2>
5+
<h2 style="margin-bottom:0px;">{{ .TemplateData.Name }}</h2>
6+
<span style="margin-top:0px;">({{.TemplateData.UUID}})</span>
67
</div>
7-
<div class="space">
8-
<h3>Votes: {{ len .TemplateData.Votes }}</h3>
8+
9+
<div class="results-container">
10+
<h2>Final Results</h2>
11+
{{ range $i, $v := .TemplateData.Rankings }}
12+
{{ $i }}: {{ $v }}<br />
13+
{{ end }}
914
</div>
10-
<h3>Teams</h3>
11-
<table id="archive-teams" class="sortable pure-table pure-table-bordered center">
15+
16+
<h2>All Teams</h2>
17+
<table id="teams-table" class="sortable pure-table pure-table-bordered center">
1218
<thead>
1319
<tr>
1420
<th>Name</th>
15-
<th></th>
21+
<th class="only-large">Members</th>
22+
<th class="only-large">Game</th>
1623
</tr>
1724
</thead>
1825
<tbody>
19-
{{ range $i, $v := .TemplateData.Jams }}
26+
{{ range $i, $v := .TemplateData.Teams }}
2027
<tr>
21-
<td>{{ $v.Name }}</td>
22-
<td class="only-large"><a href="/admin/archive/{{ $v.UUID }}">{{ $v.UUID }}</a></td>
28+
<td>{{ $v.Name }}<p class="only-small">{{ $v.Game.Name }}</p></td>
29+
<td class="only-large">{{ len $v.Members }}</td>
30+
<td class="only-large">
31+
{{ if $v.Game.Link }}
32+
<a href="{{$v.Game.Link}}">
33+
{{ end }}
34+
{{ $v.Game.Name }}
35+
{{ if $v.Game.Link }}
36+
</a>
37+
{{ end }}
38+
</td>
2339
</tr>
24-
{{ end }}
25-
</tbody>
40+
{{ end }}
2641
</table>
2742
{{ end }}

0 commit comments

Comments
 (0)