diff options
| author | Alon Levy <alon@pobox.com> | 2014-12-16 17:37:42 +0200 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2014-12-16 17:37:42 +0200 |
| commit | ade19de410e0a789a921ec1666b278b2a64176d6 (patch) | |
| tree | c4c54b106de93609ca7bb70a20fd4be696715dbe /src/client/buttons.js | |
| parent | c7d026b1d504323a8c61d51b726e5e8d2337fc4b (diff) | |
moving files around after repository merger
Diffstat (limited to 'src/client/buttons.js')
| -rw-r--r-- | src/client/buttons.js | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/client/buttons.js b/src/client/buttons.js new file mode 100644 index 00000000..860c8573 --- /dev/null +++ b/src/client/buttons.js @@ -0,0 +1,82 @@ +"use strict" + +define(['jquery', 'FileSaver', 'rz_core'], function ($, saveAs, rz_core) { +$('.tutorial').click(function(){}); + +var key="#47989379"; + + +$('.save a').click(function(){ + var json = rz_core.graph.save_to_json(); + console.log('saving to local storage ' + json.length + ' bytes'); + localStorage.setItem(key, json); +}); + +$('.export').click(function() { + var json = rz_core.graph.save_to_json(); + var filename = 'graph.json'; + var blob = new Blob([json], {type: 'application/json'}); + console.log('saving ' + json.length + ' bytes to ' + filename); + saveAs(blob, filename); +}); + +$('.url-copy a').click(function() { + var json = rz_core.graph.save_to_json(); + // TODO use jquery BBQ $.param({json: json}); + var encoded = document.location.origin + '/?json=' + encodeURIComponent(json); + window.prompt('Copy to clipboard: Ctrl-C, Enter (or Cmd-C for Mac)', encoded); +}); + +var really_load = function() { + if (!rz_core.graph.empty()) { + return confirm('All unsaved changes will be deleted, are you sure?'); + } + return true; +} + +$('.file-import').on('change', function(event) { + var file = event.target.files[0]; + var reader; + + if (!really_load()) { + return; + } + if (file === undefined) { + return; + } + console.log(file); + reader = new FileReader(); + reader.onload = (function(theFile) { + return function(e) { + var result = e.target.result; + if (e.target.readyState === FileReader.DONE) { + console.log('done reading ' + theFile.name); + console.log('got #' + result.length + ' bytes in ' + typeof(result)); + rz_core.load_from_json(result); + } + } + })(file); + reader.readAsText(file, "text/javascript"); +}); + +$('.local-storage-load a').click(function(){ + if (!really_load()) { + return; + } + var json_blob = localStorage.getItem(key) + rz_core.load_from_json(json_blob); +}); + +var logout_button = $('#logout-button'); +logout_button.click(function() { + $.ajax({ type: "POST", url: '/logout'}); // server should redirect back to /login +}); + +$('a.save-history').click(function() { + if (rz_core.graph.history === undefined) { + throw "History is undefined"; + } + rz_core.graph.history.save_to_file(); +}); +return {'buttons': 'nothing here'}; +}); // define |
