diff options
author | notoraptor <notoraptor@users.noreply.github.com> | 2019-07-17 15:16:43 -0400 |
---|---|---|
committer | Philip Paquette <pcpaquette@gmail.com> | 2019-07-17 15:16:43 -0400 |
commit | 2701df1e3b03c7c605ccf212a02987d53fbd0609 (patch) | |
tree | d3637573d8585e32914c33cbd03ec0baf9c68ae3 /diplomacy/web/src/gui/utils/saveGameToDisk.js | |
parent | e9872eea32d4f66b9c7ca8c14d530c18f6c18506 (diff) |
[web] Make button "Delete all" remove only orders from current se… (#49)
- Make button "Delete all" remove only orders from current selected power.
- Reorganize code
- [web] Remove bugged and useless function gameReloaded() from game page.
- This function caused error `engine.getPhaseType is not a function` for
games with deadlines.
- Move function saveGameToDisk into its own file.
- [web] Add documentation to methods involved in orders management to help understand what happens.
- Move methods getServerOrders() from game GUI component to game engine object.
- Rename method onSetNoOrders to onSetEmptyOrdersSet.
- Rename property in PowerActionsForm: onNoOrders => onPass.
- [web] Update sending orders to send request clearOrders when local orders list is null.
- Renamed local file:
- components/power_order => power_orders
- forms/power_actions_form => power_order_creation_form
- Move power orders buttons bar to a separate file:
- components/power_orders_actions_bar
- [web] Improve messages about local/server defined orders.
Diffstat (limited to 'diplomacy/web/src/gui/utils/saveGameToDisk.js')
-rw-r--r-- | diplomacy/web/src/gui/utils/saveGameToDisk.js | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/diplomacy/web/src/gui/utils/saveGameToDisk.js b/diplomacy/web/src/gui/utils/saveGameToDisk.js new file mode 100644 index 0000000..aae69a4 --- /dev/null +++ b/diplomacy/web/src/gui/utils/saveGameToDisk.js @@ -0,0 +1,18 @@ +export function saveGameToDisk(game, onError) { + if (game.client) { + game.client.save() + .then((savedData) => { + const domLink = document.createElement('a'); + domLink.setAttribute( + 'href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(JSON.stringify(savedData))); + domLink.setAttribute('download', `${game.game_id}.json`); + domLink.style.display = 'none'; + document.body.appendChild(domLink); + domLink.click(); + document.body.removeChild(domLink); + }) + .catch(exc => onError(`Error while saving game: ${exc.toString()}`)); + } else { + onError(`Cannot save this game.`); + } +} |