summaryrefslogtreecommitdiff
path: root/src/client/buttons.js
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2014-12-16 17:37:42 +0200
committerAlon Levy <alon@pobox.com>2014-12-16 17:37:42 +0200
commitade19de410e0a789a921ec1666b278b2a64176d6 (patch)
treec4c54b106de93609ca7bb70a20fd4be696715dbe /src/client/buttons.js
parentc7d026b1d504323a8c61d51b726e5e8d2337fc4b (diff)
moving files around after repository merger
Diffstat (limited to 'src/client/buttons.js')
-rw-r--r--src/client/buttons.js82
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