diff --git a/admin_games.go b/admin_games.go index 0c5dda4..3e47889 100644 --- a/admin_games.go +++ b/admin_games.go @@ -1,8 +1,10 @@ package main import ( + "fmt" "io/ioutil" "net/http" + "strings" "encoding/base64" @@ -52,11 +54,21 @@ func handleAdminGames(w http.ResponseWriter, req *http.Request, page *pageData) } func saveScreenshots(teamId string, req *http.Request) error { - file, _, err := req.FormFile("newssfile") + var err error + file, hdr, err := req.FormFile("newssfile") if err != nil { return err } - data, err := ioutil.ReadAll(file) + fmt.Println("File Received: " + hdr.Filename) + extIdx := strings.LastIndex(hdr.Filename, ".") + fltp := "png" + if len(hdr.Filename) > extIdx { + fltp = hdr.Filename[extIdx+1:] + } + data, _ := ioutil.ReadAll(file) str := base64.StdEncoding.EncodeToString(data) - return dbSaveTeamGameScreenshot(teamId, &Screenshot{Image: str}) + return dbSaveTeamGameScreenshot(teamId, &Screenshot{ + Image: str, + Filetype: fltp, + }) } diff --git a/assets.go b/assets.go index fa8ea1e..d1c8660 100644 --- a/assets.go +++ b/assets.go @@ -202,8 +202,8 @@ Y8Pj6dAeZ3gBzLZbhMnSW8r0f78+9y+zlDVuQ3ZNXD8zD+/mGzZjDfK53gEAAP//D/6XxHkAAAA= "/assets/css/gjvote.css": { local: "assets/css/gjvote.css", - size: 4044, - modtime: 1499645867, + size: 4090, + modtime: 1499955435, compressed: ` H4sIAAAAAAAA/6xX7WrcOhP+n6sQLIUWXhk7zTZZB8oLaXIDvQLZ0tpDZMlI8u4mh9z7QR/2WracHg4H 8iOWZkbPzDzzsa3pOPrrBqEOBG4ZNK0pUZHnXx5vPm5uKknf3G0tuVQl2t3f3z9uCRMnadjFYMpqqYgB @@ -222,9 +222,9 @@ CTMNrbiBeD6kRD6SD3RAaZjbi2EYdz5PXFxEj/nDdThSD3GydsTqf+5HSuLfIIoglRS0TS/dylGY9uPn 4XAInVBSwt1I5cTvTifQUAEH81aiFihlYrsDhwVs1oDD/xtjf/xOl8g7BkHZxYnl6d6mmop8zf+Hwl+2 /5Zw4yeFU7waRWEOnTfUWzJajr/JrWlEFhNrnJ6rrXejYCmcdqyroGmYYPR3rRgTv9tQl+NK1UsYI7MF MQyk48C5dkaWA+ZLIhl/Xh7itCZzNW9aUyTHBBZ5Xjhw/+8YBYK+2uU/oLjLWffNwbwuievdYe3EHPcR -Lsytyh83k53V2pRYI1bi07RdKIAAA4Q/RtgCEGdktfykXEgAXsTWEskPu3Dgjc9+6Sx6w2TdCRI7jLMj -J7oNwrMBeXuXlsyuvfwP3Tzq56EkVtb0UNdM6217t7cHcjx8ai/65bjt8ZVQgexEUPS1I5fAre97u5B/ -C5vTyfdHa1pJji2qHnFSMZ6NZ+4rPLpeDv7Jkz/u7IP+cMbxh/8ext8BAAD//w7sG7XMDwAA +Lsytyh83k53V2pRYI1bi07RdKIAAA4Q/RtgCEGdktfykXEgAXsTWEskPu3Dgjc9+6Sx6w2TdCbrcc6Lb +IDobj7d3n6KYZzvt4WQ7u/b+P3T/qP+HElrY0kNdM623rd3eHsjx8Km16Hfmdnyu9AulQQRFXztyCUz8 +vrfr+7ewZ518N7WmleTYouoRJxXj2XjmvsKj61Xinzz5484+6A9nFfHw38P4OwAA///cV+Jj+g8AAA== `, }, @@ -310,35 +310,36 @@ GwM5xLYdRhVY/PPdX2X8mMmnqO5/AdOTL+cjjP0hAAAAAElFTkSuQmCCAQAA//+FC1PpvxAAAA== "/assets/js/admin.js": { local: "assets/js/admin.js", - size: 34, - modtime: 1494731526, + size: 0, + modtime: 1499949720, compressed: ` -H4sIAAAAAAAA/0rOzyvOz0nVy8lP11DydA5RcE/MTfVKzFVwTMnNzFPStOYCBAAA//8imS6KIgAAAA== +H4sIAAAAAAAA/wEAAP//AAAAAAAAAAA= `, }, "/assets/js/gjvote.js": { local: "assets/js/gjvote.js", - size: 3469, - modtime: 1499644439, + size: 3561, + modtime: 1499955342, compressed: ` -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 `, }, @@ -11973,42 +11974,42 @@ AzZ13XlyoWq0W413wp1qSZRt1WjlGq3oSzub9lZ2CyYO03iFZSGo1fye5Rcp6t8AAAD//+fF4HvJAgAA "/templates/admin-editteam.html": { local: "templates/admin-editteam.html", - size: 7789, - modtime: 1498145831, + size: 7805, + modtime: 1499955087, compressed: ` -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 -r++/r77EPqtp0g7v/wcAAP//RoELQm0eAAA= +Puoi0CpbRVbXkpUkx2S/f7Nb/Mw42uZ+ONxuiMb33934lx9ble7VZD0MGAXtRzG1NkB1i4fXJCfEqJsr +Q97hy3V8oB+NiHol9GcAZCrgQVYGQy388RWMY5JvJD30/GHc49swDz/r+qM/SEt/7LdD/yqc+SeYdztM +f8FygyrgxKkhG479PgIVoZSJHApGj4MpNQUSGmTAqP7EKNZ+eJpiuP7ASfYZ7u+m9h6fmDGoprZ+Kgnj +kxuUman1f2MpdwMP0uTop90JYkjNRtLno+jF1tVkr4fgYRbo2veMZt6niaHTAi4p9/SsTJOcszIuSyck +ht3hRHl0TTRB2oPx2apIWSu4JbAl8wpFxni0ThO2HrWCS745Qnrx2kcdQy7dMZy4/nUaPWPz9VkwSlG0 +9MW/z2jI2IJBkoxUna/1s5x+mCSjiC7aHI2vGH0qP5W8EM+TLXUESMgk1xURq+h9tP5AKRAQ+AQ+C+eU +n1fVJcA3i+EomrxyvPBm/7IDfs2NHPocXuCTtxES+cFig40Bx/UtwFN2ILWRW5nVesgJTpnTtuYt8AYW +u/Vpoz/4XnE34h6n7BjfN0Z2uvUTdh7b/RfawdLxrIGVZnXaRq1R/eAkFpkspy29ZrbONaOoL0/YD5RO +F9wEUXldFaZJMEfSxA3U4P79ei7z7b6bNC61f6xf9jxrx+R0R+R8qTaXDsp0xcnzUkiBt/7zXvFuivx5 +SvFHfmvolHsHBw0BUGQeImXNDauIMu7U5pbWt6k83yQGF6uNNEaWy+/d3ao7Xo/7toszjlGDTP/cgV9r +v+C98Rjo0zcy5taWYv0iKeGWUp844jHER5T0zyiZtiaG6LGc4eXY6b2lwzv01x/TANY+tXZDC5J9XnCm +DQpUM5eqvZAUl1RmdYnCLHI0P3G0jx+f7+ks7n3Ki69vcIfCLOOMs+xzfLhxKra1cNidXcO+QYku5JM/ +x33XJAwzHJcQB9/14ptuV9ebVmB26tPtdSBve8wS4g8K4VnWoGuFf4fHgmnIiBDSwAahFlQKXIRvuePT +S/htHzQzbzj2IAqkASqpmQ1tGVv89bZcCpbQIbbbOtxM6PZBn9DtwDhQTrReQjyiUD0pWz5LiC/ww/jo +2e/N4+H61j1ZnuQeJ5HRCJ8HyMRnnvi6dbKHlnbRepUTg8sjcKyJI3gAFJpaCWc5MKg/Pj+S3GJhFrMy +j5sgfBg27+fQaC9Jvj0/FNJ4bPqonxSpZqZg+vq3t7/3E3N1VHdSCSvz1tKOKMsl78scVsDKfJFxKfBX +SXHW6LUSttT9dwNYwcm8jttIHOiwub74tg6PxL/7VDCOM7u8KIj+sWCcWvf07PqYLber3N3RCXhxTrRx +P4MMNbKkqlBQL+vDb2TGXaAtcZvIYFp22LBVbR1aBlnq9rraPfL9QVOJb85VzrHiYLLkXD1PwMf/e2KC +yqcFlxlxeFjBS0a1L8Ek+ouFg53EGs1Ca0ZvA+WHoHdMxNb2panYJqMa9abOgm8Abfkfc7xwI2XRDKhV +tOEy+xydkCrQmllFf3v7tvrihA69Spn6QBZUiGcvl/A/RcLii7ga8bDuiF83X444PHrbS91x+VzqTkZX +Wu/n1kp83c9q/Nf331dfYp/VNGmH9/8CAAD//xVMliN9HgAA `, }, @@ -12074,16 +12075,10 @@ LVzkkM5QrSQnvObEI3VzRIrCexi06R1XCF2XMSl2kKgd2SzC+7678Ve/y9AqPGIZqnb7l2i/5uTITbWG "/templates/admin-menu.html": { local: "templates/admin-menu.html", - size: 1124, - modtime: 1498691362, + size: 0, + modtime: 1499949610, compressed: ` -H4sIAAAAAAAA/9yUwW6jMBCG7/sUI2+OS3xfQaTs9tBI6alP4OChGcWMK2OQKsvvXmEggSZVox57ip35 -5+f/hhG5pg5IF6JGbgWURjVNIUKgCtaPpHGra+In5DbGI2mNHAKyjlFsfgGk5rHltXWYJZO+ApArODqs -CvF74dxfskPrveVRCJDTVK0UVCo7KNeITS5pdJJqPMwel3xKy14Ro7tYteYqUGao8WcFQAjgFL8grE5/ -YNXB3wLWPSHEeNbkhq59yGM985kxhgCrbr23pfJkGWIUt1LwSWwWrEPbrhxaEvH4314d0ECMZ/ZhEIYW -GMj6EjqXrZmqIUD/Av8bQva7Ztv645xuKLP1F8kzug7dYgQTnFT9DsgyKRsZwtSkY5QOa9vhfbiVyk74 -NnI+YEo1WC0wP4L1d9PgjPSuZErrb8S6Hepq1p+tGQz7bb239Rcr9y+JftTi5VJTlz4Mw2H8eQ8AAP// -T8Bo3mQEAAA= +H4sIAAAAAAAA/wEAAP//AAAAAAAAAAA= `, }, @@ -12145,13 +12140,17 @@ XvV/PgEAAP///4iBjuQAAAA= "/templates/header.html": { local: "templates/header.html", - size: 244, - modtime: 1498849944, + size: 1364, + modtime: 1499955303, compressed: ` -H4sIAAAAAAAA/0yMPW7EIBBGe04xoo+R3GZMYylSilTJBQiMFySWXQF2g+buKyzb2vL7eQ+LzeFZtdhM -BhsDpfrtYALZ2jAfkVl+ClTnE00JjsBGU8okl2iKB0upUobWhq+e574xSy3g6n6oFHMjZoFqN2iBLmyn -xz5SpVQPBMICw+/6/xdqJGAWAO9nT8ZR/rhTWncAAP2oW7sQZlR+7BMqF7ZDSsl11ysAAP//dznCgvQA -AAA= +H4sIAAAAAAAA/9xUwW6cMBC971eM3BwLSDm2BilNVTVSckp/wIuHMFpjItsgVZb/vTJ4WdNN1ajH3hjm ++fm94THctoZeXXOYhYFWEWr3IKEG5n15n8oQ2OcDr85ILmmGVglra9YpYXtoUTs04H35Ldb3sRcCaw6w +vXtCa8ULhnDglaQ5sZCs2YB6Ymc+76mD8jtJvJMD6SfUUwg9SYnae9QyseYSXieDxUISOwBcQG+wq9mH +HXMsiuPk3KgTEIDT5kNAJ4qjMJY1vKLEVIn0kF238LSjdoI0mgvVpK4EFYqs2xBxFmCEfkG4OX2Emxk+ +1VBGhxDChuGKrnnI4ZDxZB69h5u5fBxb4WjUEAJ7S4U+sWbndT320K5HFsfp3aM4ooIQNu/rIBTtbKCW +F9G8mtS56z3ED5iSY+8m1+fu1rYe3QXyjGZGsxvB2VwlYgaqNZW22iWyMjiMM77PbieKE/5MPr/iomql +2tn83VislcXM6buUCSn/Qdbboq5m/aeYwZrv0blx+Evkviyg/yp4aadsD/mOSZfHXxa1S0tpSenzdPxB +TqUPnIN7FBLNbqv0t43325Gos7/NbszV/QoAAP//h0mw81QFAAA= `, }, @@ -12183,63 +12182,63 @@ AAD//1puW/YhAwAA "/templates/public-voting.html": { local: "templates/public-voting.html", - size: 11836, - modtime: 1499649549, + size: 11859, + modtime: 1499956689, compressed: ` -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 `, }, diff --git a/assets/css/gjvote.css b/assets/css/gjvote.css index 313b574..bfbe484 100644 --- a/assets/css/gjvote.css +++ b/assets/css/gjvote.css @@ -263,16 +263,19 @@ div.fullscreen { margin-left: 150px; } - aside.flash { + div.flash { font-size: 24px; + position: fixed; + top: 0px; + width: 100%; } - aside.flash.error { + div.flash.error { background-color: #DD0000; color: #FFFFFF; } - aside.flash.success { + div.flash.success { background-color: #229af9; color: #FFFFFF; } diff --git a/assets/js/admin.js b/assets/js/admin.js index 622fcd2..e69de29 100644 --- a/assets/js/admin.js +++ b/assets/js/admin.js @@ -1 +0,0 @@ -console.log("ICT GameJam Admin"); diff --git a/assets/js/gjvote.js b/assets/js/gjvote.js index 8a527d0..812627a 100644 --- a/assets/js/gjvote.js +++ b/assets/js/gjvote.js @@ -73,7 +73,10 @@ function hideModal() { } function setFlashMessage(msg, cls) { - var flash = document.querySelector('aside.flash'); + if( Object.prototype.toString.call( cls ) !== '[object Array]' ) { + cls = [ cls ]; + } + var flash = document.querySelector('div.flash'); flash.innerText = msg; for(var i = 0; i < cls.length; i++) { flash.classList.add(cls[i]); @@ -84,14 +87,14 @@ function setFlashMessage(msg, cls) { } function handleFlashMessage() { - var flash = document.querySelector('aside.flash'); + var flash = document.querySelector('div.flash'); if(flash.classList.contains('fading')) { setTimeout(fadeOutFlashMessage, 1000); } } function fadeOutFlashMessage() { - var flash = document.querySelector('aside'); + var flash = document.querySelector('div.flash'); var opac = flash.style.opacity; if(opac == "") { opac = 1; } if(opac > 0) { diff --git a/main.go b/main.go index 12ddae7..c5ed9c4 100644 --- a/main.go +++ b/main.go @@ -104,6 +104,8 @@ func main() { pub := r.PathPrefix("/").Subrouter() pub.HandleFunc("/", handleMain) pub.HandleFunc("/vote", handlePublicSaveVote) + pub.HandleFunc("/image/{teamid}/{imageid}", handleImageRequest) + pub.HandleFunc("/thumbnail/{teamid}/{imageid}", handleThumbnailRequest) // API Subrouter //api := r.PathPrefix("/api").Subtrouter() @@ -297,7 +299,6 @@ func InitPageData(w http.ResponseWriter, req *http.Request) *pageData { func (p *pageData) show(tmplName string, w http.ResponseWriter) error { for _, tmpl := range []string{ "htmlheader.html", - "admin-menu.html", "header.html", tmplName, "footer.html", diff --git a/model_games.go b/model_games.go index 4aea97e..c33833d 100644 --- a/model_games.go +++ b/model_games.go @@ -14,9 +14,11 @@ type Game struct { } type Screenshot struct { + UUID string Description string Image string - UUID string + Thumbnail string + Filetype string } func dbUpdateTeamGame(teamId, name, desc string) error { @@ -109,6 +111,15 @@ func dbGetTeamGameScreenshot(teamId, ssId string) *Screenshot { if ret.Image, err = db.GetValue(ssPath, "image"); err != nil { return nil } + if ret.Thumbnail, err = db.GetValue(ssPath, "thumbnail"); err != nil { + return nil + } + if ret.Thumbnail == "" { + ret.Thumbnail = ret.Image + } + if ret.Filetype, err = db.GetValue(ssPath, "filetype"); err != nil { + return nil + } return ret } @@ -132,6 +143,12 @@ func dbSaveTeamGameScreenshot(teamId string, ss *Screenshot) error { if err := db.SetValue(ssPath, "image", ss.Image); err != nil { return err } + if err := db.SetValue(ssPath, "thumbnail", ss.Thumbnail); err != nil { + return err + } + if err := db.SetValue(ssPath, "filetype", ss.Filetype); err != nil { + return err + } return nil } diff --git a/public_endpoints.go b/public_endpoints.go index 1adcccc..0f039cd 100644 --- a/public_endpoints.go +++ b/public_endpoints.go @@ -1,10 +1,13 @@ package main import ( + "encoding/base64" "math/rand" "net/http" "strings" "time" + + "github.com/gorilla/mux" ) func initPublicPage(w http.ResponseWriter, req *http.Request) *pageData { @@ -73,3 +76,35 @@ func handlePublicSaveVote(w http.ResponseWriter, req *http.Request) { page.session.setFlashMessage("Vote Saved!", "success large fading") redirect("/", w, req) } + +func handleThumbnailRequest(w http.ResponseWriter, req *http.Request) { + vars := mux.Vars(req) + ss := dbGetTeamGameScreenshot(vars["teamid"], vars["imageid"]) + if ss == nil { + http.Error(w, "Couldn't find image", 404) + return + } + w.Header().Set("Content-Type", "image/"+ss.Filetype) + dat, err := base64.StdEncoding.DecodeString(ss.Thumbnail) + if err != nil { + http.Error(w, "Couldn't find image", 404) + return + } + w.Write(dat) +} + +func handleImageRequest(w http.ResponseWriter, req *http.Request) { + vars := mux.Vars(req) + ss := dbGetTeamGameScreenshot(vars["teamid"], vars["imageid"]) + if ss == nil { + http.Error(w, "Couldn't find image", 404) + return + } + w.Header().Set("Content-Type", "image/"+ss.Filetype) + dat, err := base64.StdEncoding.DecodeString(ss.Image) + if err != nil { + http.Error(w, "Couldn't find image", 404) + return + } + w.Write(dat) +} diff --git a/templates/admin-editteam.html b/templates/admin-editteam.html index 885b538..8932ec4 100644 --- a/templates/admin-editteam.html +++ b/templates/admin-editteam.html @@ -40,7 +40,7 @@ Upload Screenshot {{ else }} {{ range $i, $v := .TemplateData.Game.Screenshots }} - {{ $v.Description }} + {{ $v.Description }} {{ end }} {{ end }} diff --git a/templates/admin-menu.html b/templates/admin-menu.html index 0c3a25f..e69de29 100644 --- a/templates/admin-menu.html +++ b/templates/admin-menu.html @@ -1,30 +0,0 @@ - diff --git a/templates/header.html b/templates/header.html index 95cc19a..82c71af 100644 --- a/templates/header.html +++ b/templates/header.html @@ -1,9 +1,39 @@ - + +
{{ if .SubTitle }}
diff --git a/templates/public-voting.html b/templates/public-voting.html index b586bc9..1c0f75e 100644 --- a/templates/public-voting.html +++ b/templates/public-voting.html @@ -63,7 +63,7 @@
{{ range $imgi, $imgv := $v.Game.Screenshots }} - {{ $imgv.Description }} + {{ $imgv.Description }} {{ end }}
@@ -72,9 +72,13 @@ {{ end }}