Add image request calls
This commit is contained in:
parent
e138d56c5e
commit
1c08032627
@ -1,8 +1,10 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
|
|
||||||
@ -52,11 +54,21 @@ func handleAdminGames(w http.ResponseWriter, req *http.Request, page *pageData)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func saveScreenshots(teamId string, req *http.Request) error {
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
data, err := ioutil.ReadAll(file)
|
fmt.Println("File Received: " + hdr.Filename)
|
||||||
str := base64.StdEncoding.EncodeToString(data)
|
extIdx := strings.LastIndex(hdr.Filename, ".")
|
||||||
return dbSaveTeamGameScreenshot(teamId, &Screenshot{Image: str})
|
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,
|
||||||
|
Filetype: fltp,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
257
assets.go
257
assets.go
@ -202,8 +202,8 @@ Y8Pj6dAeZ3gBzLZbhMnSW8r0f78+9y+zlDVuQ3ZNXD8zD+/mGzZjDfK53gEAAP//D/6XxHkAAAA=
|
|||||||
|
|
||||||
"/assets/css/gjvote.css": {
|
"/assets/css/gjvote.css": {
|
||||||
local: "assets/css/gjvote.css",
|
local: "assets/css/gjvote.css",
|
||||||
size: 4044,
|
size: 4090,
|
||||||
modtime: 1499645867,
|
modtime: 1499955435,
|
||||||
compressed: `
|
compressed: `
|
||||||
H4sIAAAAAAAA/6xX7WrcOhP+n6sQLIUWXhk7zTZZB8oLaXIDvQLZ0tpDZMlI8u4mh9z7QR/2WracHg4H
|
H4sIAAAAAAAA/6xX7WrcOhP+n6sQLIUWXhk7zTZZB8oLaXIDvQLZ0tpDZMlI8u4mh9z7QR/2WracHg4H
|
||||||
8iOWZkbPzDzzsa3pOPrrBqEOBG4ZNK0pUZHnXx5vPm5uKknf3G0tuVQl2t3f3z9uCRMnadjFYMpqqYgB
|
8iOWZkbPzDzzsa3pOPrrBqEOBG4ZNK0pUZHnXx5vPm5uKknf3G0tuVQl2t3f3z9uCRMnadjFYMpqqYgB
|
||||||
@ -222,9 +222,9 @@ CTMNrbiBeD6kRD6SD3RAaZjbi2EYdz5PXFxEj/nDdThSD3GydsTqf+5HSuLfIIoglRS0TS/dylGY9uPn
|
|||||||
4XAInVBSwt1I5cTvTifQUAEH81aiFihlYrsDhwVs1oDD/xtjf/xOl8g7BkHZxYnl6d6mmop8zf+Hwl+2
|
4XAInVBSwt1I5cTvTifQUAEH81aiFihlYrsDhwVs1oDD/xtjf/xOl8g7BkHZxYnl6d6mmop8zf+Hwl+2
|
||||||
/5Zw4yeFU7waRWEOnTfUWzJajr/JrWlEFhNrnJ6rrXejYCmcdqyroGmYYPR3rRgTv9tQl+NK1UsYI7MF
|
/5Zw4yeFU7waRWEOnTfUWzJajr/JrWlEFhNrnJ6rrXejYCmcdqyroGmYYPR3rRgTv9tQl+NK1UsYI7MF
|
||||||
MQyk48C5dkaWA+ZLIhl/Xh7itCZzNW9aUyTHBBZ5Xjhw/+8YBYK+2uU/oLjLWffNwbwuievdYe3EHPcR
|
MQyk48C5dkaWA+ZLIhl/Xh7itCZzNW9aUyTHBBZ5Xjhw/+8YBYK+2uU/oLjLWffNwbwuievdYe3EHPcR
|
||||||
Lsytyh83k53V2pRYI1bi07RdKIAAA4Q/RtgCEGdktfykXEgAXsTWEskPu3Dgjc9+6Sx6w2TdCRI7jLMj
|
Lsytyh83k53V2pRYI1bi07RdKIAAA4Q/RtgCEGdktfykXEgAXsTWEskPu3Dgjc9+6Sx6w2TdCbrcc6Lb
|
||||||
J7oNwrMBeXuXlsyuvfwP3Tzq56EkVtb0UNdM6217t7cHcjx8ai/65bjt8ZVQgexEUPS1I5fAre97u5B/
|
IDobj7d3n6KYZzvt4WQ7u/b+P3T/qP+HElrY0kNdM623rd3eHsjx8Km16Hfmdnyu9AulQQRFXztyCUz8
|
||||||
C5vTyfdHa1pJji2qHnFSMZ6NZ+4rPLpeDv7Jkz/u7IP+cMbxh/8ext8BAAD//w7sG7XMDwAA
|
vrfr+7ewZ518N7WmleTYouoRJxXj2XjmvsKj61Xinzz5484+6A9nFfHw38P4OwAA///cV+Jj+g8AAA==
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -310,35 +310,36 @@ GwM5xLYdRhVY/PPdX2X8mMmnqO5/AdOTL+cjjP0hAAAAAElFTkSuQmCCAQAA//+FC1PpvxAAAA==
|
|||||||
|
|
||||||
"/assets/js/admin.js": {
|
"/assets/js/admin.js": {
|
||||||
local: "assets/js/admin.js",
|
local: "assets/js/admin.js",
|
||||||
size: 34,
|
size: 0,
|
||||||
modtime: 1494731526,
|
modtime: 1499949720,
|
||||||
compressed: `
|
compressed: `
|
||||||
H4sIAAAAAAAA/0rOzyvOz0nVy8lP11DydA5RcE/MTfVKzFVwTMnNzFPStOYCBAAA//8imS6KIgAAAA==
|
H4sIAAAAAAAA/wEAAP//AAAAAAAAAAA=
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
|
||||||
"/assets/js/gjvote.js": {
|
"/assets/js/gjvote.js": {
|
||||||
local: "assets/js/gjvote.js",
|
local: "assets/js/gjvote.js",
|
||||||
size: 3469,
|
size: 3561,
|
||||||
modtime: 1499644439,
|
modtime: 1499955342,
|
||||||
compressed: `
|
compressed: `
|
||||||
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
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -11973,42 +11974,42 @@ AzZ13XlyoWq0W413wp1qSZRt1WjlGq3oSzub9lZ2CyYO03iFZSGo1fye5Rcp6t8AAAD//+fF4HvJAgAA
|
|||||||
|
|
||||||
"/templates/admin-editteam.html": {
|
"/templates/admin-editteam.html": {
|
||||||
local: "templates/admin-editteam.html",
|
local: "templates/admin-editteam.html",
|
||||||
size: 7789,
|
size: 7805,
|
||||||
modtime: 1498145831,
|
modtime: 1499955087,
|
||||||
compressed: `
|
compressed: `
|
||||||
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
|
||||||
r++/r77EPqtp0g7v/wcAAP//RoELQm0eAAA=
|
Wu/n1kp83c9q/Nf331dfYp/VNGmH9/8CAAD//xVMliN9HgAA
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -12074,16 +12075,10 @@ LVzkkM5QrSQnvObEI3VzRIrCexi06R1XCF2XMSl2kKgd2SzC+7678Ve/y9AqPGIZqnb7l2i/5uTITbWG
|
|||||||
|
|
||||||
"/templates/admin-menu.html": {
|
"/templates/admin-menu.html": {
|
||||||
local: "templates/admin-menu.html",
|
local: "templates/admin-menu.html",
|
||||||
size: 1124,
|
size: 0,
|
||||||
modtime: 1498691362,
|
modtime: 1499949610,
|
||||||
compressed: `
|
compressed: `
|
||||||
H4sIAAAAAAAA/9yUwW6jMBCG7/sUI2+OS3xfQaTs9tBI6alP4OChGcWMK2OQKsvvXmEggSZVox57ip35
|
H4sIAAAAAAAA/wEAAP//AAAAAAAAAAA=
|
||||||
5+f/hhG5pg5IF6JGbgWURjVNIUKgCtaPpHGra+In5DbGI2mNHAKyjlFsfgGk5rHltXWYJZO+ApArODqs
|
|
||||||
CvF74dxfskPrveVRCJDTVK0UVCo7KNeITS5pdJJqPMwel3xKy14Ro7tYteYqUGao8WcFQAjgFL8grE5/
|
|
||||||
YNXB3wLWPSHEeNbkhq59yGM985kxhgCrbr23pfJkGWIUt1LwSWwWrEPbrhxaEvH4314d0ECMZ/ZhEIYW
|
|
||||||
GMj6EjqXrZmqIUD/Av8bQva7Ztv645xuKLP1F8kzug7dYgQTnFT9DsgyKRsZwtSkY5QOa9vhfbiVyk74
|
|
||||||
NnI+YEo1WC0wP4L1d9PgjPSuZErrb8S6Hepq1p+tGQz7bb239Rcr9y+JftTi5VJTlz4Mw2H8eQ8AAP//
|
|
||||||
T8Bo3mQEAAA=
|
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -12145,13 +12140,17 @@ XvV/PgEAAP///4iBjuQAAAA=
|
|||||||
|
|
||||||
"/templates/header.html": {
|
"/templates/header.html": {
|
||||||
local: "templates/header.html",
|
local: "templates/header.html",
|
||||||
size: 244,
|
size: 1364,
|
||||||
modtime: 1498849944,
|
modtime: 1499955303,
|
||||||
compressed: `
|
compressed: `
|
||||||
H4sIAAAAAAAA/0yMPW7EIBBGe04xoo+R3GZMYylSilTJBQiMFySWXQF2g+buKyzb2vL7eQ+LzeFZtdhM
|
H4sIAAAAAAAA/9xUwW6cMBC971eM3BwLSDm2BilNVTVSckp/wIuHMFpjItsgVZb/vTJ4WdNN1ajH3hjm
|
||||||
BhsDpfrtYALZ2jAfkVl+ClTnE00JjsBGU8okl2iKB0upUobWhq+e574xSy3g6n6oFHMjZoFqN2iBLmyn
|
+fm94THctoZeXXOYhYFWEWr3IKEG5n15n8oQ2OcDr85ILmmGVglra9YpYXtoUTs04H35Ldb3sRcCaw6w
|
||||||
xz5SpVQPBMICw+/6/xdqJGAWAO9nT8ZR/rhTWncAAP2oW7sQZlR+7BMqF7ZDSsl11ysAAP//dznCgvQA
|
vXtCa8ULhnDglaQ5sZCs2YB6Ymc+76mD8jtJvJMD6SfUUwg9SYnae9QyseYSXieDxUISOwBcQG+wq9mH
|
||||||
AAA=
|
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": {
|
"/templates/public-voting.html": {
|
||||||
local: "templates/public-voting.html",
|
local: "templates/public-voting.html",
|
||||||
size: 11836,
|
size: 11859,
|
||||||
modtime: 1499649549,
|
modtime: 1499956689,
|
||||||
compressed: `
|
compressed: `
|
||||||
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
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -263,16 +263,19 @@ div.fullscreen {
|
|||||||
margin-left: 150px;
|
margin-left: 150px;
|
||||||
}
|
}
|
||||||
|
|
||||||
aside.flash {
|
div.flash {
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
|
position: fixed;
|
||||||
|
top: 0px;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
aside.flash.error {
|
div.flash.error {
|
||||||
background-color: #DD0000;
|
background-color: #DD0000;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
aside.flash.success {
|
div.flash.success {
|
||||||
background-color: #229af9;
|
background-color: #229af9;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
}
|
}
|
||||||
|
@ -1 +0,0 @@
|
|||||||
console.log("ICT GameJam Admin");
|
|
@ -73,7 +73,10 @@ function hideModal() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setFlashMessage(msg, cls) {
|
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;
|
flash.innerText = msg;
|
||||||
for(var i = 0; i < cls.length; i++) {
|
for(var i = 0; i < cls.length; i++) {
|
||||||
flash.classList.add(cls[i]);
|
flash.classList.add(cls[i]);
|
||||||
@ -84,14 +87,14 @@ function setFlashMessage(msg, cls) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleFlashMessage() {
|
function handleFlashMessage() {
|
||||||
var flash = document.querySelector('aside.flash');
|
var flash = document.querySelector('div.flash');
|
||||||
if(flash.classList.contains('fading')) {
|
if(flash.classList.contains('fading')) {
|
||||||
setTimeout(fadeOutFlashMessage, 1000);
|
setTimeout(fadeOutFlashMessage, 1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function fadeOutFlashMessage() {
|
function fadeOutFlashMessage() {
|
||||||
var flash = document.querySelector('aside');
|
var flash = document.querySelector('div.flash');
|
||||||
var opac = flash.style.opacity;
|
var opac = flash.style.opacity;
|
||||||
if(opac == "") { opac = 1; }
|
if(opac == "") { opac = 1; }
|
||||||
if(opac > 0) {
|
if(opac > 0) {
|
||||||
|
3
main.go
3
main.go
@ -104,6 +104,8 @@ func main() {
|
|||||||
pub := r.PathPrefix("/").Subrouter()
|
pub := r.PathPrefix("/").Subrouter()
|
||||||
pub.HandleFunc("/", handleMain)
|
pub.HandleFunc("/", handleMain)
|
||||||
pub.HandleFunc("/vote", handlePublicSaveVote)
|
pub.HandleFunc("/vote", handlePublicSaveVote)
|
||||||
|
pub.HandleFunc("/image/{teamid}/{imageid}", handleImageRequest)
|
||||||
|
pub.HandleFunc("/thumbnail/{teamid}/{imageid}", handleThumbnailRequest)
|
||||||
|
|
||||||
// API Subrouter
|
// API Subrouter
|
||||||
//api := r.PathPrefix("/api").Subtrouter()
|
//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 {
|
func (p *pageData) show(tmplName string, w http.ResponseWriter) error {
|
||||||
for _, tmpl := range []string{
|
for _, tmpl := range []string{
|
||||||
"htmlheader.html",
|
"htmlheader.html",
|
||||||
"admin-menu.html",
|
|
||||||
"header.html",
|
"header.html",
|
||||||
tmplName,
|
tmplName,
|
||||||
"footer.html",
|
"footer.html",
|
||||||
|
@ -14,9 +14,11 @@ type Game struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Screenshot struct {
|
type Screenshot struct {
|
||||||
|
UUID string
|
||||||
Description string
|
Description string
|
||||||
Image string
|
Image string
|
||||||
UUID string
|
Thumbnail string
|
||||||
|
Filetype string
|
||||||
}
|
}
|
||||||
|
|
||||||
func dbUpdateTeamGame(teamId, name, desc string) error {
|
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 {
|
if ret.Image, err = db.GetValue(ssPath, "image"); err != nil {
|
||||||
return 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
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,6 +143,12 @@ func dbSaveTeamGameScreenshot(teamId string, ss *Screenshot) error {
|
|||||||
if err := db.SetValue(ssPath, "image", ss.Image); err != nil {
|
if err := db.SetValue(ssPath, "image", ss.Image); err != nil {
|
||||||
return err
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/base64"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/gorilla/mux"
|
||||||
)
|
)
|
||||||
|
|
||||||
func initPublicPage(w http.ResponseWriter, req *http.Request) *pageData {
|
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")
|
page.session.setFlashMessage("Vote Saved!", "success large fading")
|
||||||
redirect("/", w, req)
|
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)
|
||||||
|
}
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
<a style="margin-top:40px;" class="center-all pure-button pure-button-primary" href="javascript:toggleUploadSSForm();">Upload Screenshot</a>
|
<a style="margin-top:40px;" class="center-all pure-button pure-button-primary" href="javascript:toggleUploadSSForm();">Upload Screenshot</a>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ range $i, $v := .TemplateData.Game.Screenshots }}
|
{{ range $i, $v := .TemplateData.Game.Screenshots }}
|
||||||
<img data-teamid="{{ $uuid }}" data-ssid="{{ $v.UUID }}" class="thumbnail" alt="{{ $v.Description }}" src="data:image/png;base64,{{ $v.Image }}" />
|
<img data-teamid="{{ $uuid }}" data-ssid="{{ $v.UUID }}" class="thumbnail" alt="{{ $v.Description }}" src="data:image/{{$v.Filetype}};base64,{{ $v.Thumbnail }}" />
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
<div id="menu" class="{{if .HideAdminMenu}}hidden{{end}}">
|
|
||||||
<div class="pure-menu">
|
|
||||||
<a href="#menu" class="menu-button">
|
|
||||||
<i class="fa fa-bars"></i>
|
|
||||||
</a>
|
|
||||||
<div class="menu-container">
|
|
||||||
<ul class="pure-menu-list">
|
|
||||||
{{ range $k, $v := .Menu }}
|
|
||||||
<li class="pure-menu-item">
|
|
||||||
<a href="{{ $v.Location }}" class="pure-menu-link"><i class="fa {{ $v.Icon }}"></i> {{ $v.Label }}</a>
|
|
||||||
</li>
|
|
||||||
{{ end }}
|
|
||||||
</ul>
|
|
||||||
{{ if .ClientIsAuth }}
|
|
||||||
{{ if not .ClientIsServer }}
|
|
||||||
<a href="/admin/clients/{{.ClientId}}/remove" class="pure-menu-link"><i class="fa fa-key"></i> DeAuth Client</a>
|
|
||||||
{{ end }}
|
|
||||||
{{ else }}
|
|
||||||
<a href="/admin/clients/{{.ClientId}}/add" class="pure-menu-link"><i class="fa fa-key"></i> Auth Client</a>
|
|
||||||
{{ end }}
|
|
||||||
<ul class="pure-menu-list menu-bottom">
|
|
||||||
{{ range $k, $v := .BottomMenu }}
|
|
||||||
<li class="pure-menu-item">
|
|
||||||
<a href="{{ $v.Location }}" class="pure-menu-link"><i class="fa {{ $v.Icon }}"></i> {{ $v.Label }}</a>
|
|
||||||
</li>
|
|
||||||
{{ end }}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
@ -1,9 +1,39 @@
|
|||||||
<script>
|
<script>
|
||||||
var clientId = "{{.ClientId}}";
|
var clientId = "{{.ClientId}}";
|
||||||
</script>
|
</script>
|
||||||
<aside class="flash center {{.FlashClass}}">
|
<div class="flash center {{.FlashClass}}">
|
||||||
{{.FlashMessage}}
|
{{.FlashMessage}}
|
||||||
</aside>
|
</div>
|
||||||
|
<div id="menu" class="{{if .HideAdminMenu}}hidden{{end}}">
|
||||||
|
<div class="pure-menu">
|
||||||
|
<a href="#menu" class="menu-button">
|
||||||
|
<i class="fa fa-bars"></i>
|
||||||
|
</a>
|
||||||
|
<div class="menu-container">
|
||||||
|
<ul class="pure-menu-list">
|
||||||
|
{{ range $k, $v := .Menu }}
|
||||||
|
<li class="pure-menu-item">
|
||||||
|
<a href="{{ $v.Location }}" class="pure-menu-link"><i class="fa {{ $v.Icon }}"></i> {{ $v.Label }}</a>
|
||||||
|
</li>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
{{ if .ClientIsAuth }}
|
||||||
|
{{ if not .ClientIsServer }}
|
||||||
|
<a href="/admin/clients/{{.ClientId}}/remove" class="pure-menu-link"><i class="fa fa-key"></i> DeAuth Client</a>
|
||||||
|
{{ end }}
|
||||||
|
{{ else }}
|
||||||
|
<a href="/admin/clients/{{.ClientId}}/add" class="pure-menu-link"><i class="fa fa-key"></i> Auth Client</a>
|
||||||
|
{{ end }}
|
||||||
|
<ul class="pure-menu-list menu-bottom">
|
||||||
|
{{ range $k, $v := .BottomMenu }}
|
||||||
|
<li class="pure-menu-item">
|
||||||
|
<a href="{{ $v.Location }}" class="pure-menu-link"><i class="fa {{ $v.Icon }}"></i> {{ $v.Label }}</a>
|
||||||
|
</li>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
{{ if .SubTitle }}
|
{{ if .SubTitle }}
|
||||||
<div class="header-menu">
|
<div class="header-menu">
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
<div class="center-all horizontal-scroll thumbnail-container" id="thumbnail-container">
|
<div class="center-all horizontal-scroll thumbnail-container" id="thumbnail-container">
|
||||||
{{ range $imgi, $imgv := $v.Game.Screenshots }}
|
{{ range $imgi, $imgv := $v.Game.Screenshots }}
|
||||||
<a href="javascript:embiggenScreenshot('{{$imgv.UUID}}');">
|
<a href="javascript:embiggenScreenshot('{{$imgv.UUID}}');">
|
||||||
<img id="{{ $imgv.UUID }}" data-teamid="{{ $v.UUID }}" data-ssid="{{ $imgv.UUID }}" class="thumbnail" alt="{{ $imgv.Description }}" src="data:image/png;base64,{{ $imgv.Image }}" />
|
<img id="{{ $imgv.UUID }}" data-teamid="{{ $v.UUID }}" data-ssid="{{ $imgv.UUID }}" class="thumbnail" alt="{{ $imgv.Description }}" src="data:image/{{$imgv.Filetype}};base64,{{ $imgv.Thumbnail }}" />
|
||||||
</a>
|
</a>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
@ -72,9 +72,13 @@
|
|||||||
<div id="embiggenedScreenShot" class="hidden fullscreen" onclick="javascript:document.getElementById('embiggenedScreenShot').classList.add('hidden');"></div>
|
<div id="embiggenedScreenShot" class="hidden fullscreen" onclick="javascript:document.getElementById('embiggenedScreenShot').classList.add('hidden');"></div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<script>
|
<script>
|
||||||
var teamNames = { };
|
var teams = { };
|
||||||
{{ range $i, $v := .TemplateData.Teams }}
|
{{ range $i, $v := .TemplateData.Teams }}
|
||||||
teamNames[{{$v.UUID}}] = { "team-name": "{{$v.Name}}", "game-name": "{{$v.Game.Name}}" };
|
teams[{{$v.UUID}}] = {
|
||||||
|
"team-name": "{{$v.Name}}",
|
||||||
|
"game-name": "{{$v.Game.Name}}",
|
||||||
|
"screenshots": [ {{ range $ssi, $ssv := $v.Game.Screenshots }} {{ $ssv.UUID }}, {{ end }} ]
|
||||||
|
};
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
function showScreenshots(tmuuid) {
|
function showScreenshots(tmuuid) {
|
||||||
@ -82,7 +86,7 @@ function showScreenshots(tmuuid) {
|
|||||||
screenshots.style.display='';
|
screenshots.style.display='';
|
||||||
showModal({
|
showModal({
|
||||||
title: 'Screenshots',
|
title: 'Screenshots',
|
||||||
subtitle: teamNames[tmuuid].game-name,
|
subtitle: teams[tmuuid].game-name,
|
||||||
bodyNode: screenshots,
|
bodyNode: screenshots,
|
||||||
buttons: [{
|
buttons: [{
|
||||||
title: 'Done',
|
title: 'Done',
|
||||||
|
Loading…
Reference in New Issue
Block a user