From 2fe197b99d1319a15515822ea6e3eda838eb3761 Mon Sep 17 00:00:00 2001 From: Brian Buller Date: Sun, 9 Jul 2017 19:18:03 -0500 Subject: [PATCH] Several good changes * Add vote validation before submitting * Show 'Saved Vote' after vote saved, fade out message * Increase flash message size * Randomize order of games in voting list (Issue #5) * Embiggen ScreenShots on Click --- assets.go | 176 ++++++++++++++++++----------------- assets/css/gjvote.css | 22 ++++- assets/js/gjvote.js | 41 +++++++- main.go | 1 + public_endpoints.go | 19 +++- templates/public-voting.html | 43 +++++++-- 6 files changed, 204 insertions(+), 98 deletions(-) diff --git a/assets.go b/assets.go index a7ec7bc..dcae812 100644 --- a/assets.go +++ b/assets.go @@ -202,28 +202,28 @@ Y8Pj6dAeZ3gBzLZbhMnSW8r0f78+9y+zlDVuQ3ZNXD8zD+/mGzZjDfK53gEAAP//D/6XxHkAAAA= "/assets/css/gjvote.css": { local: "assets/css/gjvote.css", - size: 3784, - modtime: 1499536516, + size: 3812, + modtime: 1499642341, compressed: ` -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 `, }, @@ -318,22 +318,26 @@ H4sIAAAAAAAA/0rOzyvOz0nVy8lP11DydA5RcE/MTfVKzFVwTMnNzFPStOYCBAAA//8imS6KIgAAAA== "/assets/js/gjvote.js": { local: "assets/js/gjvote.js", - size: 2455, - modtime: 1498145831, + size: 3235, + modtime: 1499642977, compressed: ` -H4sIAAAAAAAA/6RWT0/jOhC/51OMysGJChF6lye1L0Lv8ZB2JUArwW21hzSeNqO6djd20o2g331lO0nT -0rRFywGI5/cnnhl7Mi9lZkhJMGqxEPgvX5H8lkoUYQRvAQBXWblCaeKfJRb1CwrMjCpCdrVCWbIozkSq -9SNpE3uBkOXEOUoWTYNtEAQdX8kl1lxtJCTQmoZYGW+DlYHE/X5/hw1JrjYxVijNNACo0gJIP+gsXaNl -p0KjXad5OFpiPQKS0ClBH2oN4iXWkCQw8qsj63CwPIqs3BZQaBwWuVccLeOvvz3cv0ELbN0/5tGDt0HQ -5VrnavOkeCpCtbYL2pPtPld2GZJd3hdoHgTaf/+rv/KQOcCNqrAQac2c+BmsISOQRTFJicUr/rKZbo1j -F4zu9h4no9EFsrqcnVRu4zvxdqXRp3mHnSletwk8Y2uhB5Z9lV4hD/SfFcfPeaTrNUp+n5PgH5V6LdDF -SmO6YgLMVRG61oUEbqdA8A8cIGOBcmHyKdB43LJ8G8yMnDaPHw2+04+Y9Es5W5HZ0cCS+p2TFZgabLYX -Mu3wvmPsz167n6enPWbz98hrufr2u+AwliSl5DgniTy6Y2wyhJsOe+QFzgcsbGjf4eqohcWdcMgEZcsB -Cxfb8+hus+hte8zMMU66pVoPuqVaX5AzhzvhsVaa3NVz3KYN7zsVtMjNUbsWPw2Crnf8kfzy+vTYP5ID -ZbX4tlcuwTY1P1NKi3SZeE5XVpnpdZohrMsCbzwF2Hgoe2N2PLjbqzfRMs2WsSBtUGIRdsfnTSqOk5mR -1+Am14S5wrPtdQcZao4G0B2wc9eTpx/cUDMjG4FtczU5dKxNLTCuSNOMBJna5sU9CWQW30xbnRVKiFcV -3l7DrR/e3bzKiaOfV382qIZfqPlo+Ow0a7qNXULsD449nrtvfUr/p+r8lrr02+TlJDDcseM5Fdq4grQ3 -cy9Y4EpV2JTrKKf9VvgdAAD//3s8PKeXCQAA +H4sIAAAAAAAA/6xWUW/jNgx+z68gcg+y0dRwDxgGxPMdttsdNqC9Dbi+DXtQLDoWokieJadntPnvg2TZ +cRI7abH1oa3Fj/wokiKZ1zIzXEkwar0W+DPbcvknlSiCEJ5nADtawRZlDSkwldVblCb6p8aq+YYCM6Oq +gLyzchImMwCeB/YjygTV+p5rE2VKGsqlDkjBGUNJwtYuTJsTtFG1+eBUURoSRto0AqMtrdZc3mNuUnL3 +Q1x+J4kzdMJY4Vbt8MBnQXtAofH/II7HSSljJ4yz/Ww266mU3GDD1JOEFLqQB7gzbTBwZyB1v19e4IlL +pp4i3KE0ic8A1591Rku02lRo9LGeb7CZA5fQW4Ih1BJEG2wgTWHens4tw8nx/DxEI0Y+KYZW4/2P/n7O +gw7YsZ9XUR+MvtJ0oZ4eFKMiUKU90INKs8fDUluj+SzQ/vtL8zsLiAPcqh1WgjZtpK9gDTcCSRhxKbF6 +xO820h1x5IThx6PP5Xz+CrO6Xl203MkPxrsTb5/nPXalWHP2KsZpLfSEcmhlkMgT+18Vw7dx0LJEyT4V +XLBzS4MS6GW1MX0yAXJVBa50IYU4AQ4/wQkyEijXpkiA39x0Wm0ZrIxM/Oc5wV/874jrb/Vqy81BDazS +sHKyCqlBf72AaIdvK8b+HJX7dXU60PR/R9xy+R1WwaksTWvJMOcSWfiRkOUULpnmKCrMJyis6Jjh3SiF +xV1gyATPNhMUTnbE0Xez8Hk/RuY0LrJRrSfZqNaviJnDXeAoleau9YzTdOJjpoqvCzNK1+GT2ayvnfZJ +/vb4cD98khNptfiuVl6D9Tm/kkqLdJH4SrfWMtElzRDKusLbVgXIzVT0bsi48HDXlkRLmm0iwbVBiVXQ +P59nqRguV0YuwE2uJXGJJ/tFD5kqDg/oH9i19tSqn3SolZHewN63Jof2E3zHNV9xwU1j4+K+BLpJ7qet +ziolxKMK4gXEYXI0rwrOsJ1X/21QTTvkF4e3TjNfbeQ1isPBcaTn+m0b0l/57vqV+vDb4BVcYHDQjnJe +aeMS0nXmgbBdzHy6RnXOd4WCSibwi6C6eECt6RoHScjt8YXFlGrOMHKofj11X6P7aU4Zl+vDfqrRPPIt +qtoEOWX4R22GbizgfRzHIx6PYN/qcuushauSZnbnc063lWOPuGn6FcICUpjPQ3ju4HeJewCZkloJjIRa +B+SLu53n37Z+Ld2Tp1k4NPYB4rEI9F2+H5kjTrkeRTO4hTi6657zaED8U13A3TCIY9lOZv8GAAD//yHs +yEqjDAAA `, }, @@ -12178,56 +12182,58 @@ AAD//1puW/YhAwAA "/templates/public-voting.html": { local: "templates/public-voting.html", - size: 10440, - modtime: 1499536431, + size: 10658, + modtime: 1499568691, compressed: ` -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 +AA== `, }, diff --git a/assets/css/gjvote.css b/assets/css/gjvote.css index 20e617c..313b574 100644 --- a/assets/css/gjvote.css +++ b/assets/css/gjvote.css @@ -136,6 +136,10 @@ img.thumbnail { margin-bottom: 5px; } +.large { + font-size: 18px; +} + .big-space { margin: 10px; } @@ -216,6 +220,22 @@ table tfoot { text-align: center; } +div#embiggenedScreenShot { + cursor: pointer; + background-color: #FFF; +} + +div.fullscreen { + height: 100%; + width: 100%; + position: absolute; + top: 0px; + left: 0px; + text-align: center; + margin: auto auto; + z-index:1001; +} + @media (min-width: 40em) { #menu { width: 150px; @@ -244,7 +264,7 @@ table tfoot { } aside.flash { - margin-left: 150px; + font-size: 24px; } aside.flash.error { diff --git a/assets/js/gjvote.js b/assets/js/gjvote.js index 759fd66..8a527d0 100644 --- a/assets/js/gjvote.js +++ b/assets/js/gjvote.js @@ -1,5 +1,12 @@ function toggleAdminPanel() { - document.querySelector('#menu').classList.toggle('hidden'); + var menu = document.querySelector('#menu'); + if(menu.classList.contains('hidden')) { + document.querySelector('#layout>.content').style.marginLeft='150px'; + menu.classList.remove('hidden'); + } else { + document.querySelector('#layout>.content').style.marginLeft='0'; + menu.classList.add('hidden'); + } } @@ -64,3 +71,35 @@ function hideModal() { buttonsDiv.removeChild(buttonsDiv.firstChild); } } + +function setFlashMessage(msg, cls) { + var flash = document.querySelector('aside.flash'); + flash.innerText = msg; + for(var i = 0; i < cls.length; i++) { + flash.classList.add(cls[i]); + } + flash.classList.remove('hidden'); + flash.style.opacity=1; + handleFlashMessage(); +} + +function handleFlashMessage() { + var flash = document.querySelector('aside.flash'); + if(flash.classList.contains('fading')) { + setTimeout(fadeOutFlashMessage, 1000); + } +} + +function fadeOutFlashMessage() { + var flash = document.querySelector('aside'); + var opac = flash.style.opacity; + if(opac == "") { opac = 1; } + if(opac > 0) { + setTimeout(function() { + flash.style.opacity = opac - 0.01; + fadeOutFlashMessage(); + }, 10); + } +} + +handleFlashMessage(); diff --git a/main.go b/main.go index 12ddae7..8a4eaca 100644 --- a/main.go +++ b/main.go @@ -261,6 +261,7 @@ func InitPageData(w http.ResponseWriter, req *http.Request) *pageData { if p.FlashClass == "" { p.FlashClass = "hidden" } + fmt.Println("Flash Message: " + p.FlashMessage + " (" + p.FlashClass + ")") // Build the menu if p.LoggedIn { diff --git a/public_endpoints.go b/public_endpoints.go index 43ebc7f..e7d89ae 100644 --- a/public_endpoints.go +++ b/public_endpoints.go @@ -1,6 +1,8 @@ package main import ( + "fmt" + "math/rand" "net/http" "strings" "time" @@ -12,10 +14,10 @@ func initPublicPage(w http.ResponseWriter, req *http.Request) *pageData { } func handleMain(w http.ResponseWriter, req *http.Request) { - page := initPublicPage(w, req) - page.SubTitle = "" switch dbGetPublicSiteMode() { case SiteModeWaiting: + page := initPublicPage(w, req) + page.SubTitle = "" page.show("public-waiting.html", w) case SiteModeVoting: loadVotingPage(w, req) @@ -29,7 +31,17 @@ func loadVotingPage(w http.ResponseWriter, req *http.Request) { Timestamp string } vpd := new(votingPageData) - vpd.Teams = dbGetAllTeams() + tms := dbGetAllTeams() + + // Randomize the team list + rand.Seed(time.Now().Unix()) + for len(tms) > 0 { + i := rand.Intn(len(tms)) + fmt.Println("Chose Team: " + tms[i].Name) + vpd.Teams = append(vpd.Teams, tms[i]) + tms = append(tms[:i], tms[i+1:]...) + } + vpd.Timestamp = time.Now().Format(time.RFC3339) page.TemplateData = vpd page.show("public-voting.html", w) @@ -60,5 +72,6 @@ func handlePublicSaveVote(w http.ResponseWriter, req *http.Request) { if newVote, err := dbGetVote(page.ClientId, timestamp); err == nil { site.Votes = append(site.Votes, *newVote) } + page.session.setFlashMessage("Vote Saved!", "success large fading") redirect("/", w, req) } diff --git a/templates/public-voting.html b/templates/public-voting.html index d59f817..54253b6 100644 --- a/templates/public-voting.html +++ b/templates/public-voting.html @@ -50,7 +50,7 @@
-
+ @@ -62,13 +62,14 @@
{{ range $imgi, $imgv := $v.Game.Screenshots }} - - {{ $imgv.Description }} + + {{ $imgv.Description }} {{ end }}
{{ end }} + {{ end }}