Uit Hack42
k |
|||
| Regel 1: | Regel 1: | ||
/* JavaScript die hier wordt geplaatst heeft invloed op alle pagina's voor alle gebruikers */ | /* JavaScript die hier wordt geplaatst heeft invloed op alle pagina's voor alle gebruikers */ | ||
| + | jQuery().ready(function() { | ||
| + | getEditToken(); | ||
| + | user = wgUserName; | ||
| + | if (user) { | ||
| + | var titles = jQuery('#Ik_kom_wel,#Ik_kom_niet,#Ik_kom_misschien,#Animo,#Aanwezig,#Afwezig,#Wie,#Wie_niet,#Wie_misschien'); | ||
| + | titles.each(function() { | ||
| + | var $title = jQuery(this).parent(); | ||
| + | var $siblings = $title.nextUntil('h1,h2,h3,h4,h5,h6'); | ||
| + | var $ul = $siblings.filter('ul:first'); | ||
| + | var alreadyInList = $ul.find('li a:contains("'+user+'")').length > 0; | ||
| + | if ( ! alreadyInList) { | ||
| + | if ( ! $ul.length) { | ||
| + | $ul = jQuery('<ul>').insertAfter($title); | ||
| + | } | ||
| + | addAddUserButton($title, $ul); | ||
| + | } | ||
| + | }); | ||
| + | } | ||
| + | }); | ||
| + | |||
function getEditToken() { | function getEditToken() { | ||
jQuery.getJSON( | jQuery.getJSON( | ||
| Regel 19: | Regel 39: | ||
) | ) | ||
} | } | ||
| − | function | + | |
| − | jQuery. | + | function addAddUserButton($title, $ul) { |
| − | wgScriptPath + '/api.php | + | var button = jQuery('<input type="button" value="'+user+'"/>'); |
| − | { | + | var textField = jQuery('<input type="text" value="+soep, oid" />'); |
| − | + | $ul.append('<li>').append(button, textField); | |
| − | + | ||
| − | + | button.click(function() { | |
| − | + | var comment = textField.attr('value'); | |
| − | + | if (comment == '+soep, oid') | |
| − | + | comment = ''; | |
| − | + | ajaxSubmitUserAndComment($title, comment); | |
| + | }); | ||
| + | |||
| + | textField | ||
| + | .css({color: 'lightgray'}) // TODO: use CSS class instead? | ||
| + | .focus(function() { | ||
| + | if (this.value == '+soep, oid') | ||
| + | jQuery(this).val('').css({color: 'black'}); | ||
| + | }) | ||
| + | .blur(function() { | ||
| + | if (this.value == '') | ||
| + | jQuery(this).val('+soep, oid').css({color: 'lightgray'}); | ||
| + | }); | ||
| + | } | ||
| + | |||
| + | function ajaxSubmitUserAndComment($title, comment) { | ||
| + | var section_id = $title.children('span a').attr('href').match(/section=([0-9]+)/)[1]; | ||
| + | jQuery.ajax({ | ||
| + | url: wgScriptPath + '/api.php', | ||
| + | data: { | ||
| + | format: 'json', | ||
| + | action: 'edit', | ||
| + | title: wgPageName, | ||
| + | minor: true, | ||
| + | summary: 'Naam toegevoegd via button', | ||
| + | section: section_id, | ||
| + | appendtext: '\n* {{Mentioneduserbutton|' + wgUserName + '}}' + comment, | ||
| + | token: wgEditToken | ||
| + | }, | ||
| + | dataType: 'json', | ||
| + | type: 'POST', | ||
| + | success: function(data) { | ||
| + | window.location.href = window.location.href + '?' + new Date().getTime(); | ||
| + | window.location.reload(true); | ||
}, | }, | ||
| − | function( | + | error: function(xhr) { |
| − | + | alert('Error: iets is mis gegaan, herlaad pagina en probeer opnieuw.'); | |
| − | |||
| − | |||
| − | |||
} | } | ||
| − | ) | + | }); |
} | } | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Versie van 7 mei 2013 14:31
/* JavaScript die hier wordt geplaatst heeft invloed op alle pagina's voor alle gebruikers */
jQuery().ready(function() {
getEditToken();
user = wgUserName;
if (user) {
var titles = jQuery('#Ik_kom_wel,#Ik_kom_niet,#Ik_kom_misschien,#Animo,#Aanwezig,#Afwezig,#Wie,#Wie_niet,#Wie_misschien');
titles.each(function() {
var $title = jQuery(this).parent();
var $siblings = $title.nextUntil('h1,h2,h3,h4,h5,h6');
var $ul = $siblings.filter('ul:first');
var alreadyInList = $ul.find('li a:contains("'+user+'")').length > 0;
if ( ! alreadyInList) {
if ( ! $ul.length) {
$ul = jQuery('<ul>').insertAfter($title);
}
addAddUserButton($title, $ul);
}
});
}
});
function getEditToken() {
jQuery.getJSON(
wgScriptPath + '/api.php?',
{
action: 'query',
prop: 'info',
intoken: 'edit',
titles: 'Main Page',
indexpageids: '',
format: 'json'
},
function( data ) {
if ( data.query.pages && data.query.pageids ) {
var pageid = data.query.pageids[0];
wgEditToken = data.query.pages[pageid].edittoken;
}
}
)
}
function addAddUserButton($title, $ul) {
var button = jQuery('<input type="button" value="'+user+'"/>');
var textField = jQuery('<input type="text" value="+soep, oid" />');
$ul.append('<li>').append(button, textField);
button.click(function() {
var comment = textField.attr('value');
if (comment == '+soep, oid')
comment = '';
ajaxSubmitUserAndComment($title, comment);
});
textField
.css({color: 'lightgray'}) // TODO: use CSS class instead?
.focus(function() {
if (this.value == '+soep, oid')
jQuery(this).val('').css({color: 'black'});
})
.blur(function() {
if (this.value == '')
jQuery(this).val('+soep, oid').css({color: 'lightgray'});
});
}
function ajaxSubmitUserAndComment($title, comment) {
var section_id = $title.children('span a').attr('href').match(/section=([0-9]+)/)[1];
jQuery.ajax({
url: wgScriptPath + '/api.php',
data: {
format: 'json',
action: 'edit',
title: wgPageName,
minor: true,
summary: 'Naam toegevoegd via button',
section: section_id,
appendtext: '\n* {{Mentioneduserbutton|' + wgUserName + '}}' + comment,
token: wgEditToken
},
dataType: 'json',
type: 'POST',
success: function(data) {
window.location.href = window.location.href + '?' + new Date().getTime();
window.location.reload(true);
},
error: function(xhr) {
alert('Error: iets is mis gegaan, herlaad pagina en probeer opnieuw.');
}
});
}