mirror of
https://github.com/urbit/shrub.git
synced 2024-12-25 13:04:17 +03:00
webterm: support downloading files
For %sav and %sag blits.
This commit is contained in:
parent
7a40b1137e
commit
f950d710c3
@ -1,6 +1,7 @@
|
|||||||
:: blit: runtime blit structure
|
:: blit: runtime blit structure
|
||||||
::
|
::
|
||||||
~% %mar-blit ..is ~
|
/+ base64
|
||||||
|
::
|
||||||
|_ =blit:dill
|
|_ =blit:dill
|
||||||
++ grad %noun
|
++ grad %noun
|
||||||
:: +grab: convert from
|
:: +grab: convert from
|
||||||
@ -12,7 +13,6 @@
|
|||||||
:: +grow: convert to
|
:: +grow: convert to
|
||||||
::
|
::
|
||||||
++ grow
|
++ grow
|
||||||
~% %blit-grow ..grow ~
|
|
||||||
|%
|
|%
|
||||||
++ noun blit
|
++ noun blit
|
||||||
++ json
|
++ json
|
||||||
@ -25,9 +25,19 @@
|
|||||||
%hop (numb p.blit)
|
%hop (numb p.blit)
|
||||||
%lin s+(crip (tufa p.blit))
|
%lin s+(crip (tufa p.blit))
|
||||||
%mor b+&
|
%mor b+&
|
||||||
%sag (pairs 'path'^(path p.blit) 'file'^s+(jam q.blit) ~)
|
|
||||||
%sav (pairs 'path'^(path p.blit) 'file'^s+q.blit ~)
|
|
||||||
%url s+p.blit
|
%url s+p.blit
|
||||||
|
::
|
||||||
|
%sag
|
||||||
|
%- pairs
|
||||||
|
:~ 'path'^(path p.blit)
|
||||||
|
'file'^s+(en:base64 (as-octs:mimes:html (jam q.blit)))
|
||||||
|
==
|
||||||
|
::
|
||||||
|
%sav
|
||||||
|
%- pairs
|
||||||
|
:~ 'path'^(path p.blit)
|
||||||
|
'file'^s+(en:base64 (as-octs:mimes:html q.blit))
|
||||||
|
==
|
||||||
::
|
::
|
||||||
%klr
|
%klr
|
||||||
:- %a
|
:- %a
|
||||||
|
5
pkg/interface/package-lock.json
generated
5
pkg/interface/package-lock.json
generated
@ -4876,6 +4876,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"file-saver": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw=="
|
||||||
|
},
|
||||||
"file-uri-to-path": {
|
"file-uri-to-path": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"codemirror": "^5.55.0",
|
"codemirror": "^5.55.0",
|
||||||
"css-loader": "^3.5.3",
|
"css-loader": "^3.5.3",
|
||||||
|
"file-saver": "^2.0.2",
|
||||||
"formik": "^2.1.4",
|
"formik": "^2.1.4",
|
||||||
"lodash": "^4.17.15",
|
"lodash": "^4.17.15",
|
||||||
"markdown-to-jsx": "^6.11.4",
|
"markdown-to-jsx": "^6.11.4",
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import Share from './components/lib/sole';
|
import { saveAs } from 'file-saver';
|
||||||
|
|
||||||
export default class Store {
|
export default class Store {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.state = this.initialState();
|
this.state = this.initialState();
|
||||||
@ -42,7 +43,14 @@ export default class Store {
|
|||||||
this.state.lines.push('');
|
this.state.lines.push('');
|
||||||
this.setState({ lines: this.state.lines });
|
this.setState({ lines: this.state.lines });
|
||||||
break;
|
break;
|
||||||
//TODO file downloads for %sag and %sav
|
case 'sag':
|
||||||
|
blit.sav = blit.sag;
|
||||||
|
case 'sav':
|
||||||
|
let name = blit.sav.path.split('/').slice(-2).join('.');
|
||||||
|
let buff = new Buffer(blit.sav.file, 'base64');
|
||||||
|
let blob = new Blob([buff], {type: 'application/octet-stream'});
|
||||||
|
saveAs(blob, name);
|
||||||
|
break;
|
||||||
case 'url':
|
case 'url':
|
||||||
//TODO too invasive? just print as <a>?
|
//TODO too invasive? just print as <a>?
|
||||||
window.open(blit.url);
|
window.open(blit.url);
|
||||||
|
Loading…
Reference in New Issue
Block a user