http://www.mediawiki.org/wiki/Special:Code/MediaWiki/58721
Revision: 58721 Author: j Date: 2009-11-07 17:44:50 +0000 (Sat, 07 Nov 2009) Log Message: ----------- TimedText javascript interface to upload srt files, js2 part Modified Paths: -------------- trunk/phase3/js2/mwEmbed/mv_embed.js trunk/phase3/js2/remoteMwEmbed.js Added Paths: ----------- trunk/phase3/js2/mwEmbed/libTimedText/mvTimeTextEdit.js Added: trunk/phase3/js2/mwEmbed/libTimedText/mvTimeTextEdit.js =================================================================== --- trunk/phase3/js2/mwEmbed/libTimedText/mvTimeTextEdit.js (rev 0) +++ trunk/phase3/js2/mwEmbed/libTimedText/mvTimeTextEdit.js 2009-11-07 17:44:50 UTC (rev 58721) @@ -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 = '<select id="timed_text_language">'; + + var lagRaw = langDataRaw.query.languages; + for(var j in lagRaw){ + var code = lagRaw[j].code; + var language = lagRaw[j]['*']; + langData[ code ] = language; + languageSelect += '<option value="'+code+'">'+language+'('+code+')</option>'; + } + languageSelect += '/</select>'; + 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", + '<input type="file" id="timed_text_file_upload"></input><br>' + 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('<button>'); + button.click(uploadSubtitles) + button.text("Upload Subtitle"); + $j('#toolbar').append(button); +}); + Modified: trunk/phase3/js2/mwEmbed/mv_embed.js =================================================================== --- trunk/phase3/js2/mwEmbed/mv_embed.js 2009-11-07 17:44:42 UTC (rev 58720) +++ trunk/phase3/js2/mwEmbed/mv_embed.js 2009-11-07 17:44:50 UTC (rev 58721) @@ -144,7 +144,8 @@ "mvFirefoggRender" : "libSequencer/mvFirefoggRender.js", "mvTimedEffectsEdit": "libSequencer/mvTimedEffectsEdit.js", - "mvTextInterface" : "libTimedText/mvTextInterface.js" + "mvTextInterface" : "libTimedText/mvTextInterface.js", + "mvTimedTextEdit" : "libTimedText/mvTimedTextEdit.js" }); // Dependency mapping for CSS files for self-contained included plugins: @@ -2022,4 +2023,4 @@ function js_error( string ) { alert( string ); return false; -} \ No newline at end of file +} Modified: trunk/phase3/js2/remoteMwEmbed.js =================================================================== --- trunk/phase3/js2/remoteMwEmbed.js 2009-11-07 17:44:42 UTC (rev 58720) +++ trunk/phase3/js2/remoteMwEmbed.js 2009-11-07 17:44:50 UTC (rev 58721) @@ -24,7 +24,9 @@ //timed text dispaly: if(wgPageName.indexOf("TimedText") === 0){ - + load_mv_embed( function() { + loadExternalJs( mwEmbedHostPath + '/mwEmbed/libTimedText/mvTimeTextEdit.js' + reqAguments ); + } ); } // Firefogg integration _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs