From a3d47674b9983c0449f860c7bcb761a22fd9fcdd Mon Sep 17 00:00:00 2001 From: Jan Gerber Date: Sun, 8 Nov 2009 15:31:34 +0000 Subject: [PATCH] Display other available languages on edit page --- js2/mwEmbed/libTimedText/mvTimeTextEdit.js | 209 ++++++++++++--------- 1 file changed, 117 insertions(+), 92 deletions(-) diff --git a/js2/mwEmbed/libTimedText/mvTimeTextEdit.js b/js2/mwEmbed/libTimedText/mvTimeTextEdit.js index 727eb0ea36..a5da763580 100644 --- a/js2/mwEmbed/libTimedText/mvTimeTextEdit.js +++ b/js2/mwEmbed/libTimedText/mvTimeTextEdit.js @@ -12,7 +12,8 @@ loadGM({ "mwe-add-subs-file" : "Add/Replace Subtitle", "mwe-add-subs-file-title": "Select Subtitle to upload", "mwe-error-only-srt" : "Only srt files can be uploaded right now.", - "mwe-watch-video" : "Watch video" + "mwe-watch-video" : "Watch video", + "mwe-select-other-language": "Select Other Language" }) @@ -30,104 +31,128 @@ js2AddOnloadHook( function() { videoTitle = videoTitle.join('.').replace('TimedText:', 'File:'); return videoTitle; } - function uploadSubtitles() { + + var availableSubtitles = {}; + var langData = {}; + + function addLanguageSelect(ttoolbar) { + var apprefix = wgPageName.split('.'); + apprefix.pop(); + var currentLanguage = apprefix.pop(); + apprefix = apprefix.join('.'); do_api_req({ 'data': { 'meta' : 'siteinfo', 'siprop' : 'languages' } - }, function( langDataRaw ) { - var apprefix = wgTitle.split('.'); - apprefix.pop(); - apprefix.pop(); - apprefix = apprefix.join('.'); - do_api_req({ - 'data': { - 'list' : 'allpages', - 'apprefix' : apprefix - } - }, function( subData ) { - var availableSubtitles = {}; - for(var i in subData.query.allpages){ - var subPage = subData.query.allpages[i]; - var langKey = subPage.title.split('.'); - var extension = langKey.pop(); - langKey = langKey.pop(); - availableSubtitles[langKey] = subPage.title; - } - var langData = {}; - var languageSelect = ''; - var cBtn = {}; - cBtn[ gM('mwe-cancel') ] = function(){ - $j(this).dialog('close'); + }, function( langDataRaw ) { + var lagRaw = langDataRaw.query.languages; + for(var j in lagRaw){ + var code = lagRaw[j].code; + var language = lagRaw[j]['*']; + langData[ code ] = language; + } + do_api_req({ + 'data': { + 'list' : 'allpages', + 'apprefix' : apprefix + } + }, function( subData ) { + for(var i in subData.query.allpages){ + var subPage = subData.query.allpages[i]; + var langKey = subPage.title.split('.'); + var extension = langKey.pop(); + langKey = langKey.pop(); + availableSubtitles[langKey] = subPage.title; + } + var select = $j(''; + for(code in langData) { + var language = langData[ code ]; + languageSelect += ''; + } + 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...
"+mv_get_loading_img()); + $j('.ui-dialog-buttonpane').remove(); + var editToken = $j('input[name=wpEditToken]').val(); + var title = wgPageName.split('.'); + title.pop(); + title.pop(); + title = title.join('.') + '.' + langKey + '.srt'; + do_api_req({ + 'data': { + 'action' : 'edit', + 'title' : title, + 'text' : srt, + 'token': editToken } - $j.addDialog(gM("mwe-add-subs-file-title"), - '
' + 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 ); - }); - }); + }, function(dialog) { + return function( result ) { + document.location.href = wgArticlePath.replace('/$1', '?title=' + title + '&action=edit'); + $j(dialog).dialog('close'); + }}(this) + ); + } else { + $j(this).html(gM("mwe-error-only-srt")); + } + } + $j.addDialog(gM("mwe-add-subs-file-title"), + '
' + 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 ); }); } $j('#toolbar').hide(); @@ -144,6 +169,6 @@ js2AddOnloadHook( function() { button.click(function() { document.location.href = wgArticlePath.replace('$1', getVideoTitle()); }) button.text(gM("mwe-watch-video")); ttoolbar.append(button); - + addLanguageSelect(ttoolbar); }); -- 2.20.1