From 3c244ff27f015df6cfa918c9ba3e192f4d5b62ff Mon Sep 17 00:00:00 2001 From: hallgren Date: Thu, 4 Apr 2013 14:04:31 +0000 Subject: minibar/syntax editor integration improvements Work in progress on preserving the start category and selected target languages when switching between the minibar and the syntax editor. --- src/www/minibar/minibar_input.js | 1 - src/www/minibar/minibar_online.js | 12 +++++++--- src/www/minibar/minibar_translations.js | 41 ++++++++++++--------------------- 3 files changed, 24 insertions(+), 30 deletions(-) (limited to 'src/www/minibar') diff --git a/src/www/minibar/minibar_input.js b/src/www/minibar/minibar_input.js index be58530e7..5cc7c140e 100644 --- a/src/www/minibar/minibar_input.js +++ b/src/www/minibar/minibar_input.js @@ -90,7 +90,6 @@ Input.prototype.change_language=function () { } Input.prototype.set_input_for=function(grammar_url,initial) { - var t=this var local=mi_local(grammar_url) local.put("from",initial.from) local.put("current",{from:initial.from,input:initial.input}) diff --git a/src/www/minibar/minibar_online.js b/src/www/minibar/minibar_online.js index eab571a49..685f9ddb8 100644 --- a/src/www/minibar/minibar_online.js +++ b/src/www/minibar/minibar_online.js @@ -26,12 +26,18 @@ if(window.Editor) // Syntax editor loaded? target: "editor", initial: { grammar: minibar.grammar_menu.value, // hmm startcat: minibar.input.startcat_menu.value, // hmm + languages: minibar.translations.toLangs, // hmm abstr: tree }, lin_action: function(new_input,langFrom) { var grammar_url=editor.menu.ui.grammar_menu.value // hmm - minibar.input.set_input_for(grammar_url,langFrom, - gf_lex(new_input)) + var startcat=editor.menu.ui.startcat_menu.value // hmm + var toLangs=multiMenuSelections(editor.menu.ui.to_menu) // hmm + minibar.input.set_input_for(grammar_url, + {from:langFrom, + startcat:startcat, + input:gf_lex(new_input)}) + minibar.translations.set_toLangs_for(grammar_url,toLangs) //Easier: delete the editor and create a new one next time: clear(editor.container) @@ -59,7 +65,7 @@ if(/^\?\/tmp\//.test(location.search)) { if(args[1]) minibar_options.initial_grammar=args[1]; } else if(window.localStorage) { - var s=localStorage["gf.editor.simple.grammardir"] + var s=window.localStorage["gf.editor.simple.grammardir"] if(s) var editor_dir=JSON.parse(s); } diff --git a/src/www/minibar/minibar_translations.js b/src/www/minibar/minibar_translations.js index ead0f592d..1992078de 100644 --- a/src/www/minibar/minibar_translations.js +++ b/src/www/minibar/minibar_translations.js @@ -29,10 +29,9 @@ function Translations(server,opts) { appendChildren(this.menus,[text(" To: "), this.to_menu]) tom.onchange=bind(this.change_language,this); var o=this.options - if(o.initial_grammar && o.initial_toLangs) { - var local=mt_local(o.initial_grammar); - local.put("toLangs",o.initial_toLangs) - } + if(o.initial_grammar && o.initial_toLangs) + this.set_toLangs_for(o.initial_grammar,o.initial_toLangs) + /* // This seems triggers weird scrolling behavior in Firefox and Chrome: tom.onmouseover=function() { var n=tom.options.length; tom.size=n<12 ? n : 12; } @@ -51,12 +50,10 @@ Translations.prototype.change_grammar=function(grammar) { insertFirst(t.to_menu,option("All","All")); t.to_menu.value="All"; var toLangs=t.local.get("toLangs") - if(toLangs) { + if(toLangs && toLangs.length>0) { t.toLangs=toLangs t.toSet=toSet(toLangs) - var os=to_menu.options - for(var i=0;i