Split team management into tabs

Check for field changes before changing tabs
or uploading screenshots
This commit is contained in:
Brian Buller 2017-07-25 10:49:26 -05:00
parent ce650132c0
commit 487273231a
7 changed files with 407 additions and 152 deletions

View File

@ -41,19 +41,19 @@ func handleAdminGames(w http.ResponseWriter, req *http.Request, page *pageData)
} else { } else {
page.session.setFlashMessage("Team game updated", "success") page.session.setFlashMessage("Team game updated", "success")
} }
redirect("/admin/teams/"+teamId, w, req) redirect("/admin/teams/"+teamId+"#game", w, req)
} }
case "screenshotupload": case "screenshotupload":
if err := saveScreenshots(teamId, req); err != nil { if err := saveScreenshots(teamId, req); err != nil {
page.session.setFlashMessage("Error updating game: "+err.Error(), "error") page.session.setFlashMessage("Error updating game: "+err.Error(), "error")
} }
redirect("/admin/teams/"+teamId, w, req) redirect("/admin/teams/"+teamId+"#game", w, req)
case "screenshotdelete": case "screenshotdelete":
ssid := vars["subid"] ssid := vars["subid"]
if err := dbDeleteTeamGameScreenshot(teamId, ssid); err != nil { if err := dbDeleteTeamGameScreenshot(teamId, ssid); err != nil {
page.session.setFlashMessage("Error deleting screenshot: "+err.Error(), "error") page.session.setFlashMessage("Error deleting screenshot: "+err.Error(), "error")
} }
redirect("/admin/teams/"+teamId, w, req) redirect("/admin/teams/"+teamId+"#game", w, req)
} }
} }
} }

View File

@ -75,7 +75,7 @@ func handleAdminTeams(w http.ResponseWriter, req *http.Request, page *pageData)
page.session.setFlashMessage(mbrName+" added to team!", "success") page.session.setFlashMessage(mbrName+" added to team!", "success")
} }
refreshTeamsInMemory() refreshTeamsInMemory()
redirect("/admin/teams/"+teamId, w, req) redirect("/admin/teams/"+teamId+"#members", w, req)
case "deletemember": case "deletemember":
mbrId := req.FormValue("memberid") mbrId := req.FormValue("memberid")
m, _ := dbGetTeamMember(teamId, mbrId) m, _ := dbGetTeamMember(teamId, mbrId)
@ -85,7 +85,7 @@ func handleAdminTeams(w http.ResponseWriter, req *http.Request, page *pageData)
page.session.setFlashMessage(m.Name+" deleted from team", "success") page.session.setFlashMessage(m.Name+" deleted from team", "success")
} }
refreshTeamsInMemory() refreshTeamsInMemory()
redirect("/admin/teams/"+teamId, w, req) redirect("/admin/teams/"+teamId+"#members", w, req)
default: default:
page.SubTitle = "Edit Team" page.SubTitle = "Edit Team"
t := dbGetTeam(teamId) t := dbGetTeam(teamId)

198
assets.go
View File

@ -200,29 +200,30 @@ SExORVYLEQephirOzE3XK8kozU3KS8zMAatMLi0qzi+yUijIzwRaVQRSBQgAAP//D/6XxHkAAAA=
"/assets/css/gjvote.css": { "/assets/css/gjvote.css": {
local: "assets/css/gjvote.css", local: "assets/css/gjvote.css",
size: 4090, size: 4130,
modtime: 1500473492, modtime: 1500995462,
compressed: ` compressed: `
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
/ztNwIUiEAAA
`, `,
}, },
@ -318,7 +319,7 @@ H4sIAAAJbogA/wEAAP//AAAAAAAAAAA=
"/assets/js/gjvote.js": { "/assets/js/gjvote.js": {
local: "assets/js/gjvote.js", local: "assets/js/gjvote.js",
size: 3561, size: 3561,
modtime: 1500039735, modtime: 1500995424,
compressed: ` compressed: `
H4sIAAAJbogA/6xXX2/jNgx/z6fQcg920NRwBgwDmuUOt9sNG9DeDWjfij4oNpNoVSTPktML2nz3UbL8 H4sIAAAJbogA/6xXX2/jNgx/z6fQcg920NRwBgwDmuUOt9sNG9DeDWjfij4oNpNoVSTPktML2nz3UbL8
N3LSbteH2hZ/5E8iKZJZFSLRTAqi5XrN4WO6ZeIvKoCHE/I8ImRHc7IFUZAFSWVS4KuO/ikg398Ch0TL N3LSbteH2hZ/5E8iKZJZFSLRTAqi5XrN4WO6ZeIvKoCHE/I8ImRHc7IFUZAFSWVS4KuO/ikg398Ch0TL
@ -11952,42 +11953,51 @@ gXNZg01WlzwTO4QO8+DQa0kXLC/+GGcx3uzdZBOZuF7yMjkoIN5n+kVS9TMAAP//58Xge8kCAAA=
"/templates/admin-editteam.html": { "/templates/admin-editteam.html": {
local: "templates/admin-editteam.html", local: "templates/admin-editteam.html",
size: 7798, size: 13520,
modtime: 1500467841, modtime: 1500997714,
compressed: ` compressed: `
H4sIAAAJbogA/9RYW4/buhF+z68ghACy0bWVtufkwWu7J8kmxQJJWnS9T0EeaJGW2KUuEClv3IX/e4ek H4sIAAAJbogA/+xaW4/buBV+z69g1QC20bG9RXfz4LHd3exkgwDJttiZPBSLfaAlWmaHkgyR8sQd+L/3
LqQutnfRBOg+eKXhcIYz882FenpCr8uSEbRYofmGJjnHkt5gief397c36Hh8tSRsj0KOhVh5IU0lLbz1 8CKJlChZM5kkCDZ5yMi8nBu/7/CQ0v09el4UNEKLFZrdkGTPsCBXWODZ+/dvrtDp9GwZ0QMKGeZ8FYQk
K4RsMqc7qYlA3mVFUtPzsqAzTWieZpizKKXEQziULEtXXoBJwtJAUpyIoDnO8RgIvKceSqiMM7Ly/vmP FSQP1s8Qks3yLzzt/rG+IThB73CKY5LAmOUc2nTnphAiSxGNVgGJqJgKGDnVjQHK0pDR8HYV/BcfMA9z
u02lA7TEf11vYAO6oRIzLpYBEOq1HaOcCCprQv+saMuimchxSL2WyWXTBw6zVBYZn0VFVuYOKzBzvKW8 uheLOBOZFHeDN+PJZVCq3hc5MfOmIotjRqZbmnOBrA77ebrPaYLzY6BtuyICU8aXc93bYVyMEzLIuNcw
cUzFqYkeAktXnrIoxQno0Ef9Co/LQDN0JLE0LyVixNqC1K/9vse8BAL4x42SkgrO8hCQQhpnnFBQ3Sh0 8LyBCY0iRmyrgrWcOdAaFaqEJBuS80FWvVNjz9sFHcK1Sq+fVmVbtZybZVYocC0TeFMpYWQrAuPGNssT
7QvAQMsrndeT1qOCgktnecm5KxOjuKA7N4xeK4eDT5THtbcNDLallFlqP8/g8Cz11h9wGlK+DLCjoeKX R7lqqJ6mmNE4JVGAcCholq6COY4Sms6lUD6vAHk6zTk+kAAlROwy0Pzvf13fGB0W6KpQloiTFlDCIk5E
hxwcIMptwqSroGBRfFZDwRJcHLz1fU7Ad0h5aBmYxXFt5sXTsdnK9IZyKqna+vwD0KLIIHOMiBH1TkSW 2WDMt2xFGxpP+R6HJKgHucOUwWGWijxj0zjPir0zFAYzvCGsooYZqRoDBJ6uAulRCutt4vsrPC7nakBD
gQtkeIf8qZ7jAgU6C82OgXzsYfzFmRkBji7PzIHswxWaI43kwFqp0/jvOjfaHH5WLp7PRKXYZKJSNJaJ Ek33hVDhraYg+b/9+4BZAQ0QH5enUioEK0DQFJJdxiICqiuFrn/zirW+n73eo5xASKf7gjFXJka7nGzd
Vh42G6yTn85DJXgkGRud3gtz7wXWcpY+eOvP8HveUM1rGWreTxqqBI8Y+llr/mWGEipClVUiLFiuYDtk ZbTQxyAmMuIq2t1sZZgCDn/GaUjYco4dDWa8OO4hALzYJFS4CnIa785qKPPB+30EsUMyQi4BfdpK2sm1
r6Q/JC4obkzWuyyTzbtjjCVyPp9762FHWFzgj2VQa/oVVdZOyf+Dimty/OUl7zLknELN+i4sKE1FnEnR 2Yj0ijAiiJz6cANInmeQO7WIDvXOiiznLpDhN/DHomWLlyp/NXlZYx3tICGR9GOJKrUMJ6qHjNiAO1bA
gUl/yIFyyFGcFew/IAPzGcQ5A4qMy2Sbwsyh9YMPYRwyrXtgoZYOgWI7lGZyCELWodS4ZYVcyAOHAIAX nls9JatfK6rUlH4QNc8TUyrWxFTpuIOYFi2rCZbl/bSUgju4WekMHknFR3jLaHobrN/C/+cdVWMtR/Xv
I5bOZJYvfnuT/7j2Bg56LggVfP6N99gAdiGzKOL0PucZJnd3n8DPk+m1CpYioPZQFjbADMoFtU8JpAKn Xkel4A5H3yrNn83RiPBQkkxvjQBbn7+CfBA4J7hyWc2yXNa/HWcskbPZLFj7A2GNgngs56Wmz5F0bUp+
EUWv2RV6ve9PkSdNZEmEABt4pvCsnOggWq8IUdP39UTa2N+4HFoWlzWXm5IeEkW48pSsBbgiopA1wPSJ BQlYc/yRGXAwcvpQs74Oc0JSvssEb8CkXfVCOmRol+X0fyADsymscwYtYlckmxRKEKUfYgj1sd7JPR2l
QRsGeB+P11ss6NvfrszmTS1Sb7ValbI9Je3pu+8Ojk28L3WEjT2dWJ7TOzW4esF6L1PPSYefHfyugZb1 dFgoukVpJnwQsoyS9be15FwcGSwARDGmspjbL77/bv+hLvUsQ88tgoGPVUTq2vD9nmU4ur7+BeIsq8i1
zZI1jTQDysg1oe78X2iypYU1wC8l3nLqQhzlmBCWRihmpO2iSxlTTCxfycKt+vHadHp46NDvoNI/oNub bkC1URY2wA3COLGthKYcpzFBz+kFen5oHyt6XaRJjAAbWBWYMogOolUP52X7oTyiVP5XIYcti4lylEvJ
obXNI5Ogc2jpYwLIGFr4F02yfUcTvBWt85yzLuU2I4f15VlUeclJnq61ZG0gXA0hoJIMM2jjb8lJnsoJ APE8XAVS1gJCERNgDQz6hcKuDPA+nS43mJMX31/oyTelSDXV2qqk72lUW9/87eBYr/fQQNjYU8QKnL1T
J3m0N0Y43AuOHjTP3veIHo0TberIdNlINBOMaVAACkLTup2b/YzYE4xVO4KeqNPN7uQwv2Q14w6jHZSx gau1WC9F6iv5P93iNx20vK9PDR11inOyadUrbpVSnS7L00l1tISJcLpysI/2OIpoGksZ9fa6FDuCIyuI
AosYyAFbD90t3IbWIIMMY6ZfY4aCjsKMQx8Gv7711u8IQTBs00dkvHBK+GlRjQNM4nXvvoNXiQuv9JcF Ine3g91alwDw0Gi/hi3gFr258vXd3FEBOn1drxKAjK/jN5Jkh4Ym+JXXUXVsXYpNFh3Xw+llouSwqult
+DlXcQsRqliC/UaHPcF3iBU2OjOfSTMzqyNcymyXhaVAPcwMqxMqrxTwOhob+rDSP0w+3niX6pEmN3t6 tNbYNtUJqIz8A5Tzb6LeMSYIvWNUNDpGuAchVYGePRdGqoTW+OkoOyuJurTRO5cBltnn9Xwa2aWNlVTm
GvqInk29fqEemujW2tFSUYd1lIIWf2iOeZglw5qeM1zOoPtTcX7EBOAPJ1xv/jaky7MQnttaDS+qOVmt LVH9u2Bv0b+k5cAtRlvIbznmO2ie07XvDOLudBUyIj9m2snHt+gozBhs0BDXF8H6pyhCUIWTO6Sj0Ce8
7vkD/c/7YFIdqf6nzqXiWeqmLpqeblK1mi0JEyDqsEizlF6b73rQiAfmANOe/5ffEBrh5oCdggCVLzQQ X1QVAE285hnZe8YYePQftsAPObJbiJC5CPzXOuzSvtFosNEoBjXNdBGPcCGybRYWHLUw41fHJa8k8Boa
SUouWY4LqaM2U5Ocd9GVoDM/bzPwXLL4XY/QTXgN7usqDlOhVyHTPDfgF8IQzGkMBhxwNXG1xiw1rnzJ q3a/0h81H6+CoXqE5mZLT9Xeoeem7B+ohyRqz21oMa1+HQUn+Y9qxCzMEr+mh1SdUygLCD9fewLw/YRr
COZquhoJcR/ivVvZr0iZOie66KGEycux4+wS9hXp5WHqwNq4Vi2IFOrmnDMhKaiYaFc9pRmhCwJlO4HJ Fea6aTgL4bnO1fBDbk7WHlj+KffBQm2tvNpZNS9MhRdRDtE6LtIsJZf6uhV2Pc9urPfCpzzJV8K1gQ32
cR5R+ZFT9fj+cEsmvvMNz59e0T0sLfyQs/DBP15pEbsy1didTNFThRIw/dHE8akpEpJJThfItz7o+VfN QZoJ9XokBRN0j3OhQjSV9VQwqDBvVLGbDNYiWfygCtkqlhpkZcqE2iwwMNDPFdI41w3aGh1wZyWrg5JV
KgSpZpiMfbOdWvyqxgDvu4KiQ1bC9oL+DW1iJlCIU3Vx3FJUpgQ8Pbd36fCJBfr2ZBUzo9g3ILK4Ecoz 7Mja4F0WYeZekzrnpDaeWmejz4HPEoBN9Mgqajh2nFncPqg8fpkasNahlR08hSQ1Y5QLAirGKlT3aRaR
wZRpC1/hz1nSLligBrHN0vFqQLYxekS2BmNHOAQfzOuNUA6XSh9gOjMf+u3JvlePx+m1flJzkn4cREbF RQQ5Ur4dmMVEvGLqRcHL45toPHIu1kaTC3KArsVIXXSPThdKxLZIFXbHE3RvUAKu3+l1vK8YKahgZIFG
fBogA7d4gEm11UFLTVSniiCyixY4SkULHgQ9QJZFqjVbCsX7wwZHCgsTHy7CfmWEMUP5/RQaP0KCmfJ8 1i3b6KLqhUUqB4y7LlIn1nhJaBj7U07QMStgek7+iW52lKMQp/L4tiGoSCOI9MyepZaPL9Dv91bm0IpH
B2lpsGmsfixwPpGAnOm3N99dx7xqxY0KgZPUmva4ULPkLVzSVwjo85AD/r6CFZNKruJQqW6ukMA16td+ GkTWaIT2GafStcVI4s/pUiFYoAqxVdfpwiNbO90hW4GxIRwWH9xr1SvOKEkfGHSmGBvVlv1hHk+TS/Uk
GfEtGcrXZ3cLOyRm72MMNXmiyPMYiw/wRtTxxGTaekuvFvp+phkMOwBS6lfLQxUvznOYug2vMb/i6VeB ixL16EWGGdwPEM9ZGmBipjpoKRulVTGs7KIGjlRRgwehnIgiT5VmSyF/ebzBscTCeATH0ZFxQrsh496H
OsWVI61u2WBDZbU60MLyUrPW5G4773eKin91KnPajEODKafzeQA+5u+RQTV5nPMsxBoPK3RJqzYpGHh/ xldAMJ2er4GWGpva67sc78cCkDP5/bs/3MA8q8V1CgFLSk1t1JeQlhOt3aGKhUTxrzK+CMTMQgZwlT/H
UnBQnRiGm7n6RHNtCT9atWPAtrouDdk2aFWvNjUaTAGo07/18Vy3lHnVoFbeFsx88Ea4YqrUrLy/vIGW Ii9IFcUatHVV2WDT6KIPMjXUkBdrCsieuOl/dxRodDdjWYhVIFZoyB6lsTcP/iYdk1sQJ2ImbwguLeEn
o5mOTqYMfSuxMsRML+fwPzSE+Wdx1ZvDmhA/r7+0OGxP67iuJZ9y3ah1iTr9TGnxp65X/T+//T3/4Ruv izQe30pC+nzzetUiZaVBI1/j/uSsq+98bSJAt2NVIvGfd/JkF40nwzLc+1TWyBHS07g/y7VyWfCfrBgd
LoO6ef83AAD//5ZGKNl2HgAA CEpwRBDPIOOFev6FRADagch0BHuWEg1H0QQdibiQtxcyAUr20bQgsucIa8aYzIAs42IWDMt/Zbw9Zg9N
SOeglENCyIWRP55cOp3eiw5nhF0ddKDI59brDL3EVgLq8sfs9AOzfCuX6gu30oADzpGu06QnQJrODOor
N+vc1ouzZtX5kfupzkS11Q0PkdU1UzXIzFQ0q2AD6eE2KMd1+ppIT6ZS12hiROyI5O5q9PcXP+w/jOr0
67K0wUMT5vkcwErCW0mC6rWqoU1UUrh76zIvcMEUJR79ZYVGXbEagc5yX5LZ+dLAzjbB/oBgsBXl+6p+
K+x3Vl2mnNMiXxYN0GJeGD1Wi3w/M0CLe/U7JLr1lQiUEDrGMidCmiMpUleMA6LtXCE4Zj7G3+b1wNMJ
NPcATydQHegHiTNNWwzprL1dNlJ4TcTf5OuwmoXPevNAi3p9zLt0Vdgs69fSotZZZl2eF+iw6CyJBgh0
CDOUL42YWNzQr+X61fpZIDFxxt5OwD9kbhPbD5nrwric6ULU+UztWyn3BUo590PBr7aG64Rj83NJAKQy
5i0coGc4ghE+myZny6Pml46O3Fy9n/oo0Z7PFj+JCoE3Xrn6Lc+DAtEUpaL7MDnNV5rn5LWrz9a3pd+y
yhfMKvUXvn+yzPIE9OxKLh+btL5UZnlEOvCmlcdlqKfLLNb34d9yyxfMLfZ3+t+yy1dUujxJAvtU2eWp
ixZ/tqqyC6SOxqX9bIf5Dq3gvPTXWB35DFa8W6pBU68UY1lLUIM/p2fLefn+8f8BAAD//4ZNd/nQNAAA
`, `,
}, },
@ -12163,39 +12173,47 @@ AAAA//9ablv2IQMAAA==
"/templates/public-teammgmt.html": { "/templates/public-teammgmt.html": {
local: "templates/public-teammgmt.html", local: "templates/public-teammgmt.html",
size: 6401, size: 10204,
modtime: 1500470615, modtime: 1500997713,
compressed: ` compressed: `
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
GQAA GENrghgXchI5nCoMuc717R0QG52D1RMwlEMmyKWlPxzNvcngQdZb4WboDhSF1PqFo1fYyTxd+tjKEdKo
4lyzel9mnTJXmAuVUoADzpEpzkoTiJbO1BlqLgajZhaY98Fds+cII2/Yuvi0x8lRA5MmJdVaNDRGztRE
15qJrVxQXSFPfIjKdZ26p0qTseIFGhsSO6JieTn468sf9h8HdR72o7YRl9bs0ymAl8CpH4JCXQJDkdG/
BungseGUlKHdKVT5EwGIpNmgPy3R4OzPBAMQoKxWyltzi8lLXNS9fA8u9m7+uVzUVXgPLv5lWxcz18T1
WdQ39Brgh/SlTg9re0c4T8zn6Ns8nn0+gvYc9vkI6gNVL3J2aIMhwbQLWCOp1qHwm/rlwYuDq7PB2ML9
RdjPLxP0IH4R4T0IemjuC+a5bxMHuOZXivNswxBVDrsgbycan7K3Cbyn7PUxVu708dP6Lf6LdT/f+hz1
1/724f+2yekEYPMrEN3PgDBv4VQ5wQmsCMk0utgvdH284dHP9UX9J7EoP8II0jVX0s+StklSm8Kn1+51
At+gfAvRrxKi7lc/f7Ag/QxBdClOPzUPBIM0EFGfFKHhoK+CFCKwcTEy2WGxQ0uotX+2NAcl9jpgdbpa
TMvrt/8FAAD//x6rSUXcJwAA
`, `,
}, },

View File

@ -183,7 +183,7 @@ table tfoot {
} }
.pure-button-toggle-middle { .pure-button-toggle-middle {
border-radius: 0px; border-radius: 0px;
margin-left: -1px; margin-left: -5px;
border-left: 1px solid #CCC; border-left: 1px solid #CCC;
} }
.pure-button-toggle-last { .pure-button-toggle-last {
@ -198,6 +198,10 @@ table tfoot {
color: #999; color: #999;
} }
#modal-body {
margin-bottom: 15px;
}
#modal-overlay { #modal-overlay {
visibility: hidden; visibility: hidden;
position: absolute; position: absolute;

View File

@ -141,7 +141,7 @@ func handleTeamMgmtRequest(w http.ResponseWriter, req *http.Request) {
page.session.setFlashMessage(mbrName+" added to team!", "success") page.session.setFlashMessage(mbrName+" added to team!", "success")
} }
refreshTeamsInMemory() refreshTeamsInMemory()
redirect("/team/"+teamId, w, req) redirect("/team/"+teamId+"#members", w, req)
case "deletemember": case "deletemember":
mbrId := req.FormValue("memberid") mbrId := req.FormValue("memberid")
m, _ := dbGetTeamMember(teamId, mbrId) m, _ := dbGetTeamMember(teamId, mbrId)

View File

@ -1,6 +1,12 @@
{{ $uuid := .TemplateData.UUID }} {{ $uuid := .TemplateData.UUID }}
<div class="center"> <div class="center">
<div class="left"> <div>
<h3>Team Management</h3>
<button id="edit-team-button" onclick="javascript:gotoTeamTab();" class="pure-button-toggle-first pure-button pure-button-primary">Team Details</button>
<button id="edit-game-button" onclick="javascript:gotoTeamGameTab();" class="pure-button-toggle-middle pure-button">Game Details</button>
<button id="edit-team-members-button" onclick="javascript:gotoTeamMemberTab();" class="pure-button-toggle-last pure-button">Team Members</button>
</div>
<div id="edit-team-tab" class="left">
<form class="pure-form pure-form-aligned" action="/admin/teams/{{ $uuid }}/save" method="POST"> <form class="pure-form pure-form-aligned" action="/admin/teams/{{ $uuid }}/save" method="POST">
<h3>Team Details</h3> <h3>Team Details</h3>
<fieldset> <fieldset>
@ -17,10 +23,9 @@
</div> </div>
</fieldset> </fieldset>
</form> </form>
<hr />
</div> </div>
<div class="left big-space"> <div id="edit-game-tab" class="left big-space hidden">
<form class="pure-form pure-form-aligned" action="/admin/games/{{ $uuid }}/save" method="POST"> <form class="pure-form pure-form-aligned" action="/admin/games/{{ $uuid }}/save" method="POST">
<fieldset> <fieldset>
<a name="game" /> <a name="game" />
@ -62,8 +67,7 @@
</div> </div>
</div> </div>
<hr /> <div id="edit-team-members-tab" class="left hidden">
<div class="left">
<h3>Team Members</h3> <h3>Team Members</h3>
<table class="center padding hide"> <table class="center padding hide">
<thead> <thead>
@ -109,9 +113,6 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="pure-control-group reset-pull">
<a href="/admin/teams" class="pull-left space pure-button pure-button-plain">Cancel</a>
</div>
</div> </div>
<div id="uploadscreenshotform" style="display:none;"> <div id="uploadscreenshotform" style="display:none;">
<h3>Upload Screenshot</h3> <h3>Upload Screenshot</h3>
@ -162,16 +163,9 @@
); );
function showEditScreenShotModal(img) { function showEditScreenShotModal(img) {
var newImg = img.cloneNode();
var editSSForm = document.getElementById('editscreenshotform');
var cont = document.getElementById('editss-container');
while(cont.hasChildNodes()) {
cont.removeChild(cont.lastChild);
}
cont.appendChild(newImg);
showModal({ showModal({
title: 'Edit Screenshot', title: 'Edit Screenshot',
bodyNode: editSSForm, bodyNode: img.cloneNode(true),
buttons: [ buttons: [
{ title: 'Delete', class: 'pure-button-error', position: 'right', { title: 'Delete', class: 'pure-button-error', position: 'right',
click: function() { click: function() {
@ -181,18 +175,162 @@
{ title: 'Cancel', class: 'pure-button', position: 'right', click: hideModal } { title: 'Cancel', class: 'pure-button', position: 'right', click: hideModal }
] ]
}); });
editSSForm.style.display="block";
editSSForm.style.height="200px";
} }
function toggleUploadSSForm() { function toggleUploadSSForm() {
var uploadForm = document.getElementById('uploadscreenshotform'); if(valuesChanged()) {
showModal({ showModal({
title: 'Upload Screenshot', title: 'Unsaved Changes',
subtitle: '({{ .TemplateData.Name }})', subtitle: '',
bodyNode: uploadForm body: "You've made some changes, but haven't saved them yet, if you continue they will be lost.",
}); buttons: [{
uploadForm.style.display="block"; title: 'Cancel Changes',
document.getElementById('modal-body').style.height='165px'; class: 'pure-button-error',
click: function() {
revertChanges();
toggleUploadSSForm();
hideModal();
}
},{
title: 'Go Back',
class: 'pure-button-primary',
click: hideModal
}]
});
} else {
var uploadForm = document.getElementById('uploadscreenshotform');
showModal({
title: 'Upload Screenshot',
subtitle: '({{ .TemplateData.Name }})',
bodyNode: uploadForm
});
uploadForm.style.display="block";
document.getElementById('modal-body').style.height='165px';
}
}
function valuesChanged() {
// Check if Team Name changed
if(document.getElementById('teamname').value != '{{ .TemplateData.Name }}') { return true; }
// Check if Game Details changed
if(document.getElementById('gamename').value != '{{ .TemplateData.Game.Name }}') { return true; }
if(document.getElementById('gamelink').value != '{{ .TemplateData.Game.Link }}') { return true; }
if(document.getElementById('gamedesc').value != '{{ .TemplateData.Game.Description }}') { return true; }
// Check if new member details have been entered
if(document.getElementById('newmembername').value != '') { return true; }
if(document.getElementById('newmemberslackid').value != '') { return true; }
if(document.getElementById('newmembertwitter').value != '') { return true; }
if(document.getElementById('newmemberemail').value != '') { return true; }
return false;
}
function revertChanges() {
// Reset Team Name
document.getElementById('teamname').value = '{{ .TemplateData.Name }}';
// Reset Game Details
document.getElementById('gamename').value = '{{ .TemplateData.Game.Name }}';
document.getElementById('gamelink').value = '{{ .TemplateData.Game.Link }}';
document.getElementById('gamedesc').value = '{{ .TemplateData.Game.Description }}';
// Reset new member fields
document.getElementById('newmembername').value = '';
document.getElementById('newmemberslackid').value = '';
document.getElementById('newmembertwitter').value = '';
document.getElementById('newmemberemail').value = '';
}
function gotoTeamTab() {
if(valuesChanged()) {
showModal({
title: 'Unsaved Changes',
subtitle: '',
body: "You've made some changes, but haven't saved them yet, if you continue they will be lost.",
buttons: [{
title: 'Cancel Changes',
class: 'pure-button-error',
click: function() {
revertChanges();
gotoTeamTab();
hideModal();
}
},{
title: 'Go Back',
class: 'pure-button-primary',
click: hideModal
}]
});
} else {
document.getElementById('edit-team-button').classList.add('pure-button-primary');
document.getElementById('edit-game-button').classList.remove('pure-button-primary');
document.getElementById('edit-team-members-button').classList.remove('pure-button-primary');
document.getElementById('edit-team-tab').classList.remove('hidden');
document.getElementById('edit-game-tab').classList.add('hidden');
document.getElementById('edit-team-members-tab').classList.add('hidden');
}
}
function gotoTeamGameTab() {
if(valuesChanged()) {
showModal({
title: 'Unsaved Changes',
subtitle: '',
body: "You've made some changes, but haven't saved them yet, if you continue they will be lost.",
buttons: [{
title: 'Cancel Changes',
class: 'pure-button-error',
click: function() {
revertChanges();
gotoTeamGameTab();
hideModal();
}
},{
title: 'Go Back',
class: 'pure-button-primary',
click: hideModal
}]
});
} else {
document.getElementById('edit-team-button').classList.remove('pure-button-primary');
document.getElementById('edit-game-button').classList.add('pure-button-primary');
document.getElementById('edit-team-members-button').classList.remove('pure-button-primary');
document.getElementById('edit-team-tab').classList.add('hidden');
document.getElementById('edit-game-tab').classList.remove('hidden');
document.getElementById('edit-team-members-tab').classList.add('hidden');
}
}
function gotoTeamMemberTab() {
if(valuesChanged()) {
showModal({
title: 'Unsaved Changes',
subtitle: '',
body: "You've made some changes, but haven't saved them yet, if you continue they will be lost.",
buttons: [{
title: 'Cancel Changes',
class: 'pure-button-error',
click: function() {
revertChanges();
gotoTeamMemberTab();
hideModal();
}
},{
title: 'Go Back',
class: 'pure-button-primary',
click: hideModal
}]
});
} else {
document.getElementById('edit-team-button').classList.remove('pure-button-primary');
document.getElementById('edit-game-button').classList.remove('pure-button-primary');
document.getElementById('edit-team-members-button').classList.add('pure-button-primary');
document.getElementById('edit-team-tab').classList.add('hidden');
document.getElementById('edit-game-tab').classList.add('hidden');
document.getElementById('edit-team-members-tab').classList.remove('hidden');
}
}
if(window.location.hash == '#game') {
gotoTeamGameTab();
} else if(window.location.hash == '#members') {
gotoTeamMemberTab();
} }
</script> </script>

View File

@ -5,7 +5,12 @@
<hr /> <hr />
</div> </div>
<div class="left big-space"> <div>
<button id="edit-game-button" onclick="javascript:gotoTeamGameTab();" class="pure-button-toggle-first pure-button pure-button-primary">Game Details</button>
<button id="edit-team-members-button" onclick="javascript:gotoTeamMemberTab();" class="pure-button-toggle-last pure-button">Team Members</button>
</div>
<div id="edit-game-tab" class="left big-space">
<form class="pure-form pure-form-aligned" action="/team/{{ $uuid }}/savegame" method="POST"> <form class="pure-form pure-form-aligned" action="/team/{{ $uuid }}/savegame" method="POST">
<fieldset> <fieldset>
<a name="game" /> <a name="game" />
@ -47,8 +52,7 @@
</div> </div>
</div> </div>
<hr /> <div id="edit-team-members-tab" class="left hidden">
<div class="left">
<h3>Team Members</h3> <h3>Team Members</h3>
<table class="center padding hide"> <table class="center padding hide">
<thead> <thead>
@ -94,9 +98,6 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="pure-control-group reset-pull">
<a href="/team/{{ $uuid }}" class="pull-left space pure-button pure-button-plain">Cancel</a>
</div>
</div> </div>
<div id="uploadscreenshotform" style="display:none;"> <div id="uploadscreenshotform" style="display:none;">
<h3>Upload Screenshot</h3> <h3>Upload Screenshot</h3>
@ -104,17 +105,16 @@
<div class="pure-control-group" style="margin-bottom:50px;"> <div class="pure-control-group" style="margin-bottom:50px;">
<input class="file" type="file" name="newssfile" multiple> <input class="file" type="file" name="newssfile" multiple>
</div> </div>
<a href="javascript:hideModal();" class="pull-left space-sides pure-button">Cancel</a>
<button type="submit" class="pull-right space-sides pure-button pure-button-primary">Add</button> <button type="submit" class="pull-right space-sides pure-button pure-button-primary">Add</button>
<button type="button" onclick="hideModal();" class="pull-right space-sides pure-button pure-button">Cancel</button>
</form> </form>
</div> </div>
<div id="editscreenshotform" style="display:none;"> <div id="editscreenshotform" style="display:none;">
<div id="editss-container" class="pure-control-group" style="margin-bottom:50px;"> <div id="editss-container" class="pure-control-group" style="margin-bottom:50px;"></div>
</div>
</div> </div>
<script> <script>
snack.listener( snack.listener({
{
node:document.getElementById('thumbnail-container'), node:document.getElementById('thumbnail-container'),
event:'click', event:'click',
delegate: function(node) { delegate: function(node) {
@ -127,16 +127,9 @@
); );
function showEditScreenShotModal(img) { function showEditScreenShotModal(img) {
var newImg = img.cloneNode();
var editSSForm = document.getElementById('editscreenshotform');
var cont = document.getElementById('editss-container');
while(cont.hasChildNodes()) {
cont.removeChild(cont.lastChild);
}
cont.appendChild(newImg);
showModal({ showModal({
title: 'Edit Screenshot', title: 'Edit Screenshot',
bodyNode: editSSForm, bodyNode: img.cloneNode(true),
buttons: [ buttons: [
{ title: 'Delete', class: 'pure-button-error', position: 'right', { title: 'Delete', class: 'pure-button-error', position: 'right',
click: function() { click: function() {
@ -146,18 +139,120 @@
{ title: 'Cancel', class: 'pure-button', position: 'right', click: hideModal } { title: 'Cancel', class: 'pure-button', position: 'right', click: hideModal }
] ]
}); });
editSSForm.style.display="block";
editSSForm.style.height="200px";
} }
function toggleUploadSSForm() { function toggleUploadSSForm() {
var uploadForm = document.getElementById('uploadscreenshotform'); if(valuesChanged()) {
showModal({ showModal({
title: 'Upload Screenshot', title: 'Unsaved Changes',
subtitle: '({{ .TemplateData.Name }})', subtitle: '',
bodyNode: uploadForm body: "You've made some changes, but haven't saved them yet, if you continue they will be lost.",
}); buttons: [{
uploadForm.style.display="block"; title: 'Cancel Changes',
document.getElementById('modal-body').style.height='165px'; class: 'pure-button-error',
click: function() {
revertChanges();
toggleUploadSSForm();
hideModal();
}
},{
title: 'Go Back',
class: 'pure-button-primary',
click: hideModal
}]
});
} else {
var uploadForm = document.getElementById('uploadscreenshotform').cloneNode(true);
showModal({
title: 'Upload Screenshot',
subtitle: '({{ .TemplateData.Name }})',
bodyNode: uploadForm
});
uploadForm.style.display="block";
document.getElementById('modal-body').style.height='165px';
}
}
function valuesChanged() {
// Check if game details have changed
if(document.getElementById('gamename').value != '{{ .TemplateData.Game.Name }}') { return true; }
if(document.getElementById('gamelink').value != '{{ .TemplateData.Game.Link }}') { return true; }
if(document.getElementById('gamedesc').value != '{{ .TemplateData.Game.Description }}') { return true; }
// Check if new member details have been entered
if(document.getElementById('newmembername').value != '') { return true; }
if(document.getElementById('newmemberslackid').value != '') { return true; }
if(document.getElementById('newmembertwitter').value != '') { return true; }
if(document.getElementById('newmemberemail').value != '') { return true; }
return false;
}
function revertChanges() {
// Reset game details
document.getElementById('gamename').value = '{{ .TemplateData.Game.Name }}';
document.getElementById('gamelink').value = '{{ .TemplateData.Game.Link }}';
document.getElementById('gamedesc').value = '{{ .TemplateData.Game.Description }}';
// Reset new member fields
document.getElementById('newmembername').value = '';
document.getElementById('newmemberslackid').value = '';
document.getElementById('newmembertwitter').value = '';
document.getElementById('newmemberemail').value = '';
}
function gotoTeamGameTab() {
if(valuesChanged()) {
showModal({
title: 'Unsaved Changes',
body: "You've made some changes, but haven't saved them yet, if you continue they will be lost.",
buttons: [{
title: 'Cancel Changes',
class: 'pure-button-error',
click: function() {
revertChanges();
gotoTeamGameTab();
hideModal();
}
},{
title: 'Go Back',
class: 'pure-button-primary',
click: hideModal
}]
});
} else {
document.getElementById('edit-game-button').classList.add('pure-button-primary');
document.getElementById('edit-team-members-button').classList.remove('pure-button-primary');
document.getElementById('edit-game-tab').classList.remove('hidden');
document.getElementById('edit-team-members-tab').classList.add('hidden');
}
}
function gotoTeamMemberTab() {
if(valuesChanged()) {
showModal({
title: 'Unsaved Changes',
body: "You've made some changes, but haven't saved them yet, if you continue they will be lost.",
buttons: [{
title: 'Cancel Changes',
class: 'pure-button-error',
click: function() {
revertChanges();
gotoTeamMemberTab();
hideModal();
}
},{
title: 'Go Back',
class: 'pure-button-primary',
click: hideModal
}]
});
} else {
document.getElementById('edit-game-button').classList.remove('pure-button-primary');
document.getElementById('edit-team-members-button').classList.add('pure-button-primary');
document.getElementById('edit-game-tab').classList.add('hidden');
document.getElementById('edit-team-members-tab').classList.remove('hidden');
}
}
if(window.location.hash == '#members') {
gotoTeamMemberTab();
} }
</script> </script>