added "save" button
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 20 Jul 2021 15:20:17 +0000 (10:20 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 20 Jul 2021 15:20:17 +0000 (10:20 -0500)
static/src/index.js
templates/index.html

index 3b0b91ad5dd92e09df2aa568a23bacbff0379cf0..b4b786d113f1b24690d8b719778add278d1522f7 100644 (file)
@@ -143,6 +143,28 @@ function handle_dragover(e) {
     return false;
 }
 
+function prompt_download() {
+    let editor = ace.edit('code-editor');
+    let code = editor.getValue();
+
+    let blob = new Blob([ code ], {
+        type: 'text/plain'
+    });
+
+    let download_link = document.createElement('a');
+    download_link.download = `onyx-${Date.now()}.onyx`;
+    download_link.href = window.URL.createObjectURL(blob);
+    download_link.onclick = function(e) {
+        // revokeObjectURL needs a delay to work properly
+        setTimeout(() => {
+            window.URL.revokeObjectURL(this.href);
+        }, 1500);
+    };
+
+    download_link.click();
+    download_link.remove();
+}
+
 window.onload = () => {
     let editor = ace.edit('code-editor');
 
index 4191255d8f0348586ceccbd8ac1d1e228326ad56..b2c6ed052bfaeb044713fcfff4264a554c7c77ec 100644 (file)
@@ -31,6 +31,7 @@
                     <option value="tomorrow-night-bright">Tomorrow Night Bright</option>
                 </select>
 
+                <button onclick="prompt_download()">Save</button>
                 <button onclick="submit_code()">Run</button>
                 <button onclick="kill_code()">Stop</button>