mirror of
https://github.com/FAUSheppy/open-web-leaderboard.git
synced 2025-12-06 07:01:36 +01:00
basic balance input
This commit is contained in:
@@ -133,6 +133,12 @@ def rounds():
|
|||||||
# display outcome
|
# display outcome
|
||||||
# display map
|
# display map
|
||||||
|
|
||||||
|
@app.route("/balance-tool")
|
||||||
|
def balanceTool():
|
||||||
|
return flask.render_template("json_builder.html",
|
||||||
|
positions=["Top", "Jungle", "Mid", "Support", "Bottom"],
|
||||||
|
sides=["left", "right"])
|
||||||
|
|
||||||
@app.route("/player")
|
@app.route("/player")
|
||||||
def player():
|
def player():
|
||||||
'''Show Info about Player'''
|
'''Show Info about Player'''
|
||||||
@@ -295,4 +301,5 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
app.config["DB_PATH"] = args.skillbird_db
|
app.config["DB_PATH"] = args.skillbird_db
|
||||||
|
app.config["TEMPLATES_AUTO_RELOAD"] = True
|
||||||
app.run(host=args.interface, port=args.port)
|
app.run(host=args.interface, port=args.port)
|
||||||
|
|||||||
92
static/balance.js
Normal file
92
static/balance.js
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
positions = [ "Top", "Jungle", "Mid", "Support" , "Bottom" ]
|
||||||
|
|
||||||
|
function fastPosChanged() {
|
||||||
|
|
||||||
|
accepted = [ "top", "jungle", "mid", "sup" , "bot" ]
|
||||||
|
uniqArr = []
|
||||||
|
prioArray = [5, 5, 5, 5, 5]
|
||||||
|
|
||||||
|
/* commence cleanup */
|
||||||
|
clean = this.value.replaceAll(" ", "").toLocaleLowerCase()
|
||||||
|
clean = clean.replace("support", "sup")
|
||||||
|
clean = clean.replace("adc", "bot")
|
||||||
|
clean = clean.replace("bottom", "bot")
|
||||||
|
|
||||||
|
retVal = true
|
||||||
|
if(clean.includes("<")){
|
||||||
|
console.log("Not accepted (includes <)")
|
||||||
|
retVal = false
|
||||||
|
}
|
||||||
|
|
||||||
|
list = clean.split(">")
|
||||||
|
cur = 1
|
||||||
|
list.forEach(el => {
|
||||||
|
if(el.includes("=")){
|
||||||
|
listEq = el.split("=")
|
||||||
|
listEq.forEach(sub => {
|
||||||
|
if(accepted.includes(sub) && !uniqArr.includes(sub)){
|
||||||
|
prioArray[accepted.indexOf(sub)] = cur
|
||||||
|
uniqArr += [sub]
|
||||||
|
}else{
|
||||||
|
console.log("Not accepted (=): " + sub)
|
||||||
|
retVal = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
cur++
|
||||||
|
}else{
|
||||||
|
if(accepted.includes(el) && !uniqArr.includes(el)){
|
||||||
|
prioArray[accepted.indexOf(el)] = cur
|
||||||
|
uniqArr += [el]
|
||||||
|
cur++
|
||||||
|
}else{
|
||||||
|
console.log("Not accepted (>): " + el)
|
||||||
|
retVal = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
for(i = 0; i<5; i++){
|
||||||
|
arr = this.id.split("-")
|
||||||
|
pNr = arr[arr.length-1]
|
||||||
|
side = this.id.includes("left") ? "left" : "right"
|
||||||
|
string = "prio-" + side + "-" + accepted[i] + "-" + pNr
|
||||||
|
|
||||||
|
string = string.replace("top","Top")
|
||||||
|
string = string.replace("jungle","Jungle")
|
||||||
|
string = string.replace("mid","Mid")
|
||||||
|
string = string.replace("sup","Support")
|
||||||
|
string = string.replace("bot","Bottom")
|
||||||
|
|
||||||
|
selector = document.getElementById(string)
|
||||||
|
selector.value = prioArray[i]
|
||||||
|
selector.style.background = "lightblue"
|
||||||
|
}
|
||||||
|
|
||||||
|
if(retVal){
|
||||||
|
this.style.background = "green"
|
||||||
|
}else{
|
||||||
|
this.style.background = "red"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function balance(){
|
||||||
|
sides = ["left", "right"]
|
||||||
|
var prioList = [5, 5, 5, 5, 5]
|
||||||
|
var pname = "undef"
|
||||||
|
for(sid = 0; sid < 2; sid++){
|
||||||
|
for(id = 0; id < 5; id++){
|
||||||
|
stringPid = `playername-${sides[sid]}-${id}`
|
||||||
|
pnameObj = document.getElementById(stringPid)
|
||||||
|
pname = pnameObj.value
|
||||||
|
for(acc = 0; acc < 5; acc++){
|
||||||
|
stringSelectorId = `prio-${sides[sid]}-${positions[acc]}-${id}`
|
||||||
|
selObj = document.getElementById(stringSelectorId)
|
||||||
|
prioList[acc] = selObj.value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(pname, prioList)
|
||||||
|
}
|
||||||
|
|
||||||
|
fastPosFields = document.getElementsByClassName("fastpos")
|
||||||
|
fastPosFields.forEach(el => el.addEventListener('input', fastPosChanged));
|
||||||
|
fastPosFields.forEach(el => el.addEventListener('focus', fastPosChanged));
|
||||||
65
templates/json_builder.html
Normal file
65
templates/json_builder.html
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>Balance and Submission Tool</title>
|
||||||
|
<meta name="Description" content="Sheppy is awesome?">
|
||||||
|
<script defer src="/static/balance.js"></script>
|
||||||
|
{% include 'default_head_content.html' %}
|
||||||
|
</head>
|
||||||
|
<body class="bg-special">
|
||||||
|
{% include 'navbar.html' %}
|
||||||
|
<div class="container mt-3 mb-3" role="main">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm">
|
||||||
|
<h1>Balance Tool</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
<div class="row">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
{% for side in sides %}
|
||||||
|
<div class="col-sm">
|
||||||
|
{% for field in range(5) %}
|
||||||
|
<div id="{{ side }}-{{ field }}" class="row mt-2 mb-2">
|
||||||
|
<div class="col-sm">
|
||||||
|
|
||||||
|
<!-- player name field -->
|
||||||
|
<input class="form-control" type="text" placeholder="Player"
|
||||||
|
id="playername-{{ side }}-{{ field }}">
|
||||||
|
|
||||||
|
<!-- fast postition slection field -->
|
||||||
|
<input class="form-control fastpos" type="text"
|
||||||
|
placeholder="top > mid = bot"
|
||||||
|
id="check-{{ side }}-fastpos-{{ field }}">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-sm">
|
||||||
|
<!-- checkboxes for pos -->
|
||||||
|
{% for pos in positions %}
|
||||||
|
<select id="prio-{{ side }}-{{ pos }}-{{ field }}"
|
||||||
|
class="form-select">
|
||||||
|
<option selected>{{ pos }}</option>
|
||||||
|
<option value="1">1</option>
|
||||||
|
<option value="2">2</option>
|
||||||
|
<option value="3">3</option>
|
||||||
|
<option value="4">4</option>
|
||||||
|
<option value="5">5</option>
|
||||||
|
</select>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
|
{% include 'footer.html' %}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user