From f53549e4c2668ca268c8e31ef4c7cf3718fe08b5 Mon Sep 17 00:00:00 2001 From: piernov Date: Mon, 2 May 2016 15:50:14 +0200 Subject: Move saveGame()/downGame() to its own JS file --- js/savegame.js | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 js/savegame.js (limited to 'js/savegame.js') diff --git a/js/savegame.js b/js/savegame.js new file mode 100644 index 0000000..2a83f77 --- /dev/null +++ b/js/savegame.js @@ -0,0 +1,7 @@ +function saveGame() { + sendRequest("craftmine.php", "op=saveGame"); +} + +function downGame() { + window.open("craftmine.php?op=downSave", "_blank"); +} -- cgit v1.2.3-70-g09d2 From 8c0851a7d4db8be1bac99e034c745a45c64cc3ba Mon Sep 17 00:00:00 2001 From: piernov Date: Mon, 2 May 2016 15:51:08 +0200 Subject: Add various JS functions to work with game save --- js/savegame.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'js/savegame.js') diff --git a/js/savegame.js b/js/savegame.js index 2a83f77..438be0a 100644 --- a/js/savegame.js +++ b/js/savegame.js @@ -1,3 +1,35 @@ +function listSaves() { + sendRequest("craftmine.php", "op=listSaves", function(ret) { + var tmphtml="" + for(var i=0; i" + ret[i] + "\n"; + } + console.log(tmphtml); + document.getElementById("listsaves").innerHTML = tmphtml; + }); +} + +function getCheckedSave() { + var radios = document.getElementsByName('saveRadio'); + for (var i = 0, length = radios.length; i < length; i++) { + if (radios[i].checked) return radios[i].parentNode.textContent; + } + return -1; +} + +function loadSave() { + sendRequest("craftmine.php", "op=loadSave&filename="+getCheckedSave(), function(ret) { + initCraftMine(); + }); +} + +function downloadSave() { + window.open("craftmine.php?op=downSave&filename="+getCheckedSave(), "_blank"); +} + +function deleteSave() { +} + function saveGame() { sendRequest("craftmine.php", "op=saveGame"); } -- cgit v1.2.3-70-g09d2 From 0b72114561a685b247922a93c576edabd4d3b09e Mon Sep 17 00:00:00 2001 From: piernov Date: Mon, 2 May 2016 15:59:16 +0200 Subject: Add ability to delete a save Doesn't work because idk which method to use and I don't have the PHP doc right now --- craftmine.php | 1 + inc/messages.inc | 2 ++ inc/savegame.inc | 7 +++++++ js/savegame.js | 3 +++ 4 files changed, 13 insertions(+) (limited to 'js/savegame.js') diff --git a/craftmine.php b/craftmine.php index 28bb49d..9a5d3d7 100644 --- a/craftmine.php +++ b/craftmine.php @@ -51,6 +51,7 @@ switch($op) { case "downSave": downSave(); break; case "listSaves": listSaves(); break; case "loadSave": loadSave(); break; + case "deleteSave": deleteSave(); break; default: reportBadRequest(); } diff --git a/inc/messages.inc b/inc/messages.inc index 955c0a0..5574bcf 100644 --- a/inc/messages.inc +++ b/inc/messages.inc @@ -10,6 +10,8 @@ $messages = array( "gamesave_ok" => "Game saved.", "gamesave_error" => "An error occured when trying to save the game.", "gamesave_not_found" => "Couldn't find the specified save file.", + "gamesave_delete_error" => "Couldn't delete the specified save file.", + "gamesave_delete_success" => "Game save successfully removed from server", ); function sendMessage($type, $msg) { diff --git a/inc/savegame.inc b/inc/savegame.inc index 79b1dae..eb4134f 100644 --- a/inc/savegame.inc +++ b/inc/savegame.inc @@ -71,6 +71,13 @@ function parseSave($xml, &$table) { // Passing $table by reference } } +function deleteSave() { + if(empty($_POST["filename"])) return; + $filename = $_POST["filename"]; + if(rm_file(SAVEDIR + "/" + $filename)) sendError("gamesave_delete_failed"); // TODO: find the correct method for removing a fileā€¦ + else sendInfo("gamesave_delete_success"); +} + function loadSave() { if(empty($_POST["filename"])) return; $xml = simplexml_load_file(SAVEDIR . "/" . $_POST["filename"]); diff --git a/js/savegame.js b/js/savegame.js index 438be0a..4a08f91 100644 --- a/js/savegame.js +++ b/js/savegame.js @@ -28,6 +28,9 @@ function downloadSave() { } function deleteSave() { + sendRequest("craftmine.php", "op=deleteSave&filename="+getCheckedSave(), function(ret) { + listSaves(); + }); } function saveGame() { -- cgit v1.2.3-70-g09d2 From 80f61cc5216fe020f82fc303317e4098acb5d21d Mon Sep 17 00:00:00 2001 From: piernov Date: Wed, 4 May 2016 14:27:59 +0200 Subject: AJAX upload file --- js/savegame.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'js/savegame.js') diff --git a/js/savegame.js b/js/savegame.js index 4a08f91..d5a9ba1 100644 --- a/js/savegame.js +++ b/js/savegame.js @@ -24,7 +24,9 @@ function loadSave() { } function downloadSave() { - window.open("craftmine.php?op=downSave&filename="+getCheckedSave(), "_blank"); + var filename = getCheckedSave(); + if(filename == -1) downGame(); + else window.open("craftmine.php?op=downSave&filename="+getCheckedSave(), "_blank"); } function deleteSave() { @@ -40,3 +42,18 @@ function saveGame() { function downGame() { window.open("craftmine.php?op=downSave", "_blank"); } + +function uploadSave() { + var selectedFile = document.getElementById("selectedFile"); + if(selectedFile.files[0].size > 2000000) { + showError("File is too big."); + return; + } + + var form = new FormData(); // Doesn't work with IE < 10 (and Opera Mini), but, as always, who cares? + form.append("savefile", selectedFile.files[0]); + + sendRequest("upload.php", form, function(ret) { + console.log(ret); + }, true); +} -- cgit v1.2.3-70-g09d2 From acfc0e766e266e60302a1cf1f4b18da759eb0243 Mon Sep 17 00:00:00 2001 From: piernov Date: Sat, 7 May 2016 13:30:20 +0200 Subject: Change save buttons layout --- js/savegame.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'js/savegame.js') diff --git a/js/savegame.js b/js/savegame.js index d5a9ba1..c069b5c 100644 --- a/js/savegame.js +++ b/js/savegame.js @@ -2,7 +2,13 @@ function listSaves() { sendRequest("craftmine.php", "op=listSaves", function(ret) { var tmphtml="" for(var i=0; i" + ret[i] + "\n"; + tmphtml += "
"; + tmphtml += ""; + tmphtml += ""; + tmphtml += ""; + tmphtml += ""; + + tmphtml += "
" } console.log(tmphtml); document.getElementById("listsaves").innerHTML = tmphtml; -- cgit v1.2.3-70-g09d2 From 14ee8b1962fe3ce332e0de5fb96ae3f342187f94 Mon Sep 17 00:00:00 2001 From: piernov Date: Sun, 8 May 2016 13:42:22 +0200 Subject: Update save list on save and upload + fix get checked save with new layout --- js/savegame.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'js/savegame.js') diff --git a/js/savegame.js b/js/savegame.js index c069b5c..98d973b 100644 --- a/js/savegame.js +++ b/js/savegame.js @@ -10,7 +10,6 @@ function listSaves() { tmphtml += "" } - console.log(tmphtml); document.getElementById("listsaves").innerHTML = tmphtml; }); } @@ -18,7 +17,7 @@ function listSaves() { function getCheckedSave() { var radios = document.getElementsByName('saveRadio'); for (var i = 0, length = radios.length; i < length; i++) { - if (radios[i].checked) return radios[i].parentNode.textContent; + if (radios[i].checked) return radios[i].parentNode.parentNode.childNodes.item(1).value; } return -1; } @@ -42,7 +41,9 @@ function deleteSave() { } function saveGame() { - sendRequest("craftmine.php", "op=saveGame"); + sendRequest("craftmine.php", "op=saveGame", function(ret) { + listSaves(); + }); } function downGame() { @@ -60,6 +61,6 @@ function uploadSave() { form.append("savefile", selectedFile.files[0]); sendRequest("upload.php", form, function(ret) { - console.log(ret); + listSaves(); }, true); } -- cgit v1.2.3-70-g09d2