summaryrefslogtreecommitdiff
path: root/src/editor/simple/cloud2.js
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2011-10-12 17:03:54 +0000
committerhallgren <hallgren@chalmers.se>2011-10-12 17:03:54 +0000
commit44d1a5a9f71b03d9aceeccd760a63fcdc45f8bad (patch)
treed51076a708997d6f1af6ac0deefd535bbc25f804 /src/editor/simple/cloud2.js
parent0aba45560d2033c37c3d2e876e6f3ef89e1554d6 (diff)
Improvements of "gf -server" mode and related setup
"gf -server" mode now contains everything needed to run the minibar and the grammar editor (including example-based grammar writing). The Setup.hs script installs the required files where gf -server can find them. These files have been moved to a new directory: src/www. The separate server program pgf-http is now obsolete.
Diffstat (limited to 'src/editor/simple/cloud2.js')
-rw-r--r--src/editor/simple/cloud2.js159
1 files changed, 0 insertions, 159 deletions
diff --git a/src/editor/simple/cloud2.js b/src/editor/simple/cloud2.js
deleted file mode 100644
index e32749dc1..000000000
--- a/src/editor/simple/cloud2.js
+++ /dev/null
@@ -1,159 +0,0 @@
-
-function with_dir(cont) {
- var dir=local.get("dir","");
- if(/^\/tmp\//.test(dir)) cont(dir);
- else ajax_http_get("/new",
- function(dir) {
- local.put("dir",dir);
- cont(dir);
- });
-}
-
-function remove_cloud_grammar(g) {
- var dir=local.get("dir")
- if(dir && g.unique_name) {
- var path=g.unique_name+".json"
- gfcloud("rm",{file:path},debug);
- }
-}
-
-// Upload the grammar to the server and check it for errors
-function upload(g) {
- function upload2(dir) {
- var form=node("form",{method:"post",action:"/cloud"},
- [hidden("dir",dir),hidden("command","make"),
- hidden(g.basename+".gf",show_abstract(g))])
- var files = [g.basename+".gf"]
- for(var i in g.concretes) {
- var cname=g.basename+g.concretes[i].langcode+".gf";
- files.push(cname);
- form.appendChild(hidden(cname,
- show_concrete(g.basename)(g.concretes[i])));
- }
- editor.appendChild(form);
- form.submit();
- form.parentNode.removeChild(form);
- }
-
- function upload3(message) { if(message) alert(message); }
-
- with_dir(upload2)
-}
-
-// Upload the grammar to store it in the cloud
-function upload_json(cont) {
- function upload3(resptext,status) {
- local.put("json_uploaded",Date.now());
- //debug("Upload complete")
- if(cont) cont();
- else {
- var sharing=element("sharing");
- if(sharing) sharing.innerHTML=resptext;
- }
- }
- function upload2(dir) {
- var prefix=dir.substr(10)+"-" // skip "/tmp/gfse."
- //debug("New form data");
- //var form=new FormData(); // !!! Doesn't work on Android 2.2!
- var form={dir:dir};
- //debug("Preparing form data");
- for(var i=0;i<local.count;i++) {
- var g=local.get(i,null);
- if(g) {
- if(!g.unique_name) {
- g.unique_name=prefix+i;
- save_grammar(g)
- }
- //form.append(g.unique_name+".json",JSON.stringify(g));
- form[encodeURIComponent(g.unique_name+".json")]=JSON.stringify(g)
- }
- }
- //debug("Upload to "+prefix);
- ajax_http_post("/cloud","command=upload"+encodeArgs(form),upload3,cont)
- }
-
- with_dir(upload2);
-}
-
-function download_json() {
- var dir=local.get("dir");
- var index=grammar_index();
- var downloading=0;
-
- function get_list(ok,err) { gfcloud("ls",{},ok,err) }
-
- function get_file(file,ok,err) {
- downloading++;
- gfcloud("download",{file:encodeURIComponent(file)},ok,err);
- }
-
- function file_failed(errormsg,status) {
- debug(errormsg)
- downloading--;
- }
- function file_downloaded(grammar) {
- downloading--;
- var newg=JSON.parse(grammar);
- debug("Downloaded "+newg.unique_name)
- var i=index[newg.unique_name];
- if(i!=undefined) merge_grammar(i,newg)
- else {
- debug("New")
- newg.index=null;
- save_grammar(newg);
- }
- if(downloading==0) done()
- }
-
- function done() {
- setTimeout(function(){location.href="."},2000);
- }
-
- function download_files(ls) {
- local.put("current",0);
- if(ls) {
- //debug("Downloading "+ls);
- var files=ls.split(" ");
- cleanup_deleted(files);
- for(var i in files) get_file(files[i],file_downloaded,file_failed);
- }
- else {
- debug("No grammars in the cloud")
- done()
- }
- }
-
- get_list(download_files);
-}
-
-function link_directories(newdir,cont) {
- gfcloud("link_directories",{newdir:newdir},cont)
-}
-
-/* -------------------------------------------------------------------------- */
-
-// Request GF cloud service
-function gfcloud(cmd,args,cont,err) {
- with_dir(function(dir) {
- var enc=encodeURIComponent;
- var url="/cloud?dir="+enc(dir)+"&command="+enc(cmd)+encodeArgs(args)
- ajax_http_get(url,cont,err)
- })
-}
-
-// Send a command to the GF shell
-function gfshell(cmd,cont) {
- with_dir(function(dir) {
- var enc=encodeURIComponent;
- ajax_http_get("/gfshell?dir="+enc(dir)+"&command="+enc(cmd),cont)
- })
-}
-
-// Check the syntax of an expression
-function check_exp(s,cont) {
- function check(gf_message) {
- //debug("cc "+s+" = "+gf_message);
- cont(/parse error/.test(gf_message) ? "parse error" : null);
- }
- gfshell("cc "+s,check);
-}