From ac76ef108b58c73b8ecd563768e71f8ba4f35666 Mon Sep 17 00:00:00 2001 From: FragginWagon Date: Wed, 28 Jan 2026 19:10:07 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=A5=20Add=20functionality=20to=20downl?= =?UTF-8?q?oad=20individual=20and=20multiple=20files=20from=20the=20server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/GamemasterManager.vue | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/code/websites/pokedex.online/src/views/GamemasterManager.vue b/code/websites/pokedex.online/src/views/GamemasterManager.vue index da3a95b..bc2a54b 100644 --- a/code/websites/pokedex.online/src/views/GamemasterManager.vue +++ b/code/websites/pokedex.online/src/views/GamemasterManager.vue @@ -131,7 +131,11 @@ -
+
@@ -286,7 +290,7 @@ async function saveToServer() { const result = await response.json(); saveSuccess.value = true; console.log('✅ Files saved to server:', result); - + // Reload server status await loadServerStatus(); } catch (err) { @@ -317,6 +321,41 @@ function downloadAll() { setTimeout(() => downloadMoves(), 1000); } +async function downloadFromServer(filename) { + try { + const response = await fetch(`/api/gamemaster/download/${filename}`); + if (!response.ok) { + throw new Error(`Failed to download ${filename}`); + } + + const blob = await response.blob(); + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = filename; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + URL.revokeObjectURL(url); + } catch (err) { + error.value = `Failed to download ${filename}: ${err.message}`; + } +} + +async function downloadAllFromServer() { + const filesToDownload = [ + 'pokemon.json', + 'pokemon-allFormsCostumes.json', + 'pokemon-moves.json' + ]; + + for (let i = 0; i < filesToDownload.length; i++) { + setTimeout(() => { + downloadFromServer(filesToDownload[i]); + }, i * 500); + } +} + function formatDate(dateString) { if (!dateString || dateString === 'Never') return 'Never'; return new Date(dateString).toLocaleString();