diff --git a/server.py b/server.py
index fb5732b..e880a4d 100755
--- a/server.py
+++ b/server.py
@@ -133,9 +133,14 @@ def rounds():
# display outcome
# display map
-@app.route("/balance-tool")
+@app.route("/balance-tool", methods=['GET', 'POST'])
def balanceTool():
- return flask.render_template("json_builder.html",
+ if flask.request.method == 'POST':
+ print(flask.request.json)
+ return flask.Response(json.dumps({"content":"
test
"}),
+ 200, mimetype='application/json')
+ else:
+ return flask.render_template("json_builder.html",
positions=["Top", "Jungle", "Mid", "Support", "Bottom"],
sides=["left", "right"])
diff --git a/static/balance.js b/static/balance.js
index 3086d57..ec747ea 100644
--- a/static/balance.js
+++ b/static/balance.js
@@ -1,5 +1,19 @@
positions = [ "Top", "Jungle", "Mid", "Support" , "Bottom" ]
+function checkPlayer() {
+ if(this.value == ""){
+ return
+ }
+ url = "/player?id=" + this.value
+ fetch(url).then(r => {
+ if(r.status == 200){
+ this.style.background = "#74bb74"
+ }else{
+ //this.style.background = "#d25252"
+ }
+ })
+}
+
function fastPosChanged() {
accepted = [ "top", "jungle", "mid", "sup" , "bot" ]
@@ -61,19 +75,44 @@ function fastPosChanged() {
selector.style.background = "lightblue"
}
+ /* allow some basic shit */
+ console.log(clean)
+ if(clean == "*" || clean == ""){
+ console.log("lol")
+ retVal = true
+ }
+
if(retVal){
- this.style.background = "green"
+ this.style.background = "#74bb74"
}else{
- this.style.background = "red"
+ this.style.background = "#d25252"
}
}
function balance(){
+
sides = ["left", "right"]
- var prioList = [5, 5, 5, 5, 5]
- var pname = "undef"
+
+ blue = [ "", "", "", "", ""]
+ red = [ "", "", "", "", ""]
+
+ dictToBeSorted = {
+ 0 : [],
+ 1 : [],
+ 2 : [],
+ 3 : [],
+ 4 : []
+ }
+ filler = []
+ impossible = []
+
+ dictAll = {}
for(sid = 0; sid < 2; sid++){
for(id = 0; id < 5; id++){
+
+ var pname = "undef"
+ var prioList = [5, 5, 5, 5, 5]
+
stringPid = `playername-${sides[sid]}-${id}`
pnameObj = document.getElementById(stringPid)
pname = pnameObj.value
@@ -82,11 +121,74 @@ function balance(){
selObj = document.getElementById(stringSelectorId)
prioList[acc] = selObj.value
}
+
+ dictAll[pname] = prioList
+
+ /* deal with one pos andys */
+ countPos = prioList.filter(a => a < 5).length
+ if(countPos == 1){
+ pos = null
+ count = 0
+ prioList.forEach(a => {
+ if(a < 5){
+ pos = positions[count]
+ }
+ count++;
+ })
+ indexPos = positions.indexOf(pos)
+ if(blue[indexPos] == ""){
+ blue[indexPos] = pname
+ }else if(red[indexPos] == ""){
+ red[indexPos] = pname
+ }else{
+ impossible += [pname]
+ }
+ }else if(prioList.reduce((a, b) => a + b, 0) == 25){
+ /* those are fillers */
+ fillers += [pname]
+ }else{
+ for(i = 0; i<5; i++){
+ dictToBeSorted[i] += [{ "name" : pname, "val" : prioList[i]}]
+ }
+ }
+
}
}
- console.log(pname, prioList)
+
+ /* fill rest */
+ for(i = 0; i < 5; i++){
+ if(red[i] == ""){
+ candidates = dictToBeSorted[i]
+ }
+ if(blue[i] == ""){
+
+ }
+ }
+
+ jsonData = JSON.stringify(dictAll, null, 4);
+ console.log(jsonData)
+
+ /* transmitt */
+ fetch(window.location.href, {
+ method: 'post',
+ headers: {
+ 'Accept': 'application/json, text/plain, */*',
+ 'Content-Type': 'application/json' },
+ body: jsonData
+ }).then(r => r.json()).then(j => {
+ console.log(j)
+ console.log(j["content"])
+ cont = document.getElementById("response-container")
+ cont.innerHTML = j["content"]
+ })
+
}
fastPosFields = document.getElementsByClassName("fastpos")
+playerNameFields = document.getElementsByClassName("pname")
+
+playerNameFields.forEach(el => el.addEventListener('input', checkPlayer));
+playerNameFields.forEach(el => el.addEventListener('focus', checkPlayer));
+
fastPosFields.forEach(el => el.addEventListener('input', fastPosChanged));
fastPosFields.forEach(el => el.addEventListener('focus', fastPosChanged));
diff --git a/templates/json_builder.html b/templates/json_builder.html
index e88a2fc..11b4150 100644
--- a/templates/json_builder.html
+++ b/templates/json_builder.html
@@ -15,10 +15,13 @@
Balance Tool
+
+
+
+
+
-
-