MediaWiki:Gadget-CzyWiesz.js: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Krenair (dyskusja | edycje)
Maintenance: mw:RL/MGU / mw:RL/JD - Replace deprecated types of removeAttr calls phab:T169385
aktualizacja na prośbę User:Kaligula
Linia 10:
window.DYKnomination = {
about : {
version : '5.45.45'+(window.DYK_is_betaDYKnomination_is_beta===true?'beta':''),
beta : (window.DYKnomination_is_beta===true?true:false),
author : 'Kaligula',
authorlink : '[[w:pl:user:Kaligula]]',
Linia 16 ⟶ 17:
credits : 'Matma Rex (for HUGE help), Tomasz Wachowski (for testing)'
}
/* wgTitle: wgTitle, // property set on function call
wgUserName: wgUserName // property set on function call
*/
};
 
if (mw.config.get('wgNamespaceNumber') === 0) {
 
 
Linia 61 ⟶ 65:
/**
* List of wikiprojects
* updated 2318:4237, 122 lutgru 20142017 from https://pl.wikipedia.org/w/index.php?title=WikipediaDyskusja_wikipedysty:WikiprojektKaligula/js/CzyWiesz.js/wikiprojekty&oldid=3858558049997284
*/
DYKnomination.wikiprojects = {
counter : 1,
list : [], //populated on askuser() from [[Wikipedysta:Kaligula/js/CzyWiesz.js/wikiprojekty]] by DYKnomination.wikiprojects.load() (see below)
list2 : [ //type:subpage & type:editsection mean script needs to edit existing section on page (or talkpage), type:talk means script needs to add new section to page (or talkpage)
list2 : [
// these wikiprojects want to be informed via their subpage
{
label : 'Biologia',
page : 'Wikiprojekt:Biologia/Czy wiesz',
type : 'subpage'
},
{
label : 'Warszawa',
page : 'Wikiprojekt:Warszawa/Czy wiesz',
type : 'subpage'
},
Linia 87 ⟶ 86:
page : 'Wikiprojekt:Fantastyka/Czy wiesz',
type : 'subpage',
},
{
label : 'Warszawa',
page : 'Wikiprojekt:Warszawa/Czy wiesz',
type : 'subpage'
},
// these wikiprojects want to be informed via their talk page
Linia 192 ⟶ 196:
label : 'Polityka',
page : 'Dyskusja wikiprojektu:Polityka',
type : 'talk',
},
{
Linia 218 ⟶ 222:
page : 'Dyskusja wikiprojektu:Żużel',
type : 'talk',
},
// these wikiprojects want to be have their talk page's dedicated section edited
{
label : 'Ochrona przyrody',
page : 'Dyskusja wikiprojektu:Ochrona przyrody',
type : 'editsection',
}
],
load : function () {
var D = DYKnomination;
$.ajax('/w/index.php?title=WikipedystaWikipedia:KaligulaWikiprojekt/js/CzyWiesz.js/wikiprojektySpis_wikiprojektów&action=raw')
.done(function(data){
 
D.wikiprojects.list = data.match(/([^:]+)(?=\]\]\s*$)/gm);
active_wp = data.match(/(?<==== Aktywne wikiprojekty według dziedzin wiedzy ===)[\s\S]*?(?==== Aktywne wikiprojekty specjalne ===)/)[0];
D.wikiproject_select = $('<select class="czywiesz-wikiproject"></select>').css('vertical-align', 'middle');
D.wikiprojects.list_wikiprojects_active = active_wp.match(/(?<=\[\[Wikiprojekt:)([^:|\]\/#]+)(?=\|)/gm);
D.wikiproject_select.append('<option value="none">-- (żaden) --</option>');
for (var i=0;i< D.wikiprojects.listlist_wikiprojects_active.length;i++sort(Intl.Collator() {.compare);
/* nactive_wp = data.match(/(?<==== Nieaktywne wikiprojekty według dziedzin wiedzy ===)[\s\S]*?(?==== Nieaktywne wikiprojekty specjalne ===)/)[0];
if (typeof(D.wikiprojects.list[i]) == 'function') continue; //on IE wikibits adds indexOf method for arrays. skip it.
D.wikiprojects.list_wikiprojects_nonactive = nactive_wp.match(/(?<=\[\[Wikiprojekt:)([^:|\]\/#]+)(?=\|)/gm);
$('<option>').attr('value',i).text(D.wikiprojects.list[i]).appendTo(D.wikiproject_select);
D.wikiprojects.list_wikiprojects_nonactive.sort(Intl.Collator().compare);
}
*/
D.wikiproject_select = $('<select class="czywiesz-wikiproject"></select>').css('vertical-align', 'middle');
D.wikiproject_select.append('<option value="none">-- (żaden) --</option>');
 
/* D.wikiproject_select.append('<option value="none" disabled>-- (AKTYWNE WIKIPROJEKTY) --</option>');
*/ for (var i=0;i<D.wikiprojects.list_wikiprojects_active.length;i++) {
if (typeof(D.wikiprojects.listlist_wikiprojects_active[i]) == 'function') continue; //on IE wikibits adds indexOf method for arrays. skip it.
$('<option>').attr('value',i).text(D.wikiprojects.listlist_wikiprojects_active[i]).appendTo(D.wikiproject_select);
}
 
/* D.wikiproject_select.append('<option value="none" disabled>-- (NIEAKTYWNE WIKIPROJEKTY) --</option>');
for (var i=0;i<D.wikiprojects.list_wikiprojects_nonactive.length;i++) {
if (typeof(D.wikiprojects.list_wikiprojects_nonactive[i]) == 'function') continue; //on IE wikibits adds indexOf method for arrays. skip it.
$('<option>').attr('value',i).text(D.wikiprojects.list_wikiprojects_nonactive[i]).appendTo(D.wikiproject_select);
}
*/
$('#CzyWieszWikiprojectContainer').append(D.wikiproject_select.clone());
}
Linia 267 ⟶ 293:
}
 
/*
* function called when user clicks the link of the gadget
*
**/
DYKnomination.askuser = function () {
 
Linia 273 ⟶ 304:
if (D.errors.length > 1) { D.errors = [D.errors[0]]; }
D.log(debug,D);
D.wgUserName = mw.config.get('wgUserName');
D.wgTitle = mw.config.get('wgTitle');
 
var IMG_ARR = $.merge($('#mw-content-text .infobox a.image img'),$('#mw-content-text .thumb a.image img'));
Linia 289 ⟶ 323:
if ( REFS.ar1.match('#' + REFS.ar2[i] + '#') ) {D.sourced = true; break;}
}
var SIGNATURE = (D.wgUserName ? {name: D.wgUserName, disabled: ' disabled'} : {name: '~~' + '~', disabled: ' disabled'} );
 
//workaround for Opera - the textarea must be inserted to a visible element
 
var $title_paragraph = $('<p></p>')
.html('Tytuł artykułu: &nbsp;&nbsp;<input type="text" id="CzyWieszTitle" name="CzyWieszTitle" value="' + D.wgTitle + '" style="width: 476px;" disabled>');
 
var $question_paragraph = $('<p><strong>Zaproponuj pytanie:</strong></p>');
Linia 314 ⟶ 348:
 
var $file_row = $('<tr></tr>')
.html('<td style="width: 2830%;"><input type="checkbox" id="CzyWieszFile1" name="CzyWieszFile1" style="vertical-align: middle;"> Zaproponuj grafikę: </td>' // style="width: 36%;
+ '<td><tt>[[Plik:</tt><input type="text" id="CzyWieszFile2" name="CzyWieszFile2" style="width: 52%; vertical-align: middle;" disabled><tt>|100px|right]]</tt></td>');
 
//author row
var $author_row = $('<tr></tr>')
.html('<td>Główny autor artykułu<a href="#" title="Gadżet wstawia autora największej edycji w ciągu ostatnich 10 dni (upewnij się!)"><sup>?</sup></a>: </td>'
+ '<td><input type="text" id="CzyWieszAuthor" name="CzyWieszAuthor" style="width: 50%;margin-left: 2px;vertical-align: middle;">'
+ '&nbsp;&nbsp;<input type="checkbox" id="CzyWieszAuthorInf" name="CzyWieszAuthorInf" style="vertical-align: middle;">poinformujpoinformować go?</td>');
 
D.author2_input = $('<input type="text" class="CzyWieszAuthor2" name="CzyWieszAuthor2" style="width: 50%;margin-left: 2px;vertical-align: middle;">');
Linia 330 ⟶ 364:
 
var $date_row = $('<tr></tr>')
.html('<td>Data utw./rozbud. artykułu<a href="#" title="Gadżet wstawia datę największej edycji w ciągu ostatnich 10 dni (upewnij się!), w przeciwnym wypadku datę dzisiejszą jako datę zgłoszenia)"><sup>?</sup></a>: </td>'
+ '<td><input type="text" id="CzyWieszDate" name="CzyWieszDate" style="width: 50%;margin-left: 2px;vertical-align: middle;"></td>');
 
Linia 383 ⟶ 417:
width: 600,
modal: true,
title: (window.DYKnomination_is_beta===true?'ZgłaszanieBETA: ':'')+'Zgłoszenie artykułu do rubryki „Czy wiesz…”' + (debug ? ' &nbsp; (<small id="CzyWieszDialogDebug" style="color: red;">TRYB DEBUG</small>)' : ''),
draggable: true,
dialogClass: "wikiEditor-toolbar-dialog",
Linia 515 ⟶ 549:
+ '&rvstart=' + encodeURIComponent(a)
+ '&rvend=' + encodeURIComponent(b)
+ '&titles=' + encodeURIComponent(D.wgTitle)
)
.done(function(d0){
Linia 524 ⟶ 558:
$.ajax('/w/api.php?action=query&prop=revisions&format=json&rvprop=timestamp%7Cuser%7Csize&redirects=&indexpageids='
+ '&rvlimit=' + (revs0+1)
+ '&titles=' + encodeURIComponent(D.wgTitle)
)
.done(function(d){
Linia 579 ⟶ 613:
// add a possible author…
$('#CzyWieszAuthor').val(maxdiffuser);
$('#CzyWieszAuthor').after('&nbsp;<small id="CzyWieszAuthorTip">(<span class="external" title="Autor największej edycji (' + maxdiffsize + ' znaków) w ciągu ostatnich 10 dni.">upewnij Upewnij się, że to jest główny autor artykułu!">&nbsp;(!)&nbsp;</span>)</small>&nbsp;');
// …and date
$('#CzyWieszDate').val(maxdiffdate);
$('#CzyWieszDate').after('&nbsp;<small id="CzyWieszDateTip">(<span class="external" title="DataTo jest data największej edycji (' + maxdiffsize + ' znaków) w ciągu ostatnich 10 dni.">upewnij Upewnij się czy to o tę datę chodzi!">&nbsp;(!)&nbsp;</span>)</small>&nbsp;');
/* NEW VER |END| */
}
Linia 675 ⟶ 709:
}
else {
var tITLE = D.wgTitle[0].toLowerCase()+D.wgTitle.substr(1); //title in link starting with lowercase
if (QUESTION.length < 10) {
invalid.is = true;
Linia 681 ⟶ 715:
invalid.alert.push('Zadaj poprawne pytanie.');
}
else if (!QUESTION.match(RegExp('\'\'\'\\s*\\[\\[('+D.wgTitle.toRegExp()+'|'+tITLE.toRegExp()+')(\\]\\]|\\|.*?\\]\\])\\s*\'\'\''))) {
// if there isn't any bold (a) link with title or (b) link with title starting with lowercase
invalid.is = true;
invalid.fields.push('Question');
invalid.alert.push('Pytanie musi zawierać link do artykułu. Pogrubiony.\n Przykład:\n \'\'\'[['+tITLE+']]\'\'\'\n lub\n \'\'\'[['+D.wgTitle+'|nazwa do wyświetlenia, jeśli inna niż tytuł]]\'\'\'.');
}
else {
Linia 933 ⟶ 967:
}
if ( this.level && (this.level == 3) && this.line && this.line.match(/^\d+ \((.*?)\)/) ) { //sekcja zgłoszenia (nie nagłówek) i ma nazwę z nr na początku
if ( this.line.match(/^\d+ \((.*?)\)/)[1] == D.wgTitle ) {
nominated = true;
D.errors.push('Podany artykuł prawdopodobnie już jest zgłoszony do rubryki „Czy wiesz…”. <br />'
Linia 974 ⟶ 1008:
 
// NR ready, make summary
summary = D.config.summary.replace('NR (TITLE)',Dv.nr+' ('+D.wgTitle+')');
 
/* making data ready */
Linia 981 ⟶ 1015:
// making content
input = '=== ' + Dv.nr + ' (' + D.wgTitle + ') ===\n'
+ '<!-- artykuł zgłoszony za pomocą gadżetu CzyWiesz -->\n'
+ Dv.file //FILE is already with \n at the end
+ Dv.question //QUESTION is already with \n at the end
+ '{' + '{Wikiprojekt:Czy wiesz/weryfikacja|' + D.wgTitle + '|' + Dv.refs + '|' + Dv.images + '|' + Dv.author + '|' + Dv.signature + '|?|?|?}}'
+ (Dv.comment ? '\n'+Dv.comment : '');
 
Linia 1078 ⟶ 1112:
action : 'edit',
format : 'json',
title : D.wgTitle,
prependtext : '{' + '{Czy wiesz do artykułu|' + Dv.nr + '}' + '}\n',
summary : D.config.summary_r,
Linia 1107 ⟶ 1141:
console.error('Błąd informowania w artykule: $.ajax.fail().');
console.error('URI: /w/api.php?action=edit&format=json&title='
+ encodeURIComponent(D.wgTitle)
+ '&prependtext=' + encodeURIComponent('{' + '{Czy wiesz do artykułu|' + Dv.nr + '}' + '}\n')
+ '&summary=' + encodeURIComponent(D.config.summary_r) + '&watchlist=nochange&token=' + encodeURIComponent(D.edittoken));
Linia 1128 ⟶ 1162:
}
else {
secttitl_a = D.config.secttitl_a.replace('TITLE',D.wgTitle);
summary_a = D.config.summary_a.replace('TITLE',D.wgTitle);
$.ajax({
url : '/w/api.php',
Linia 1139 ⟶ 1173:
section : 'new',
sectiontitle : secttitl_a,
text : '{' + '{subst:Czy wiesz - autor0|tytuł strony='+D.wgTitle+'}} ~~' + '~~',
summary : summary_a,
watchlist : 'nochange',
Linia 1165 ⟶ 1199:
+ '&section=new'
+ '&sectiontitle=' + encodeURIComponent(secttitl_a)
+ '&text=' + encodeURIComponent('{' + '{subst:Czy wiesz - autor0|tytuł strony='+D.wgTitle+'}}~~' + '~~')
+ '&summary=' + encodeURIComponent(summary_a) + '&token=' + encodeURIComponent(D.edittoken));
console.error(data);
Linia 1187 ⟶ 1221:
// chosen wikiprojects
D.wikiprojects.counter = 1; //declared again in case user wants to try nominating again the article without reloading (e.g. after an error)
summary_w = D.config.summary_w.replace('TITLE',D.wgTitle);
secttitl_w = D.config.secttitl_w.replace('TITLE',D.wgTitle);
for (var i=0;i<Dv.wikiproject.length;i++) {
Linia 1198 ⟶ 1232:
var wnr = -1;
//check if wikiproject wants to be informed other way than 'section=new'
//(wnr=) -1 means 'no' (the wikiproject is not on the list D.wikiprojects.list2), any other number means 'yes' and is a number of the wikiproject in D.wikiprojects.list2
$(D.wikiprojects.list2).each(function(n){
if (this.label == curWikiproject) wnr=n;
Linia 1227 ⟶ 1261:
var obj;
if (czy_talk) {
//if report type is 'new section' (D.wikiprojects.list2[wnr].type==new'talk' & czy_talk==true) then add new section
//DEBUG: debug page 'Wikipedysta:Kaligula/js/CzyWiesz.js/wikiprojekt' gets here, because now it's on list2
obj = {
Linia 1238 ⟶ 1272:
section : 'new',
sectiontitle : secttitl_w,
text : '{' + '{Czy wiesz - wikiprojekt|' + D.wgTitle + '}} ~~' + '~~',
summary : summary_w,
watchlist : 'nochange',
Linia 1245 ⟶ 1279:
}
} else {
//if report type is not 'section=new section' then get page source [to edit]
obj = {
url : '/w/index.php?action=raw&title=' + encodeURIComponent(pageToEdit),
cache : false
}
summary_w = '/* Czy wiesz */ nowe zgłoszenie: [[' + D.wgTitle + ']]';
}
Linia 1266 ⟶ 1300:
else {
if (czy_talk) {
//if report type is 'section=new section' then this wikiproject is done
D.loadbar();
D.wikiprojects.counter++;
Linia 1272 ⟶ 1306:
}
else {
//if report type is not 'section=new section' then now we need to save the page
if (!data.match('<!-- Nowe zgłoszenia CzyWiesza wstawiaj poniżej tej linii. Nie zmieniaj i nie usuwaj tej linii -->')) {
data = data.replace('[[Kategoria:','== Czy wiesz ==\n<!-- Nowe zgłoszenia CzyWiesza wstawiaj poniżej tej linii. Nie zmieniaj i nie usuwaj tej linii -->\n\n[[Kategoria:');
Linia 1278 ⟶ 1312:
data = data.replace('<!-- Nowe zgłoszenia CzyWiesza wstawiaj poniżej tej linii. Nie zmieniaj i nie usuwaj tej linii -->',
'<!-- Nowe zgłoszenia CzyWiesza wstawiaj poniżej tej linii. Nie zmieniaj i nie usuwaj tej linii -->\n'
+ '{' + '{Czy wiesz - wikiprojekt|' + D.wgTitle + '}}');
 
D.log(debug,'czy_talk (2):',czy_talk,'D.wikiprojects.list2[wnr] (2):',D.wikiprojects.list2[wnr],'curWikiproject (2):',curWikiproject,'pageToEdit (2):',pageToEdit);
Linia 1341 ⟶ 1375:
$('<div><div class="floatright">' + D.config.CWicon + '</div><p style="margin-top: 10px;">' + D.config.tmpldone + '</p>'
+ '<p style="margin-left: 10px;">Dziękujemy za <a id="CzyWieszLinkAfter" href="//pl.wikipedia.org/wiki/'
+ (debug ? 'Wikipedysta:Kaligula/js/CzyWiesz.js/test#' : 'Wikiprojekt:Czy_wiesz/propozycje#') + encodeURIComponent(D.wgTitle.replace(/ /g,'_')).replace(/%/g,'.').replace(/\(/g,'.28').replace(/\)/g,'.29') + '" class="external">zgłoszenie</a>,<br />'
+ '<a href="/wiki/Wikiprojekt:Czy_wiesz" title="Wikiprojekt:Czy wiesz">Wikiprojekt Czy wiesz</a></p></div>')
.dialog({ modal: true, dialogClass: "wikiEditor-toolbar-dialog", close: function() { $(this).dialog("destroy"); $(this).remove(); $('#CzyWieszGadget').dialog("destroy"); $('#CzyWieszGadget').remove();} });
Linia 1349 ⟶ 1383:
 
$(document).ready(function() {
mw.util.addPortletLink(
var menulink = $('<li id="t-DYKnomination"><a onclick="DYKnomination.askuser();">'+(window.DYK_is_beta===true?'BETA: ':'')+'Zgłoś do „Czy wiesz…”</a></li>').css({cursor: 'pointer'});
'p-tb',
if ($('#t-ajaxquickdelete')[0]) {$('#t-ajaxquickdelete').after(menulink);}
'javascript:DYKnomination.askuser()',
else {$('#p-tb ul').append(menulink);}
(window.DYKnomination_is_beta===true?'BETA: ':'')+'Zgłoś do „Czy wiesz…”',
't-DYKnomination'
);
});