gfse: added a button to go directly from the editor to the minibar

If there is an error in the grammar, the error message is shown below the
grammar instead.
Also: GFServer.hs now returns compiler output in a JSON structure instead of
as a HTML page.
This commit is contained in:
hallgren
2012-02-13 15:24:05 +00:00
parent 53e5308d74
commit c4406c146a
3 changed files with 69 additions and 16 deletions

View File

@@ -148,7 +148,8 @@ function draw_grammar(g) {
function draw_namebar(g,files) {
return div_class("namebar",
[table([tr([td(draw_name(g)),
td_right([upload_button(g),
td_right([minibar_button(g),
compile_button(g),
draw_plainbutton(g,files),
draw_closebutton(g)])])])])
}
@@ -180,9 +181,35 @@ function draw_plainbutton(g,files) {
return b;
}
function upload_button(g) {
var b=button("Compile",function(){upload(g);});
b.title="Upload the grammar to the server to check it in GF and test it in the minibar";
function show_compile_error(res) {
var dst=element("compiler_output")
if(dst) {
dst.innerHTML="";
var minibarlink=a(res.minibar_url,[text("Minibar")])
if(res.errorcode=="OK")
dst.appendChild(wrap("h3",text("OK")))
else
appendChildren(dst,
[node("h3",{"class":"error_message"},
[text(res.errorcode)]),
wrap("pre",text(res.command)),
wrap("pre",text(res.output))])
}
}
function compile_button(g) {
var b=button("Compile",function(){upload(g,show_compile_error);});
b.title="Upload the grammar to the server to check it in GF for errors";
return b;
}
function minibar_button(g) {
function goto_minibar(res) {
show_compile_error(res);
if(res.errorcode=="OK") location.href=res.minibar_url;
}
var b=button("Minibar",function(){upload(g,goto_minibar);});
b.title="Upload the grammar and test it in the minibar";
return b;
}