Data hry jsou uložena v počítači: {{ config.ROOT_DIR }}/{{ config.DATAFILE }}
Veškerý informace jsou logovány do souboru: {{ config.ROOT_DIR }}/{{ config.LOG_FOLDER }}
Debug: {{ config.DEBUG }}
-Temp: {{ config.TEMP_DIR }}
+Root: {{ config.TEMP_DIR }}
diff --git a/forester-game-app/pages/admin/index.js b/forester-game-app/games/admin/index.js similarity index 71% rename from forester-game-app/pages/admin/index.js rename to forester-game-app/games/admin/index.js index 7671572..f42aaae 100644 --- a/forester-game-app/pages/admin/index.js +++ b/forester-game-app/games/admin/index.js @@ -1,25 +1,25 @@ -const foresterLib = new ForesterLib(); +const foresterLib = new ForrestHubLib(); foresterLib.setAdmin(true); foresterLib.setGameMode(false); let globalData = {}; -foresterLib.addEventListener("connect", async () => { +foresterLib.addEventListenerKey("connect", async () => { foresterLib.showAlert('success', 'Připojeno k serveru.'); await loadAndDisplayData(); - foresterLib.socket.emit('get_game_status'); + foresterLib.emit('get_game_status'); }); -setInterval(loadAndDisplayData, 2000); +setInterval(loadAndDisplayData, 1000); async function loadAndDisplayData() { try { - globalData = await foresterLib.getAll(); + globalData = await foresterLib.getAllDatabase(); displayData(); } catch (error) { - showAlert('danger', 'Error loading data: ' + error.message); + foresterLib.showAlert('danger', 'Error loading data: ' + error.message); } } @@ -123,7 +123,7 @@ async function saveData() { } try { - await foresterLib.edit(key, value); + await foresterLib.setKeyBroadcast(key, value); globalData[key] = value; // Update local data displayData(); // Refresh the display foresterLib.showAlert('success', `Value for ${key} updated successfully.`); @@ -134,19 +134,19 @@ async function saveData() { } async function deleteData(key) { - if (confirm(`Are you sure you want to delete ${key}?`)) { + if (confirm(`Opravdu si přeješ smazat data s klíčem: ${key}`)) { try { - await foresterLib.delete(key); + await foresterLib.deleteKey(key); delete globalData[key]; // Remove from local data displayData(); // Refresh the display - foresterLib.showAlert('success', `${key} deleted successfully.`); + foresterLib.showAlert('success', `Klíč '${key}' smazán úspěšně`); } catch (error) { - foresterLib.showAlert('danger', `Error deleting ${key}: ${error}`); + foresterLib.showAlert('danger', `Chyba mazání ${key}: ${error}`); } } } -foresterLib.addEventListener('update_clients', (data) => { +foresterLib.addEventListenerKey('update_clients', (data) => { document.getElementById('connected_clients').innerText = data.count; }); @@ -156,22 +156,22 @@ function sendAdminMessage() { foresterLib.socket.emit('send_admin_message', adminMessage.value); document.getElementById('lastAdminMessage').innerText = adminMessage.value; adminMessage.value = ''; - showAlert('success', 'Message sent successfully.'); + foresterLib.showAlert('success', 'Zpráva odeslána.'); } else { - showAlert('warning', 'Please enter a message before sending.'); + foresterLib.showAlert('warning', 'Napište nejprve zprávu.'); } } document.getElementById("game_start").addEventListener("click", function () { - foresterLib.socket.emit('game_start'); + foresterLib.emit("set_game_status", foresterLib.RUNNING); }); document.getElementById("game_pause").addEventListener("click", function () { - foresterLib.socket.emit('game_pause'); + foresterLib.emit('set_game_status', foresterLib.PAUSED); }); document.getElementById("game_stop").addEventListener("click", function () { - foresterLib.socket.emit('game_stop'); + foresterLib.emit('set_game_status', foresterLib.STOPPED); }); @@ -181,19 +181,7 @@ document.getElementById("download-button").addEventListener("click", function () document.getElementById("clear-button").addEventListener("click", async function () { if (confirm("Are you sure you want to clear all data? This action cannot be undone.")) { - try { - const response = await fetch('/clear-data', {method: 'POST'}); - const data = await response.json(); - if (data.status === "success") { - globalData = {}; // Clear local data - displayData(); // Refresh the display - showAlert('success', "Data successfully cleared."); - } else { - showAlert('danger', "An error occurred while clearing the data."); - } - } catch (error) { - showAlert('danger', "An error occurred while clearing the data."); - } + await foresterLib.deleteAllDatabase(); } }); @@ -206,45 +194,22 @@ document.getElementById("upload-button").addEventListener("click", async functio formData.append("file", file); try { - const response = await fetch("/upload_data", { + const response = await fetch("/upload-data", { method: "POST", body: formData }); const data = await response.json(); if (data.status === "success") { - showAlert('success', "Data successfully uploaded."); + foresterLib.showAlert('success', "Data successfully uploaded."); await loadAndDisplayData(); // Reload and display the new data } else { - showAlert('danger', "An error occurred while uploading the data."); + foresterLib.showAlert('danger', "An error occurred while uploading the data."); } } catch (error) { console.error("Error uploading file:", error); - showAlert('danger', "An error occurred while uploading the file."); + foresterLib.showAlert('danger', "An error occurred while uploading the file."); } } else { - showAlert('warning', "Please select a file to upload."); + foresterLib.showAlert('warning', "Please select a file to upload."); } }); - -function getParameterByName(name, url = window.location.href) { - name = name.replace(/[\[\]]/g, '\\$&'); - const regex = new RegExp('[?&]' + name + '(=([^]*)|&|#|$)'), - results = regex.exec(url); - if (!results) return null; - if (!results[2]) return ''; - return decodeURIComponent(results[2].replace(/\+/g, ' ')); -} - - - - -// Initialize tooltips -var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) -var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { - return new bootstrap.Tooltip(tooltipTriggerEl) -}) - -// Load and display data when the page loads -// document.addEventListener('DOMContentLoaded', async () => { -// -// }); \ No newline at end of file diff --git a/forester-game-app/games/demo/decrement.css b/forester-game-app/games/demo/decrement.css new file mode 100644 index 0000000..e69de29 diff --git a/forester-game-app/games/demo/decrement.html b/forester-game-app/games/demo/decrement.html new file mode 100644 index 0000000..c671a11 --- /dev/null +++ b/forester-game-app/games/demo/decrement.html @@ -0,0 +1,12 @@ +{% extends "templates/base.html" %} +{% set game_name = "Demo - Snížení počítadla" %} +{% block content %} + +{% endblock %} diff --git a/forester-game-app/games/demo/decrement.js b/forester-game-app/games/demo/decrement.js new file mode 100644 index 0000000..9f20ad5 --- /dev/null +++ b/forester-game-app/games/demo/decrement.js @@ -0,0 +1,30 @@ +const foresterLib = new ForrestHubLib(); + +document.addEventListener('DOMContentLoaded', function () { + const counterElement = document.getElementById('counter'); + const decrementButton = document.getElementById('decrementButton'); + + // Načti počáteční hodnotu počítadla + foresterLib.getKey('my_number').then((value) => { + counterElement.innerText = value || 0; + }).catch((err) => { + console.error('Chyba při načítání počítadla:', err); + }); + + // Zvyšení počítadla po kliknutí + decrementButton.addEventListener('click', () => { + let currentValue = parseInt(counterElement.innerText, 10); + let newValue = currentValue - 1; + + foresterLib.setKeyBroadcast('my_number', newValue).then((response) => { + counterElement.innerText = newValue; + }).catch((err) => { + console.error('Chyba při ukládání počítadla:', err); + }); + }); + + // Automatické načítání změn v hodnotě počítadla + foresterLib.addEventListenerKey('my_number', (data) => { + counterElement.innerText = data || 0; + }); +}); \ No newline at end of file diff --git a/forester-game-app/games/demo/increment.css b/forester-game-app/games/demo/increment.css new file mode 100644 index 0000000..e69de29 diff --git a/forester-game-app/games/demo/increment.html b/forester-game-app/games/demo/increment.html new file mode 100644 index 0000000..43f6b36 --- /dev/null +++ b/forester-game-app/games/demo/increment.html @@ -0,0 +1,44 @@ +{% extends "templates/base.html" %} +{% block content %} + + + +{% endblock %} diff --git a/forester-game-app/games/demo/increment.js b/forester-game-app/games/demo/increment.js new file mode 100644 index 0000000..0d14414 --- /dev/null +++ b/forester-game-app/games/demo/increment.js @@ -0,0 +1,30 @@ +// const foresterLib = new ForrestHubLib(); +// +// document.addEventListener('DOMContentLoaded', function () { +// const counterElement = document.getElementById('counter'); +// const incrementButton = document.getElementById('incrementButton'); +// +// // Načti počáteční hodnotu počítadla +// foresterLib.getKey('my_number').then((value) => { +// counterElement.innerText = value || 0; +// }).catch((err) => { +// console.error('Chyba při načítání počítadla:', err); +// }); +// +// // Zvyšení počítadla po kliknutí +// incrementButton.addEventListener('click', () => { +// let currentValue = parseInt(counterElement.innerText, 10); +// let newValue = currentValue + 1; +// +// foresterLib.setKeyBroadcast('my_number', newValue).then((response) => { +// counterElement.innerText = newValue; +// }).catch((err) => { +// console.error('Chyba při ukládání počítadla:', err); +// }); +// }); +// +// // Automatické načítání změn v hodnotě počítadla +// foresterLib.addEventListenerKey('my_number', (data) => { +// counterElement.innerText = data || 0; +// }); +// }); \ No newline at end of file diff --git a/forester-game-app/pages/menu/index.html b/forester-game-app/games/menu/index.html similarity index 100% rename from forester-game-app/pages/menu/index.html rename to forester-game-app/games/menu/index.html diff --git a/forester-game-app/games/posta/index.html b/forester-game-app/games/posta/index.html new file mode 100644 index 0000000..9b00063 --- /dev/null +++ b/forester-game-app/games/posta/index.html @@ -0,0 +1,63 @@ +{% extends "templates/base.html" %} +{% set game_name = "Pořadové číslo a čas" %} +{% block content %} +Pořadová čísla a časy:
+Waiting for countdown...
- -');g.push(" |
Zpráva se odešle všem připojeným zařízením, které jsou v danou chvíli ve hře.
-Poslední odeslaná zpráva: -
- -Stiskni tlačítko nebo klikni na ENTER
- - - - - - - diff --git a/py-socket-server/templates/udavac.html b/py-socket-server/templates/udavac.html deleted file mode 100644 index 2da8ab9..0000000 --- a/py-socket-server/templates/udavac.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - -Udavač
-Stiskni tlačítko nebo klikni na ENTER
- - - - - - - diff --git a/py-socket-server/templates/udavacOld.html b/py-socket-server/templates/udavacOld.html deleted file mode 100644 index f0973c7..0000000 --- a/py-socket-server/templates/udavacOld.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - -