Save hashed PW. Simplify model update. Bugfixes & improvements. Working user-settings & games.
This commit is contained in:
@@ -37,7 +37,7 @@
|
||||
const submitButton = addPlayerModal.querySelector('button[name="submit"]');
|
||||
const playerName = addPlayerModal.querySelector('#playerName');
|
||||
const clanName = addPlayerModal.querySelector('#playerClanName');
|
||||
const errorDiv = editPlayerModal.querySelector('.error-message');
|
||||
const errorDiv = addPlayerModal.querySelector('.error-message');
|
||||
const homeClanListIndex = document.getElementById('home-clan').selectedIndex;
|
||||
const oppClanListIndex = document.getElementById('opponent-clan').selectedIndex;
|
||||
|
||||
@@ -67,6 +67,12 @@
|
||||
"Content-type": "application/json; charset=UTF-8"
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Hinzufügen fehlgeschlagen!\nSpielername existiert möglichweise bereits.');
|
||||
}
|
||||
return response.text();
|
||||
})
|
||||
.then(() => {
|
||||
const sameClan = homeClanListIndex === oppClanListIndex;
|
||||
if (playerList.id === 'home-player-list' || sameClan)
|
||||
|
||||
@@ -64,6 +64,12 @@
|
||||
"Content-type": "application/json; charset=UTF-8"
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Änderung fehlgeschlagen!\nSpielername existiert möglichweise bereits.');
|
||||
}
|
||||
return response.text();
|
||||
})
|
||||
.then(() => {
|
||||
const sameClan = homeClanListIndex === oppClanListIndex;
|
||||
if (playerList.id === 'home-player-list' || sameClan)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<label class="col-form-label col-form-label-lg" for="games">Aktuelles Spiel:</label>
|
||||
</div>
|
||||
<div class="col">
|
||||
<select class="form-select form-select-lg" id="games">
|
||||
<select class="form-select form-select-lg" id="games" hx-get="/game_html" hx-target="#games" hx-trigger="load">
|
||||
<!-- fill dynamically with available games -->
|
||||
</select>
|
||||
</div>
|
||||
@@ -41,7 +41,79 @@
|
||||
</div>
|
||||
|
||||
<script lang="javascript">
|
||||
// TBD
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const settingsModal = document.getElementById('settingsModal');
|
||||
const settingsModalBS = new bootstrap.Modal('#settingsModal');
|
||||
const submitButton = settingsModal.querySelector('button[name="submit"]');
|
||||
let submitSettingsHandler = null;
|
||||
|
||||
const games = document.getElementById('games');
|
||||
const squadColors = document.getElementById('settingsSquadColors');
|
||||
const calcMedian = document.getElementById('settingsCalcMedian');
|
||||
const useCache = document.getElementById('settingsUseCache');
|
||||
|
||||
function createSubmitSettingsHandler() {
|
||||
return function submitSettingsHandler(e) {
|
||||
let activeGameId = games.options[games.selectedIndex].value;
|
||||
if (activeGameId === '') {
|
||||
alert('Bitte wähle ein Spiel aus.');
|
||||
return;
|
||||
}
|
||||
activeGameId = parseInt(activeGameId);
|
||||
|
||||
fetch("/settings", {
|
||||
method: "PATCH",
|
||||
body: JSON.stringify({
|
||||
active_game_id: activeGameId,
|
||||
squad_colors: squadColors.checked,
|
||||
calc_median: calcMedian.checked,
|
||||
use_cache: useCache.checked
|
||||
}),
|
||||
headers: {
|
||||
"Content-type": "application/json; charset=UTF-8"
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Server error');
|
||||
}
|
||||
})
|
||||
.then(() => {
|
||||
settingsModalBS.hide();
|
||||
})
|
||||
.catch((error) => {
|
||||
alert('Fehler beim Speichern der Einstellungen: ' + error.message);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (settingsModal) {
|
||||
settingsModal.addEventListener('show.bs.modal', event => {
|
||||
submitSettingsHandler = createSubmitSettingsHandler();
|
||||
submitButton.addEventListener('click', submitSettingsHandler);
|
||||
|
||||
fetch("/settings", {
|
||||
method: "GET",
|
||||
headers: {
|
||||
"Content-type": "application/json; charset=UTF-8"
|
||||
}
|
||||
})
|
||||
.then((response) => {
|
||||
return response.json();
|
||||
})
|
||||
.then((result) => {
|
||||
console.log(result);
|
||||
games.selectedIndex = games.querySelector(`option[value="${result['active_game_id']}"]`).index;
|
||||
squadColors.checked = result['squad_colors'];
|
||||
calcMedian.value = result['calc_median'];
|
||||
useCache.value = result['use_cache'];
|
||||
})
|
||||
.catch((error) => {
|
||||
alert('Fehler beim Laden der Einstellungen: ' + error.message);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
{{ end }}
|
||||
Reference in New Issue
Block a user