summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbjorn <bjorn@bringert.net>2008-12-05 19:00:20 +0000
committerbjorn <bjorn@bringert.net>2008-12-05 19:00:20 +0000
commit91cc5f44c6c5d6e445199662ef5dd6339f8f41e1 (patch)
treede9fa9a682e2a94b19d71781417976e0c36962e0 /src
parentd38f56b02557cdd26cd8a82f1f1d1dae61f47667 (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.js21
-rw-r--r--src/server/simple-client.html28
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()" />