Usuari:Joutbis/Ukens konkurranse.js
Aparença
El codi que afegiu en aquesta pàgina podria tenir contingut maliciós que comprometi el vostre compte. Si no esteu segur si el codi a afegir és segur, pregunteu abans en la Taverna. El codi s'executarà en mostrar una previsualització d'aquesta pàgina. |
Nota: Després de desar, heu de netejar la memòria cau del navegador per veure els canvis. En la majoria de navegadors amb Windows o Linux, premeu Ctrl+F5 o bé premeu Shift i cliqueu el botó "Actualitza" (Ctrl i "Actualitza" amb Internet Explorer). Vegeu més informació i instruccions per a cada navegador a Viquipèdia:Neteja de la memòria cau.
/**
* This script adds an "Enroll" button to article contest pages.
* The script is only loaded for pages having prefix Viquiprojecte:Concursos.
*
* if (/Viquiprojecte:Concursos/.test(mw.config.get('wgPageName')) || /* Viquiprojecte:Viquirepte/.test(mw.config.get('wgPageName'))) {
* mw.loader.load(mw.config.get('wgServer') + mw.config.get('wgScript') + '?title= MediaWiki:Ukens_konkurranse.js&action=raw&ctype=text/javascript');
}
*
* Maintainer: [[User:Danmichaelo]], [[User:Jon Harald Søby]]
*/
/*jslint browser: true */
/*global mediaWiki, OO */
(function () {
"use strict";
mw.loader.using(['mediawiki.util', 'oojs-ui'], function () {
var visible = false;
var timer;
var popup = new OO.ui.PopupWidget( {
$content: $('<small id="uk-popup"></small>'),
// $container: $('.uk-ap:first'),
padded: true,
width: 400,
align: 'forwards',
} );
$( 'body' ).append( popup.$element );
function leave() {
timer = setTimeout( function () {
popup.toggle( false );
visible = false;
}, 200 );
}
function enter() {
var $this = $( this );
if (visible) {
clearTimeout( timer );
} else {
visible = true;
}
if ($this.hasClass('uk-ap')) {
popup.setFloatableContainer( $this );
$( '#uk-popup' ).html( $this.next( '.uk-ap-title' ).html() );
popup.toggle( true );
}
}
$( '.uk-ap' ).on( 'mouseenter', enter).on( 'mouseleave', leave);
popup.$element.on( 'mouseenter', enter).on( 'mouseleave', leave);
$( '.uk-ap-title' ).hide();
});
mw.loader.using(['mediawiki.ui.button', 'oojs-ui', 'jquery.spinner'], function () {
mw.messages.set('ukens-konkurranse-login', 'Inicieu la sessió per registrar-vos!');
mw.messages.set('ukens-konkurranse-join', 'M\'hi apunto!');
mw.messages.set('ukens-konkurranse-joined', 'Ja hi esteu inscrits!');
mw.messages.set('ukens-konkurranse-closed', 'Aquest concurs s\'ha acabat.<br />Gràcies a tots els participants!');
var registered = false,
h2 = $('#Participants').parent(),
sectionId = -1,
userName = !mw.user.isTemp() && mw.user.getName(),
api = new mw.Api(),
endtime = parseInt( $( '.UK-end-ts' ).attr( 'data-ukbot-endtime' ), 10 ),
now = new Date() / 1000;
// Fiks for at Discussion Tools setter inn en div rundt <h2>
if ( h2.parent().hasClass( 'mw-heading' ) ) {
h2 = h2.parent();
}
function showRegistered() {
h2.after('<div style="float:right; margin:.3em 1em; font-weight:bold"><span class="oo-ui-widget oo-ui-iconElement oo-ui-iconElement-icon oo-ui-icon-check oo-ui-iconWidget oo-ui-image-progressive" aria-disabled="true" title="Picture icon"></span> ' + mw.messages.get('ukens-konkurranse-joined') + '</div>');
}
if (h2.length === 1) {
sectionId = mw.util.getParamValue( 'section', h2.find( '.mw-editsection a' ).attr( 'href' ) );
if (now > endtime) {
h2.after('<div style="float:right; border:3px solid #DD5555; padding:15px 30px 15px 20px; margin:0 0 0.5em 0.5em; border-radius:10px; font-weight:bold; background: #F8F8F8;"><div style="background: url(http://upload.wikimedia.org/wikipedia/commons/thumb/0/0e/Emblem-diamond.svg/16px-Emblem-diamond.svg.png) left no-repeat; padding-left:20px;">' + mw.messages.get('ukens-konkurranse-closed') + '</div></div>');
return;
}
if (userName === null) {
h2.after('<div style="float:right; border:3px solid #008800; padding:15px 30px 15px 20px; margin:0 0 0.5em 0.5em; border-radius:10px; font-weight:bold; background: #BFFF00;">' + mw.messages.get('ukens-konkurranse-login') + '</div>');
return;
}
// Has anyone signed up?
if (h2.nextUntil('h2', 'ul').length !== 0) {
h2.nextUntil('h2', 'ul').find('a').each(function () {
if ($(this).attr('title').split(':')[1] === userName) {
registered = true;
}
});
}
if (registered) {
showRegistered();
} else {
h2.after('<div id="joindiv" style="float:right;"><span id="uk-status"></span><button id="joinbtn" class="mw-ui-button mw-ui-progressive mw-ui-big">' + mw.messages.get('ukens-konkurranse-join') + '</button></div>');
$(function () {
$('#joinbtn').click(function () {
$('#joinbtn').prop('disabled', true);
$('#uk-status').injectSpinner('uk-status-spinner');
api.postWithEditToken({
'action': 'edit',
'title': mw.config.get('wgPageName'),
'section': sectionId,
'appendtext': '\n* [[{' + '{subst:ns:user}}:' + userName + '|' + userName + ']]',
'summary': 'M\'hi apunto!'
}).done(function() {
var ul = h2.nextUntil('h2', 'ul'),
li = '<li><a href="/wiki/User:' + userName + '" title="User:' + userName + '">' + userName + '</a></li>\n';
$.removeSpinner('uk-status-spinner');
registered = true;
$('#joindiv').remove();
if (ul.length === 0) {
h2.nextAll('h2').first().before('\n<ul>\n' + li + '</ul>');
} else {
ul.append(li);
}
showRegistered();
}).fail(function() {
$.removeSpinner('uk-status-spinner');
$('#uk-status').append('S\'ha produït un error');
});
});
});
}
}
});
}());