27a82b5787ef15822f296d4e04b9c691645c9a21
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"
19 js2AddOnloadHook( function() {
20 function getSubtitle(f
) {
21 var name
= f
.files
[0].name
;
22 var srtData
= f
.files
[0].getAsBinary();
23 srtData
= srtData
.replace('\r\n', '\n');
26 function getVideoTitle() {
27 var videoTitle
= wgTitle
.split('.');
30 videoTitle
= videoTitle
.join('.').replace('TimedText:', 'File:');
33 function uploadSubtitles() {
37 'siprop' : 'languages'
39 }, function( langDataRaw
) {
40 var apprefix
= wgTitle
.split('.');
43 apprefix
= apprefix
.join('.');
49 }, function( subData
) {
50 var availableSubtitles
= {};
51 for(var i
in subData
.query
.allpages
){
52 var subPage
= subData
.query
.allpages
[i
];
53 var langKey
= subPage
.title
.split('.');
54 var extension
= langKey
.pop();
55 langKey
= langKey
.pop();
56 availableSubtitles
[langKey
] = subPage
.title
;
59 var languageSelect
= '<select id="timed_text_language">';
61 var lagRaw
= langDataRaw
.query
.languages
;
63 var code
= lagRaw
[j
].code
;
64 var language
= lagRaw
[j
]['*'];
65 langData
[ code
] = language
;
66 languageSelect
+= '<option value="'+code
+'">';
67 if (availableSubtitles
[code
]) {
68 languageSelect
+= language
+'('+code
+') +';
70 languageSelect
+= language
+'('+code
+') -';
72 languageSelect
+= '</option>';
74 languageSelect
+= '/</select>';
76 cBtn
[ gM('mwe-cancel') ] = function(){
77 $j(this).dialog('close');
79 cBtn
[ gM('mwe-ok') ] = function(){
80 var file
= $j('#timed_text_file_upload');
81 var langKey
= file
[0].files
[0].name
.split('.');
82 var extension
= langKey
.pop();
83 langKey
= langKey
.pop();
88 if( !mimeTypes
[ extension
] ){
89 js_log('Error: unknown extension:'+ extension
);
91 //get language from form
92 langKey
= $j('#timed_text_language').val();
94 if(extension
== "srt") {
95 var srt
= getSubtitle(file
[0]);
96 $j(this).html("saving...<br>"+mv_get_loading_img());
97 $j('.ui-dialog-buttonpane').remove();
99 var editToken
= $j('input[name=wpEditToken]').val();
100 var title
= wgPageName
.split('.');
103 title
= title
.join('.') + '.' + langKey
+ '.srt';
111 }, function(dialog
) {
112 return function( result
) {
113 document
.location
.href
= wgArticlePath
.replace('/$1', '?title=' + title
+ '&action=edit');
114 $j(dialog
).dialog('close');
118 $j(this).html(gM("mwe-error-only-srt"));
121 $j
.addDialog(gM("mwe-add-subs-file-title"),
122 '<input type="file" id="timed_text_file_upload"></input><br />' + languageSelect
,
124 $j('#timed_text_file_upload').change(function(ev
) {
125 var langKey
= this.files
[0].name
.split('.');
126 var extension
= langKey
.pop();
127 langKey
= langKey
.pop();
128 $j('#timed_text_language').val( langKey
);
133 $j('#toolbar').hide();
134 var ttoolbar
= $j('<div>');
135 $j('#toolbar').after(ttoolbar
);
137 var button
= $j('<button>');
138 button
.click(uploadSubtitles
)
139 button
.text(gM("mwe-add-subs-file"));
140 ttoolbar
.append(button
);
141 ttoolbar
.append(' ');
143 var button
= $j('<button>');
144 button
.click(function() { document
.location
.href
= wgArticlePath
.replace('$1', getVideoTitle()); })
145 button
.text(gM("mwe-watch-video"));
146 ttoolbar
.append(button
);