summaryrefslogtreecommitdiff
path: root/src/www/translator/translator.js
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2012-06-19 13:59:19 +0000
committerhallgren <hallgren@chalmers.se>2012-06-19 13:59:19 +0000
commit9bee6a90503b9fd28229726c691ab1475143d9db (patch)
tree069ebb8cd5cb870713c7a3f093d15d8e40260512 /src/www/translator/translator.js
parent3d5efdd2d26f5c411891fc1cf56e6a2ebbf91a66 (diff)
translator: import text from local files
It works in Chrome, Firefox and Opera, but not Safari. (The browser must support the File, FileList and FileReader APIs.)
Diffstat (limited to 'src/www/translator/translator.js')
-rw-r--r--src/www/translator/translator.js40
1 files changed, 30 insertions, 10 deletions
diff --git a/src/www/translator/translator.js b/src/www/translator/translator.js
index 86f8ff4f5..2c2cdab9d 100644
--- a/src/www/translator/translator.js
+++ b/src/www/translator/translator.js
@@ -397,16 +397,30 @@ Translator.prototype.import=function(el) {
t.redraw()
}
function done() {
- var text=inp.value
- var ls=text.split("\n")
- var segs= punct.firstChild.checked
- ? split_punct(text,punctchars.value)
- : paras.firstChild.checked
- ? join_paragraphs(ls)
- : ls
- for(var i in segs)
- t.document.segments.push(new_segment(segs[i]))
- restore()
+ function add_segments(text) {
+ var ls=text.split("\n")
+ var segs= punct.firstChild.checked
+ ? split_punct(text,punctchars.value)
+ : paras.firstChild.checked
+ ? join_paragraphs(ls)
+ : ls
+ for(var i in segs)
+ t.document.segments.push(new_segment(segs[i]))
+ }
+ function import_text(text2) {
+ var text=inp.value
+ add_segments(text2)
+ add_segments(text)
+ restore()
+ }
+ function import_file(ev) { import_text(ev.target.result) }
+ if(files) {
+ var file=files.files[0]
+ var r=new FileReader()
+ r.onload=import_file
+ r.readAsText(file)
+ }
+ else import_text("")
return false
}
var inp=node("textarea",{name:"it",value:"",rows:"10"})
@@ -424,6 +438,12 @@ Translator.prototype.import=function(el) {
wrap("dl",[dt([punct,punctchars]),dt(lines),dt(paras)]),
submit(), button("Cancel",restore)])
+ if(window.File && window.FileList && window.FileReader) {
+ // Allow import from local files, if the browers supports it.
+ // See http://www.html5rocks.com/en/tutorials/file/dndfiles/
+ var files=node("input",{name:"files","type":"file"})
+ e.insertBefore(files,inp)
+ }
t.view.appendChild(e)
e.onsubmit=done
inp.focus();