diff options
| author | bjorn <bjorn@bringert.net> | 2008-12-05 19:00:20 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-12-05 19:00:20 +0000 |
| commit | 91cc5f44c6c5d6e445199662ef5dd6339f8f41e1 (patch) | |
| tree | de9fa9a682e2a94b19d71781417976e0c36962e0 /src | |
| parent | d38f56b02557cdd26cd8a82f1f1d1dae61f47667 (diff) | |
Update src/server/simple-client.html and gf-server-jsapi.js to work with current pgf server.
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/gf-server-jsapi.js | 21 | ||||
| -rw-r--r-- | src/server/simple-client.html | 28 |
2 files changed, 37 insertions, 12 deletions
diff --git a/src/server/gf-server-jsapi.js b/src/server/gf-server-jsapi.js index bd55c42d3..6729ba528 100644 --- a/src/server/gf-server-jsapi.js +++ b/src/server/gf-server-jsapi.js @@ -1,35 +1,38 @@ var gf = new Object(); var pgf_base_url = "pgf"; -var pgf_grammar = "grammar.pgf"; -gf.translate = function (input,from,to,cat,callback) { +gf.translate = function (grammar,input,from,to,cat,callback) { var args = []; args["input"] = input; args["from"] = from; args["to"] = to; args["cat"] = cat; - gf.callFunction("translate", args, callback); + gf.callFunction(grammar, "translate", args, callback); }; -gf.complete = function (input,from,cat,callback) { +gf.complete = function (grammar,input,from,cat,callback) { var args = []; args["input"] = input; args["from"] = from; args["cat"] = cat; - gf.callFunction("complete", args, callback); + gf.callFunction(grammar, "complete", args, callback); }; -gf.grammar = function (callback) { - gf.callFunction("grammar", [], callback); +gf.grammar = function (grammar, callback) { + gf.callFunction(grammar, "", [], callback); }; -gf.callFunction = function (fun, args, callback) { +gf.grammars = function (callback) { + gf.httpGetJSONP(pgf_base_url, callback); +}; + +gf.callFunction = function (grammar, fun, args, callback) { var query = ""; for (var i in args) { query += (query == "") ? "?" : "&"; query += i + "=" + encodeURIComponent(args[i]); } - var url = pgf_base_url + "/" + pgf_grammar +"/" + fun + query; + var url = pgf_base_url + "/" + grammar +"/" + fun + query; // FIXME: if same domain, use gf.httpGetText gf.httpGetJSONP(url, callback); diff --git a/src/server/simple-client.html b/src/server/simple-client.html index 7c6c0da0f..a525f99f8 100644 --- a/src/server/simple-client.html +++ b/src/server/simple-client.html @@ -9,6 +9,10 @@ <script type="text/javascript" src="gf-server-jsapi.js"></script> <script type="text/javascript" src="translator.js"></script> <script type="text/javascript"> + function getGrammar () { + return document.getElementById('grammar').value; + } + function updateTranslation () { var input = document.getElementById('inputText').value; var fromLang = document.getElementById('fromLang').value; @@ -19,7 +23,24 @@ clearTranslation(); output.appendChild(formatTranslation(translation)); }; - gf.translate(input, fromLang, toLang, '', callback); + gf.translate(getGrammar(), input, fromLang, toLang, '', callback); + } + + function updateGrammars () { + gf.grammars(populateGrammars); + } + + function populateGrammars (grammars) { + var l = document.getElementById('grammar'); + var langs = grammar.languages; + for (var i in grammars) { + addOption(l, grammars[i].name, grammars[i].name); + } + updateLanguages(); + } + + function updateLanguages () { + gf.grammar(getGrammar(), populateLangs); } function populateLangs (grammar) { @@ -44,7 +65,7 @@ clearCompletion(); completions.appendChild(formatCompletions(output)); }; - gf.complete(input, fromLang, '', callback); + gf.complete(getGrammar(), input, fromLang, '', callback); // } } @@ -64,7 +85,7 @@ } function initialize() { - gf.grammar(populateLangs); + updateGrammars(); } </script> <title>AJAX GF Translator</title> @@ -76,6 +97,7 @@ <input type="text" id="inputText" value="" size="50" /> </p> <p> + <label>Grammar: <select id="grammar" onchange="updateLanguages()"></select></label> <label>From: <select id="fromLang" onchange="update()"><option value="" selected="selected">Any language</option></select></label> <label>To: <select id="toLang" onchange="update()"><option value="" selected="selected">All languages</option></select></label> <input type="button" value="Completions" onclick="updateCompletion()" /> |
