From bcf0809cf26b58b8938dd061f6ee0e3af547dedd Mon Sep 17 00:00:00 2001 From: Jan Gerber Date: Sat, 7 Nov 2009 17:44:50 +0000 Subject: [PATCH] TimedText javascript interface to upload srt files, js2 part --- js2/mwEmbed/libTimedText/mvTimeTextEdit.js | 98 ++++++++++++++++++++++ js2/mwEmbed/mv_embed.js | 5 +- js2/remoteMwEmbed.js | 4 +- 3 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 js2/mwEmbed/libTimedText/mvTimeTextEdit.js diff --git a/js2/mwEmbed/libTimedText/mvTimeTextEdit.js b/js2/mwEmbed/libTimedText/mvTimeTextEdit.js new file mode 100644 index 0000000000..622ce76904 --- /dev/null +++ b/js2/mwEmbed/libTimedText/mvTimeTextEdit.js @@ -0,0 +1,98 @@ +/* + * JS2-style edit.js + */ + +// Setup configuration vars (if not set already) +if( !mwAddMediaConfig ) + var mwAddMediaConfig = {}; + +var mvTimedTextEdit = {}; + +js2AddOnloadHook( function() { + function getSubtitle(f) { + var name = f.files[0].name; + var srtData = f.files[0].getAsBinary(); + srtData = srtData.replace('\r\n', '\n'); + return srtData; + } + function uploadSubtitles() { + do_api_req({ + 'data': { + 'meta' : 'siteinfo', + 'siprop' : 'languages' + } + }, function( langDataRaw ) { + var langData = {}; + var languageSelect = ''; + var cBtn = {}; + cBtn[ gM('mwe-cancel') ] = function(){ + $j(this).dialog('close'); + } + cBtn[ gM('mwe-ok') ] = function(){ + var file = $j('#timed_text_file_upload'); + var langKey = file[0].files[0].name.split('.'); + var extension = langKey.pop(); + langKey = langKey.pop(); + var mimeTypes = { + 'srt': 'text/x-srt', + 'cmml': 'text/cmml' + } + if( !mimeTypes[ extension ] ){ + js_log('Error: unknown extension:'+ extension); + } + //get language from form + langKey = $j('#timed_text_language').val(); + + if(extension == "srt") { + var srt = getSubtitle(file[0]); + $j(this).html("saving..."); + $j('.ui-dialog-buttonpane').remove(); + + var editToken = $j('input[name=wpEditToken]').val(); + var title = wgTitle.split('.'); + title.pop(); + title.pop(); + title = title.join('.') + '.' + langKey + '.srt'; + do_api_req({ + 'data': { + 'action' : 'edit', + 'title' : title, + 'text' : srt, + 'token': editToken + } + }, function(dialog) { + return function( result ) { + document.location.href = wgArticlePath.replace('/$1', '?title=' + title + '&action=edit'); + $j(dialog).dialog('close'); + }}(this) + ); + } else { + $j(this).html("error only srt works right now."); + } + } + $j.addDialog("Select Subtitle to upload", + '
' + languageSelect, + cBtn); + $j('#timed_text_file_upload').change(function(ev) { + var langKey = this.files[0].name.split('.'); + var extension = langKey.pop(); + langKey = langKey.pop(); + $j('#timed_text_language').val( langKey ); + }); + }); + } + var button = $j('