mw.loader.using( [ 'mediawiki.util' ] ).then( function() {
var portlet = x = mw.util.addPortletLink('p-tb', '#', 'בוט הודעות');
$(portlet).find('a').click(function() {
function mes() {
var message = '\n==' + $('#mesheading').val() + '==\n' + '{{ס:' + $('#mesmessage').val() + '}} ~~' + '~~';
function save(page) {
$('#messstatus').text('כותב את ההודעה בדף: ' + page);
$.ajax({
url: mw.util.wikiScript('api'),
async: false,
type: 'post',
dataType: 'json',
data: {action: 'edit', title: page, summary: $('#messummary').val(), appendtext: message, token: mw.user.tokens.get('csrfToken')}
});
return 1;
}
$.getJSON(mw.util.wikiScript('api'),
{action: 'parse', page: $('#mesmailinglist').val(), prop: 'links', format: 'json'},
function(data) {
var count = 0;
if (data && data.parse && data.parse.links)
$(data.parse.links).each(function(i, link) {
if (link.ns == 3 && typeof link.exists != 'undefined')
count += save(link['*']);
});
$('#messstatus').text('סיים לכתוב את ההודעות (' + count + '). אפשר לסגור');
}
);
}
mw.loader.using('jquery.ui', function() {
function makeline(line) {
return $('<tr>')
.append($('<td>').text(line.prompt + ':'))
.append($('<td>').append($('<input>', {type: 'text', width: '30em', id: line.input})));
}
function maketable(ar) {
var t = $('<table>');
for (var i in ar)
t.append(makeline(ar[i]));
return t;
}
var dialog = $('<div>').dialog()
.append(maketable([
{input: 'mesmailinglist', prompt: 'דף רשימת התפוצה'},
{input: 'mesmessage', prompt: 'דף ההודעה'},
{input: 'mesheading', prompt: 'כותרת'},
{input: 'messummary', prompt: 'תקציר העריכה'}
]))
.append($('<p>', {id: 'messstatus'}).text('ממתין....'))
.dialog('option', 'buttons', {
'בצע':
mes,
'סגור':
function() {dialog.dialog('close');}
});
$('.ui-dialog-buttonpane').css({backgroundColor: '#E0E0E0'});
dialog.dialog('option', {
height: 'auto',
width: 'auto',
position: [(window.width - dialog.width()) / 2, (window.height - dialog.height()) / 2]
});
$('.ui-dialog-buttonpane').css({direction: 'ltr'});
$('.ui-dialog-buttonpane > button').css({float: 'right'}); // jQuery has problems with rtl dialogs + ie is braindamaged.
});
});
});