b3acf957dd83e84b31622adc94f710cbfd45f58e
5 // Setup configuration vars (if not set already)
6 if( !mwAddMediaConfig
)
7 var mwAddMediaConfig
= {};
9 var mvTimedTextEdit
= {};
12 "mwe-add-subs-file" : "Add/Replace Subtitle",
13 "mwe-add-subs-file-title": "Select Subtitle to upload",
14 "mwe-error-only-srt" : "Only srt files can be uploaded right now.",
15 "mwe-watch-video" : "Watch video",
16 "mwe-select-other-language": "Select Other Language"
20 js2AddOnloadHook( function() {
21 function getSubtitle(f
) {
22 var name
= f
.files
[0].name
;
23 var srtData
= f
.files
[0].getAsBinary();
24 srtData
= srtData
.replace('\r\n', '\n');
27 function getVideoTitle() {
28 var videoTitle
= wgPageName
.split('.');
31 videoTitle
= videoTitle
.join('.').replace('TimedText:', 'File:');
35 var availableSubtitles
= {};
38 function addLanguageSelect(ttoolbar
) {
39 var apprefix
= wgPageName
.split('.');
41 var currentLanguage
= apprefix
.pop();
42 apprefix
= apprefix
.join('.');
46 'siprop' : 'languages'
48 }, function( langDataRaw
) {
49 var lagRaw
= langDataRaw
.query
.languages
;
51 var code
= lagRaw
[j
].code
;
52 var language
= lagRaw
[j
]['*'];
53 langData
[ code
] = language
;
58 'apprefix' : apprefix
.replace("TimedText:", ""),
61 }, function( subData
) {
62 for(var i
in subData
.query
.allpages
){
63 var subPage
= subData
.query
.allpages
[i
];
64 var langKey
= subPage
.title
.split('.');
65 var extension
= langKey
.pop();
66 langKey
= langKey
.pop();
67 availableSubtitles
[langKey
] = subPage
.title
;
69 var select
= $j('<select>');
70 var haveOtherLanguages
= 0;
71 for(var i
in availableSubtitles
){
73 var opt
= $j('<option>')
74 .html(langData
[ i
] + '('+i
+')')
77 document
.location
.href
= wgArticlePath
.replace('/$1', '?title=' + availableSubtitles
[i
] + '&action=edit');
79 if(currentLanguage
== i
) {
80 opt
.attr('selected', 'selcted');
84 if (haveOtherLanguages
> 1) {
85 ttoolbar
.append(" " +gM('mwe-select-other-language')+": ");
86 ttoolbar
.append(select
);
92 function uploadSubtitles() {
93 var languageSelect
= '<select id="timed_text_language">';
94 for(code
in langData
) {
95 var language
= langData
[ code
];
96 languageSelect
+= '<option value="'+code
+'">';
97 if (availableSubtitles
[code
]) {
98 languageSelect
+= language
+'('+code
+') +';
100 languageSelect
+= language
+'('+code
+') -';
102 languageSelect
+= '</option>';
104 languageSelect
+= '/</select>';
106 cBtn
[ gM('mwe-cancel') ] = function(){
107 $j(this).dialog('close');
109 cBtn
[ gM('mwe-ok') ] = function(){
110 var file
= $j('#timed_text_file_upload');
111 var langKey
= file
[0].files
[0].name
.split('.');
112 var extension
= langKey
.pop();
113 langKey
= langKey
.pop();
118 if( !mimeTypes
[ extension
] ){
119 js_log('Error: unknown extension:'+ extension
);
121 //get language from form
122 langKey
= $j('#timed_text_language').val();
123 if(extension
== "srt") {
124 var srt
= getSubtitle(file
[0]);
125 $j(this).html("saving...<br>"+mv_get_loading_img());
126 $j('.ui-dialog-buttonpane').remove();
127 var editToken
= $j('input[name=wpEditToken]').val();
128 var title
= wgPageName
.split('.');
131 title
= title
.join('.') + '.' + langKey
+ '.srt';
139 }, function(dialog
) {
140 return function( result
) {
141 document
.location
.href
= wgArticlePath
.replace('/$1', '?title=' + title
+ '&action=edit');
142 $j(dialog
).dialog('close');
146 $j(this).html(gM("mwe-error-only-srt"));
149 $j
.addDialog(gM("mwe-add-subs-file-title"),
150 '<input type="file" id="timed_text_file_upload"></input><br />' + languageSelect
,
152 $j('#timed_text_file_upload').change(function(ev
) {
153 var langKey
= this.files
[0].name
.split('.');
154 var extension
= langKey
.pop();
155 langKey
= langKey
.pop();
156 $j('#timed_text_language').val( langKey
);
159 $j('#toolbar').hide();
160 var ttoolbar
= $j('<div>');
161 $j('#toolbar').after(ttoolbar
);
163 var button
= $j('<button>');
164 button
.click(uploadSubtitles
)
165 button
.text(gM("mwe-add-subs-file"));
166 ttoolbar
.append(button
);
167 ttoolbar
.append(' ');
169 var button
= $j('<button>');
170 button
.click(function() { document
.location
.href
= wgArticlePath
.replace('$1', getVideoTitle()); })
171 button
.text(gM("mwe-watch-video"));
172 ttoolbar
.append(button
);
173 addLanguageSelect(ttoolbar
);