summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2012-04-18 16:26:49 +0000
committerhallgren <hallgren@chalmers.se>2012-04-18 16:26:49 +0000
commitff812613c87ba1cef90517fb130266321863344c (patch)
tree3907de805e93af7bed6ae25dd3387a45ebffa952 /src
parent6dc12cfed903133f03e8160697e5740ac23d1ca6 (diff)
minibar: add buttons to use generated translations as input
This functionality was available in the origial Fridge Poetry app, but has been missing in minibar until now.
Diffstat (limited to 'src')
-rw-r--r--src/www/minibar/minibar_input.js14
-rw-r--r--src/www/minibar/minibar_translations.js38
2 files changed, 35 insertions, 17 deletions
diff --git a/src/www/minibar/minibar_input.js b/src/www/minibar/minibar_input.js
index 7449cbbf7..af3d5054e 100644
--- a/src/www/minibar/minibar_input.js
+++ b/src/www/minibar/minibar_input.js
@@ -119,13 +119,19 @@ Input.prototype.get_completions=function() {
}
Input.prototype.show_completions=function(complete_output) {
- with(this) {
+ var self=this;
+ function switch_input(lin) {
+ with(self) {
+ local.put("current",{from:lin.to,input:lin.text.split(" ")})
+ from_menu.value=lin.to;
+ change_language()
+ }
+ }
+ with(self) {
//debug("show_completions ");
var completions=complete_output[0].completions;
var emptycnt=add_completions(completions)
- if(true/*emptycnt>0*/)
- translations.translateFrom(current,startcat_menu.value);
- else translations.clear();
+ translations.translateFrom(current,startcat_menu.value,switch_input);
if(surface.typed && emptycnt==completions.length) {
if(surface.typed.value=="") remove_typed_input();
}
diff --git a/src/www/minibar/minibar_translations.js b/src/www/minibar/minibar_translations.js
index 612b5d2ea..167417844 100644
--- a/src/www/minibar/minibar_translations.js
+++ b/src/www/minibar/minibar_translations.js
@@ -42,9 +42,10 @@ Translations.prototype.clear=function() {
this.main.innerHTML="";
}
-Translations.prototype.translateFrom=function(current,startcat) {
+Translations.prototype.translateFrom=function(current,startcat,lin_action) {
this.current=current;
this.startcat=startcat;
+ this.lin_action=lin_action;
this.get_translations();
}
@@ -59,18 +60,24 @@ Translations.prototype.get_translations=function() {
}
}
-Translations.prototype.tdt=function(tree_btn,txt) {
- with(this) {
- return options.show_trees ? tda([tree_btn,txt]) : td(txt);
- }
-}
-
Translations.prototype.target_lang=function() {
with(this) return langpart(to_menu.value,grammar.name);
}
Translations.prototype.show_translations=function(translationResults) {
- with(this) {
+ var self=this;
+ function tdt(tree_btn,s,action) {
+ var txt=text(s);
+ if(action) {
+ txt=node("span",{onclick:action},[txt])
+ //txt=button(s,action)
+ }
+ return self.options.show_trees ? tda([tree_btn,text(" "),txt]) : td(txt)
+ }
+ function act(lin) {
+ return self.lin_action ? function() { self.lin_action(lin) } : null
+ }
+ with(self) {
var trans=main;
//var to=target_lang(); // wrong
var to=to_menu.value;
@@ -96,16 +103,21 @@ Translations.prototype.show_translations=function(translationResults) {
tr([th(text("Abstract: ")),
tdt(node("span",{},[abstree_button(t.tree),
alignment_button(t.tree)]),
- text(" "+t.tree))]));
+ t.tree)]));
for(var i=0;i<lin.length;i++) {
if(lin[i].to==to)
trans.single_translation.push(lin[i].text);
if(lin[i].to==current.from && lin[i].brackets)
bra=lin[i].brackets;
- if(to=="All" || lin[i].to==to)
- tbody.appendChild(tr([th(text(langpart(lin[i].to,grammar.name)+": ")),
- tdt(parsetree_button(t.tree,lin[i].to),
- text(lin[i].text))]));
+ if(to=="All" || lin[i].to==to) {
+ var langcode=langpart(lin[i].to,grammar.name)
+ //var hdr=text(langcode+": ")
+ var hdr=button(langcode,act(lin[i]))
+ //hdr.disabled=lin[i].to==current.from
+ var btn=parsetree_button(t.tree,lin[i].to)
+ tbody.appendChild(tr([th(hdr),
+ tdt(btn,lin[i].text)]));
+ }
}
trans.appendChild(wrap("table",tbody));
}