Przejdź do zawartości

MediaWiki:Gadget-CzyWiesz.js i Wikipedysta:Matma Rex/CzyWiesz.js: Różnica pomiędzy stronami

(Różnica między stronami)
Strona 1
Strona 2
Usunięta treść Dodana treść
v6.11 Przycisk do wstawiania linka do artykułu #27 • Wikiploy
 
m dr
 
Linia 1: Linia 1:
// <nowiki>
// <pre>
/* eslint-disable no-useless-escape */
/**
/* eslint-disable no-mixed-spaces-and-tabs */
* Nominacje do Czy-Wiesza aka DYKnomination (Did You Know).
/* eslint-disable indent */
*
/* eslint-disable array-bracket-newline */
* Instrukcja:
/* globals mw, DYKnomination, $ */
* [[Wikipedia:Narzędzia/CzyWiesz]]
*
/*
DEBUG:
* Repozytorium i historia zmian:
po wpisaniu w konsoli przeglądarki "DYKnomination.debug()" skrypt uruchomi
* https://github.com/Eccenux/wiki-DYKCzyWiesz
się w trybie debug, tzn.:
*
– aktualne informacje pokażą się w konsoli przeglądarki
* Wdrożone za pomocą: [[Wikipedia:Wikiploy]]
– zgłoszenie pójdzie nie na stronę [[Wikiprojekt:Czy wiesz/propozycje]],
*/
ale na testową podstronę [[Wikipedysta:Kaligula/js/CzyWiesz.js/test]]
(function(){function d(s,n,r){function l(i,e){if(!n[i]){if(!s[i]){var t="function"==typeof require&&require;if(!e&&t)return t(i,!0);if(c)return c(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var o=n[i]={exports:{}};s[i][0].call(o.exports,function(e){var t=s[i][1][e];return l(t||e)},o,o.exports,d,s,n,r)}return n[i].exports}for(var c="function"==typeof require&&require,e=0;e<r.length;e++)l(r[e]);return l}return d})()({1:[function(i,e,t){var a={};const{versionInfo:o}=i("./build/version");a.about={version:`${o.version}-${o.buildDay}`+(window.DYKnomination_is_beta===true?"beta":""),beta:window.DYKnomination_is_beta===true?true:false,author:"Kaligula",authorlink:"[[w:pl:user:Kaligula]]",homepage:"[[w:pl:Wikipedia:Narzędzia/CzyWiesz]]",credits:"Matma Rex (for HUGE help), Tomasz Wachowski (for testing)"};function s(o){const{ErrorInfo:e}=i("./ErrorInfo");const{apiAsync:s}=i("./asyncAjax");const{config:n}=i("./config");o.config=n;o.options={enabledClose:false};o.getBaseNew=function(){return this.debugmode?n.debugBase+"/propozycje":"Wikiprojekt:Czy wiesz/propozycje"};o.getBaseDone=function(){return this.debugmode?n.debugBase+"/ocenione":"Wikiprojekt:Czy wiesz/ocenione"};o.getNominationPage=function(e,t){const i=`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}`;const a=this.getBaseNew();return a+"/"+i+"/"+t};o.logs=[];o.log=function(){var e=Array.from(arguments);var t=(new Date).toISOString();o.logs.push({dt:t,log:e});if(this.debugmode&&typeof console!=="undefined"){e.unshift("[DYK]");console.log.apply(console,e)}};o.debugmode=false;o.getEditToken=async function(e){var t=o;var i=mw.user.tokens.get("csrfToken");if(!e&&typeof i==="string"&&i.length===34){t.edittoken=i;t.log("DYKnomination.edittoken :",t.edittoken);return t.edittoken}try{let e=await s({url:"/w/api.php?action=query&meta=tokens&format=json&type=csrf",cache:false});t.log("DYKnomination.edittoken :",t.edittoken,"data token :",e.query.tokens.csrftoken);t.edittoken=e.query.tokens.csrftoken}catch(e){t.errors.push("Błąd pobierania tokena: "+e+".");t.errors.show();console.error("Błąd pobierania tokena: ",e)}return t.edittoken};o.emailauthor=async function(t){var i=o;var e=prompt("Opisz, co się stało. Bez tego twórca nie będzie wiedział, co naprawiać.","");if(!e){alert("Nic nie wyślę twórcy, dopóki nie opiszesz błędu swoimi słowami. Bez Twojego opisu twórca nie będzie wiedział co naprawiać.");return}i.log("DYKnomination.errors: ",i.errors);var a=e+"\n\n"+JSON.stringify(i.logs);$(".CzyWieszEmailDoAutoraWyslano").html('<img src="https://upload.wikimedia.org/wikipedia/commons/1/1a/Denken.gif" width="10" height="10">');$("#CzyWieszErrorDialog, #CzyWieszSuccess").addClass("wait-im-sending-email");t.classList.add("dyk-button-off");if(!i.edittoken){i.log("Pobranie tokena.");await i.getEditToken(false)}s({url:"/w/api.php",type:"POST",data:{action:"emailuser",format:"json",target:n.supportUser,subject:n.supportEmailTopic,text:a,token:i.edittoken}}).then(function(){$("#CzyWieszErrorDialog, #CzyWieszSuccess").removeClass("wait-im-sending-email");$(".CzyWieszEmailDoAutoraWyslano").html(" <strong>Wysłano!</strong>")}).catch(function(e){t.classList.remove("dyk-button-off");i.errors.push(`Błąd wysyłania e-maila do twórcy: ${e}.`);i.errors.show();console.error("Błąd wysyłania e-maila do twórcy: ",e)})};o.errors=new e(e=>{o.emailauthor(e)},n.supportUser)}function n(e){s(e);const{DykMain:t}=i("./DykMain");e.main=new t(e)}e.exports={DYKnomination:a,createDyk:s,createFullDyk:n}},{"./DykMain":6,"./ErrorInfo":8,"./asyncAjax":13,"./build/version":14,"./config":15}],2:[function(e,t,i){class a{constructor(e,t){this.title=e;this.info=t;this.doneDialogInternal=false;this.elInfo=false;this.elWarnings=false;this.elWarningsList=false}open(){if(!this.doneDialogInternal){this.init()}this.windowManager.openWindow(this.doneDialogInternal)}update(e,t,i=true){if(!t){this.elInfo.innerHTML=e}else{const a=document.createElement("div");a.innerHTML=e;this.elInfo.appendChild(a)}if(t||i){this.forceResize()}}warn(e,t=true,i=true){this.elWarnings.style.display=e.length?"block":"none";if(!e.length||!t){this.elWarningsList.innerHTML=""}if(e.length){const a=document.createElement("li");a.innerHTML=e;this.elWarningsList.appendChild(a)}if(i){this.forceResize()}}forceResize(){this.windowManager.updateWindowSize(this.doneDialogInternal)}init(){const e=this;function i(e){i.super.call(this,e)}OO.inheritClass(i,OO.ui.ProcessDialog);i.static.name="doneDialogInternal";i.static.title=this.title;i.static.actions=[{action:"save",label:"Zamknij",flags:"primary"}];i.prototype.initialize=function(){i.super.prototype.initialize.call(this);this.content=new OO.ui.PanelLayout({padded:true,expanded:false});this.content.$element.append(`<div class="info">${e.info}</div>`);this.content.$element.append(`<div class="warnings" style="display:none"><strong>Ostrzeżenia:</strong><ul></ul></div>`);this.$body.append(this.content.$element);e.elInfo=this.content.$element[0].querySelector(".info");e.elWarnings=this.content.$element[0].querySelector(".warnings");e.elWarningsList=e.elWarnings.querySelector("ul")};i.prototype.getActionProcess=function(e){var t=this;if(e){return new OO.ui.Process(function(){t.close({action:e})})}return i.super.prototype.getActionProcess.call(this,e)};var t=new i;var a=new OO.ui.WindowManager;$(document.body).append(a.$element);a.addWindows([t]);this.windowManager=a;this.doneDialogInternal=t}}t.exports={DoneDialog:a}},{}],3:[function(e,t,i){const{DoneDialog:l}=e("./DoneDialog");const{apiAsync:r}=e("./asyncAjax");const{stdConfirm:c}=e("./simpleDialogs");const{htmlspecialchars:d}=e("./stringOps");class a{constructor(e,t){this.pageName=e;this.core=t;this.doneSelector=".dyk-done";this.movedSelector=".template-done";this.statusSelector=".dyk-status";this.statusMovedRe=/zako.{1,2}czone/}init(){const t=document.querySelectorAll(this.doneSelector);let e=false;let i;if(t.length){i=t.length==1&&this.canBeSubpage(this.pageName);e=true;if(i&&this.setupArchived()){e=false}}if(e){mw.loader.using("oojs-ui-core").done(()=>{for(const e of t){this.initItem(e,i)}mw.hook("userjs.DYKnomination.DoneHandling.ready").fire(this)})}}canBeSubpage(e){return e.includes("/propozycje/2")}setupArchived(){if(document.querySelector(".dyk-arch")){$(".dyk-end-return, .dyk-end-info").hide();return true}return false}checkItemDone(e,t){if(t){const a=document.querySelector(this.movedSelector);if(a){return true}}const i=e.querySelector(this.statusSelector);if(i&&i.textContent.search(this.statusMovedRe)>=0){return true}return false}initItem(e,i){let t=this.checkItemDone(e,i);let a=mw.config.get("wgUserGroups").includes("sysop");let o=a&&t;let s=this.core.options.enabledClose&&!t;if(!s&&!o){return false}const n=e.querySelector("a:not(.new)");if(!n){this.core.log("No article link.");return false}let r=n.textContent;if(s){let t=this.createButton(e,"Zakończ",()=>{if(t.isDisabled()){OO.ui.alert("Akcja już wykonana. Możesz spróbować ponownie po odświeżeniu strony.");return}this.handleDone(e,r,i).then(e=>{if(e){t.setDisabled(true)}})})}if(o){let t=this.createButton(e,"Cofnij do nominacji",()=>{if(t.isDisabled()){OO.ui.alert("Akcja już wykonana. Możesz spróbować ponownie po odświeżeniu strony.");return}this.handleRollback(e,r,i).then(e=>{if(e){t.setDisabled(true)}})})}return true}getSubpageTitle(e,t){if(t){return mw.config.get("wgPageName")}const i=e.querySelector(".dyk-self-page");let a=i?i.textContent.trim():"";return a}async handleDone(t,i,a){const o=this.core;let e=`
– informowanie autora – na analogiczną podstronę "…/autor"
<p>Czy na pewno chcesz zakończyć dyskusję dla ${d(i)}?
– informowanie wikiprojektu – na "…/wikiprojekt"
<p>Jeśli są wątpliwości, to możesz poczekać na więcej ocen.

`;if(await c(e)){const s=new l("Przenoszenie wpisu","Start...");const n=mw.config.get("wgUserName");const r="/wiki/Special:Contributions/"+encodeURIComponent(n);let e=this.getSubpageTitle(t,a);if(!e.length){console.error("subpageTitle failed",{isSubpage:a,item:t});s.update(`
Wersja dev skryptu:
<p>❌ Przenoszenie zostało przerwane (nie wykonano żadnych zmian).</p>
https://pl.wikipedia.org/wiki/Wikipedysta:Kaligula/js/CzyWiesz.js
<p>Wygląda na to, że szablon weryfikacji dla „${i}” jest nieprawidłowo wypełniony.
*/
Wejdź na podstronę zgłoszenia i dodaj parametr <code>| strona = {{subst:FULLPAGENAME}}</code>.</p>

`,true);return}try{await this.move(i,e,s)}catch(e){console.error(e);let t=typeof e=="string"?d(e):"<code>"+d(e)+"</code>";s.update(`
window.DYKnomination = {
<p>❌ Przenoszenie nie udało się: ${t}</p>
about : {
<p><a href="${r}" class="czywiesz-external" target="_blank">Sprawdź swój wkład</a>, żeby obejrzeć co już zostało zrobione (czy w ogóle coś).
version : '5.7.1'+(window.DYKnomination_is_beta===true?'beta':''),
<p>Możesz wejść na stronę zgłoszenia lub ją odświeżyć i spróbować ponownie.
beta : (window.DYKnomination_is_beta===true?true:false),
Jeśli zgłoszenie nadal nie jest zakończone i nie da się go zakończyć, to być <strong>może musisz zakończyć zgłoszenie ręcznie</strong>:
author : 'Kaligula',
<ol>
authorlink : '[[w:pl:user:Kaligula]]',
<li>Usuń zgłoszenie <a href="${mw.util.getUrl(o.getBaseNew(),{action:"edit"})}" class="czywiesz-external" target="_blank">z listy propozycji</a>.
homepage : '[[w:pl:Wikipedia:Narzędzia/CzyWiesz]]',
<li>Dodaj zgłoszenie <a href="${mw.util.getUrl(o.getBaseDone(),{action:"edit"})}" class="czywiesz-external" target="_blank">do listy ocenionych</a>.
credits : 'Matma Rex (for HUGE help), Tomasz Wachowski (for testing)'
<li>W treści zgłoszenia:
}
<ul>
/* wgTitle: wgTitle, // property set on function call
<li>W szablonie <code>CW/weryfikacja</code> ustaw parametr <code>status=zakończone</code>.
wgUserName: wgUserName // property set on function call
<li>W szablonie <code>licznik czasu</code> zmniejsz liczbę dni (możesz ustawić <code>dni=1</code>).
*/
<li>Dopisz komentarz wpisując <code>{{Załatwione}}</code>.
};
</ul>

</li>
if (mw.config.get('wgNamespaceNumber') === 0) {
</ol>

`,true);return}s.update(`

<p>✅ Przenoszenie <a href="${mw.util.getUrl(e)}">strony zgłoszenia</a> zakończone.</p>

<p><small>Dla pewności możesz sprawdzić <a href="${r}" class="czywiesz-external" target="_blank">swój wkład</a>.</small></p>
DYKnomination.config = {
`);s.forceResize();return true}}async handleRollback(t,i,a){let e=`
interp: '.,:;!?…-–—()[]{}⟨⟩\'"„”«»/\\', // [\s] must be added directly!; ['] & [\] escaped due to js limits, [\s] means [space]
<p>Czy na pewno chcesz cofnąć ${d(i)} do bieżących nominacji?
miesiacArr: ['stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia'],
`;if(await c(e)){const o=new l("Cofnięcie do propozycji","Start...");const s=mw.config.get("wgUserName");const n="/wiki/Special:Contributions/"+encodeURIComponent(s);let e=this.getSubpageTitle(t,a);if(!e.length){console.error("subpageTitle failed",{isSubpage:a,item:t});o.update(`
// ↓ summary template for nomination
<p>❌ Przenoszenie zostało przerwane (nie wykonano żadnych zmian).</p>
summary: '/* NR (TITLE) */ nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]',
<p>Wygląda na to, że szablon weryfikacji dla „${i}” jest nieprawidłowo wypełniony.
// ↓ summary for template in the article
Wejdź na podstronę zgłoszenia i dodaj parametr <code>| strona = {{subst:FULLPAGENAME}}</code>.</p>
summary_r: 'Artykuł ten został zgłoszony do umieszczenia na [[Wikipedia:Strona główna|stronie głównej]] w rubryce „[[Szablon:Czy wiesz|Czy wiesz]]” za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]',
`,true);return}try{await this.unmove(i,e,o)}catch(e){console.error(e);let t=typeof e=="string"?d(e):"<code>"+d(e)+"</code>";o.update(`
// ↓ summary for template on author's talk page
<p>❌ Wycofanie nie udało się: ${t}</p>
summary_a: '/* Czy wiesz – [[TITLE]] */ nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]',
<p><a href="${n}" class="czywiesz-external" target="_blank">Sprawdź swój wkład</a>, żeby obejrzeć co już zostało zrobione (czy w ogóle coś).
// ↓ sectiontitle for template on author's talk page
`,true);return}o.update(`
secttitl_a: 'Czy wiesz – [[TITLE]]',
<p>✅ Cofnięcie udane. <a href="${mw.util.getUrl(e,{action:"edit"})}">Dodaj powód otwarcia zgłoszenia</a> (możesz też ustawić status na „problemy”).</p>
// ↓ summary for template in wikiprojects (type: talk)
<p><small>Możesz też sprawdzić <a href="${n}" class="czywiesz-external" target="_blank">swój wkład</a></small>.</p>
summary_w: '/* Czy wiesz – [[TITLE]] */ nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]',
`);o.forceResize();return true}}removeNomination(e,t){const i=e=>e.replace(/_/g," ").trim();let a=i(t);let o=e.replace(/\{\{(.+\/propozycje\/[0-9-]+\/([^}]+))\}\}\s*/g,(e,t)=>a===i(t)?"":e);return o===e?false:o}async stepRemove(e,t,i,a){const o=this.core;o.log("Pobranie wikitekstu listy zgłoszeń.");let s=await r({url:"/w/index.php?action=raw&title="+encodeURIComponent(t),cache:false});o.log("Usunięcie wpisu z wikitekstu listy zgłoszeń.");let n=this.removeNomination(s,i);if(!n){e.warn(`Nie udało się znaleźć nominacji „${i}” na stronie „${t}”. Pominięto usuwanie wpisu.`)}else{o.log("Usunięcie wpisu ze zgłoszeń.");await r({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:t,text:n,summary:a,watchlist:"nochange",token:o.edittoken}})}}async stepAppend(e,t,i,a){const o=this.core;let s=await r({url:"/w/index.php?action=raw&title="+encodeURIComponent(t),cache:false});let n=this.removeNomination(s,i);if(n){e.warn(`Nominacja „${i}” jest już na stronie „${t}”. Pominięto dodawanie wpisu.`);return false}await r({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:t,appendtext:`\n{{${i}}}`,summary:a,watchlist:"nochange",token:o.edittoken}});return true}async move(e,t,i){const a=this.core;i.open();const o=e=>`🚴 Krok ${e}/${s}: `;const s=3;let n=1;if(!a.edittoken){a.log("Pobranie tokena.");await this.core.getEditToken(false)}let r=`[[${t}|${e}]]`;let l=a.config.summary_done.replace("TITLE",r);i.update(o(n++)+"Usunięcie z listy propozycji.");await this.stepRemove(i,a.getBaseNew(),t,l);i.update(o(n++)+"Oznaczenie jako załatwione.");await this.markDone(t,l);i.update(o(n++)+"Dopisanie na koniec ocenionych.");await this.stepAppend(i,a.getBaseDone(),t,l);return t}async unmove(e,t,i){const a=this.core;i.open();const o=e=>`🚴 Krok ${e}/${s}: `;const s=3;let n=1;if(!a.edittoken){a.log("Pobranie tokena.");await this.core.getEditToken(false)}let r=`[[${t}|${e}]]`;let l=a.config.summary_rollback.replace("TITLE",r);i.update(o(n++)+"Usunięcie z listy propozycji.");await this.stepRemove(i,a.getBaseDone(),t,l);i.update(o(n++)+"Usunięcie oznaczenia jako załatwione.");await this.markUnDone(t,l);i.update(o(n++)+"Dopisanie na koniec propozycji.");await this.stepAppend(i,a.getBaseNew(),t,l);return t}statusChange(e,c){e=e.replace(/(\{\{CW\/weryfikacja)([^}]+)(\}\})/g,(e,t,i,a)=>{i=i.replace(/ *\| *status *=[^|}]+/g,"");let o=i.indexOf("|");let s=i.indexOf("=",o);let n=s-o;let r="| status".padEnd(n," ")+"= "+c;let l=i.indexOf("| 1. sprawdzenie");if(l>0){i=i.slice(0,l)+r+"\n"+i.slice(l)}else{i=i.replace(/\n+$/,"")+"\n"+r+"\n"}return`${t}${i}${a}`});return e}async markDone(e,t){const i=this.core;let a=await r({url:"/w/index.php?action=raw&title="+encodeURIComponent(e),cache:false});a=a.replace(/(\{\{licznik czasu)([^/][^}]+)(\}\})/,(e,t,i,a)=>{i=i.replace(/\|\s*koniec\s*=[^|}]*/,"");return`${t}/koniec${i}|koniec={{subst:#timel:Y-m-d H:i:s}}${a}`});a=this.statusChange(a,"zakończone");a+="\n\n{{Załatwione}} artykuł oceniony ~~~~.";await r({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:e,text:a,summary:t,watchlist:"nochange",token:i.edittoken}})}async markUnDone(e,t){const i=this.core;let a=await r({url:"/w/index.php?action=raw&title="+encodeURIComponent(e),cache:false});a=this.statusChange(a,"");a=a.replace(/(\{\{licznik czasu)\/koniec([^}]+)(\}\})/,(e,t,i,a)=>{i=i.replace(/\|\s*koniec\s*=[^|}]*/,"");return`${t}${i}${a}`});a=a.replace(/\{\{(Załatwione|Zrobione)\}\}/gi,"{{s|$1}}");await r({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:e,text:a,summary:t,watchlist:"nochange",token:i.edittoken}})}createButton(e,t,i){const a=new OO.ui.ButtonWidget({label:t,flags:["primary","progressive"]});const o=a.$element[0];o.addEventListener("click",i);e.insertAdjacentElement("afterend",o);return a}}t.exports={DoneHandling:a}},{"./DoneDialog":2,"./asyncAjax":13,"./simpleDialogs":17,"./stringOps":18}],4:[function(e,t,i){const{ReadJsonCached:a}=e("./ReadJsonCached");class o{constructor(e){this.coreConfig=e;this.configHelper=new a(e.wikiConfigTitles,e.wikiConfigKey);this.data=e.wiki;this.parsed=false}debug(e="",t=""){console.log("[DYK-opt]",e,t)}async getConfig(){this.debug("getConfig starts");if(this.parsed){this.debug("getConfig already parsed");return this.data}try{this.debug("getConfig awaiting...");const e=await this.configHelper.getConfig();this.debug("getConfig read data",e.events);this.merge(this.data,e);this.parsed=true}catch(e){console.error("Error fetching configuration:",e)}return this.data}merge(e,t){if(!t){return}if(Array.isArray(t.events)){for(const i of t.events){if(typeof i.code==="string"&&typeof i.name==="string"){e.events.push({code:i.code,name:i.name})}else{console.warn("[DYK] Invalid event:",i)}}}if(t.options&&typeof t.options==="object"){$.extend(e.options,t.options)}}}async function s(){const e={wikiConfigKey:"dyk-extra-options",wikiConfigTitles:{"Wikiprojekt:Czy_wiesz/konfiguracja/opcje.json":"options","Wikiprojekt:Czy_wiesz/konfiguracja/akcje.json":"events"},wiki:{events:[],options:{hardLimitDays:30,warnLimitDays:10}}};var t=new o(e);var i=await t.getConfig();console.log(i);var a={events:[],options:{hardLimitDays:123,warnLimitDays:34}};t.merge(a,{events:[{name:"Tytuł"},{code:"test",name:"Testowy"}]});console.log(a);t.merge(a,{events:[{code:"test1",name:"Testowy1"},{code:"test2",name:"Testowy2"}]});console.log(a);console.log("Done")}t.exports={DykConfigExtra:o}},{"./ReadJsonCached":10}],5:[function(e,t,i){const{RevisionList:a}=e("./RevisionList");const{DykConfigExtra:o}=e("./DykConfigExtra");const{Wikiprojects:s}=e("./Wikiprojects");function f(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}class n{constructor(e){this.core=e;this.revisionList=new a;this.wikiprojects=new s;this.configHelper=new o(this.core.config)}askuser(){var e=this.core;var t=e.debugmode;e.errors.clear();e.wgUserName=mw.config.get("wgUserName");e.wgTitle=mw.config.get("wgTitle");var i=$(`
// ↓ summary for template in wikiprojects (type: editsection or subpage)
.infobox span[typeof="mw:File"] a.mw-file-description img
summary_w2: '/* Czy wiesz */ [[TITLE]] – nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]',
,figure[typeof="mw:File/Thumb"] img
// ↓ sectiontitle for template in wikiprojects' pages/talk pages
,.gallery span[typeof="mw:File"] img
secttitl_w: 'Czy wiesz – [[TITLE]]',
`,$("#mw-content-text"));var a=i.length;var o={warn:e.config.no+'&nbsp;&nbsp;<strong style="color: red;">Brak źródeł dyskwalifikuje artykuł ze zgłoszenia!</strong> <small>(<a href="#" role="button">info</a>)</small>',ar1:[""],ar2:["Bibliografia","Przypisy"]};$(".mw-headline, .mw-heading > [id]").each(function(){o.ar1.push($(this).html())});o.ar1=o.ar1.join("#")+"#";e.sourced=false;for(var s=0;s<o.ar2.length;s++){if(o.ar1.match("#"+o.ar2[s]+"#")){e.sourced=true;break}}var n=e.wgUserName?{name:e.wgUserName,disabled:" disabled"}:{name:"~~"+"~",disabled:" disabled"};var r=$("<p></p>").html('Tytuł artykułu: &nbsp;&nbsp;<input type="text" id="CzyWieszTitle" name="CzyWieszTitle" value="'+e.wgTitle+'" style="width: 476px;" disabled>');var l=$(`<p><strong>Dokończ pytanie: „Czy wiesz…”</strong></p>
// ↓ style for this gadget
<p style="font-size:90%">Zalecamy zadanie 2-3 pytań, żeby łatwiej było wybrać ekspozycję (jedno pytanie per wiersz).
styletag: $('<style id="CzyWieszStyleTag">'
Pytania zacznij od: „…ile”, „…kto”, „…jak”, „…co”, „…po co”, „…kiedy”, „…dlaczego”, „…gdzie”, „…skąd”, „…że” itp.</p>
+ '.wikiEditor-toolbar-dialog .czy-wiesz-gallery-chosen { border: solid 2px red; }\n'
`);var c=$("<p></p>").html(`
+ '#CzyWieszWikiprojectAdd {cursor: pointer; }\n'
<p>
+ '#CzyWieszGalleryToggler a, #CzyWieszRefs a, a.czywiesz-external { '
<textarea id="CzyWieszQuestion" style="width: 570px;" rows="2" value=""
+ 'color: #0645AD; text-decoration: underline; cursor: pointer; padding-right: 13px; '
placeholder="Możesz wpisać kilka pytań, każde w osobnej linijce. Pamiętaj, żeby w każdym dodać pogrubiony link."
+ 'background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2'
autofocus
+ 'iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=) center right no-repeat; '
></textarea>
+ 'background: url(/w/skins/Vector/images/external-link-ltr-icon.png) center right no-repeat!ie; }'
`);c.append('<button id="CzyWieszInsertLink" data-target="#CzyWieszQuestion">wstaw link</button>');var d=$('<tr id="CzyWieszRefs"></tr>').html("<td>Źródła: </td>"+"<td>"+(e.sourced?e.config.yes:o.warn)+"</td>");if(e.sourced){d.css({display:"none"})}var p=$("<tr></tr>").html("<td>Liczba grafik w artykule: </td>"+'<td><input type="number" min="0" id="CzyWieszImages" name="CzyWieszImages" value="'+a+'"'+'style="width: 3.5em;">'+'<span id="CzyWieszGalleryToggler" style="display: none;"> &nbsp;<small><a href="#" role="button">(zaproponuj grafikę z artykułu)</a></small></span>');var u=$("<tr></tr>").html('<td style="width: 30%;"><input type="checkbox" id="CzyWieszFile1" name="CzyWieszFile1" style="vertical-align: middle;"><label for="CzyWieszFile1"> Zaproponuj grafikę: </label></td>'+'<td><tt>[[Plik:</tt><input type="text" id="CzyWieszFile2" name="CzyWieszFile2" style="width: 52%; vertical-align: middle;" disabled><tt>|100px|right]]</tt></td>');var z=$(`
+ '#CzyWieszErrorDialog.wait-im-sending-email, #CzyWieszSuccess.wait-im-sending-email { '
<tr id="CzyWieszAuthorRow">
+ 'cursor: wait; }'
<td>Główna autor(-ka) artykułu<span class="czywiesz-tip" title="Gadżet ustala autorstwo wg największej edycji w ciągu ostatnich 10 dni (sprawdź zmiany w ostatnich dniach)."><sup>(?)</sup></span>: </td>
+ '</style>'),
<td><input type="text" id="CzyWieszAuthor" name="CzyWieszAuthor" style="width: 50%;margin-left: 2px;vertical-align: middle;">
// ↓ [[File:Crystal Clear app clean.png]] (20px) [2012-11-20]
&nbsp;&nbsp;<input type="checkbox" checked id="CzyWieszAuthorInf" name="CzyWieszAuthorInf" style="vertical-align: middle;"><label for="CzyWieszAuthorInf"> wysłać powiadomienia?</label></td>
yes: '<img alt="Crystal Clear app clean.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/20px-Crystal_Clear_app_clean.png" width="20" height="20">',
</tr>
// ↓ [[File:Crystal Clear action button cancel.png]] (20px) [2012-11-20]
<tr id="CzyWieszAuthor2Row">
no: '<img alt="Crystal Clear action button cancel.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/20px-Crystal_Clear_action_button_cancel.png" width="20" height="20">',
<td>Druga autor(-ka) artykułu<span class="czywiesz-tip" title="Użyj listy zmian, żeby sprawdzić, czy ktoś jeszcze wprowadzał duże zmiany."><sup>(?)</sup></span>: </td>
// ↓ [[File:PL Wiki CzyWiesz ikona.svg]] (80px) [2012-11-20]
<td><input type="text" id="CzyWieszAuthor2" name="CzyWieszAuthor2" style="width: 50%;margin-left: 2px;vertical-align: middle;">
CWicon: '<img alt="PL Wiki CzyWiesz ikona.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f4/PL_Wiki_CzyWiesz_ikona.svg/80px-PL_Wiki_CzyWiesz_ikona.svg.png" width="80" height="80" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f4/PL_Wiki_CzyWiesz_ikona.svg/120px-PL_Wiki_CzyWiesz_ikona.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f4/PL_Wiki_CzyWiesz_ikona.svg/160px-PL_Wiki_CzyWiesz_ikona.svg.png 2x">',
</td>
// ↓ = {{załatwione}} [2012-11-20]
</tr>
tmpldone: '<span class="template-done"><img alt="Crystal Clear app clean.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/20px-Crystal_Clear_app_clean.png" width="20" height="20" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/30px-Crystal_Clear_app_clean.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/40px-Crystal_Clear_app_clean.png 2x"><span style="display:none">T</span> <b>Załatwione</b></span>',
<tr id="CzyWieszAuthorInfo">
// ↓ = {{niezałatwione}} [2012-11-20]
<td colspan=2></td>
tmplndone: '<span class="template-not-done"><img alt="Crystal Clear action button cancel.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/20px-Crystal_Clear_action_button_cancel.png" width="20" height="20" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/30px-Crystal_Clear_action_button_cancel.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/40px-Crystal_Clear_action_button_cancel.png 2x"><span style="display:none">N</span> <b>Niezałatwione</b></span>'
</tr>
}
`.replace(/\n\t+/g,"").trim());var g=$("<tr></tr>").html("<td>Twój podpis: </td>"+'<td><input type="text" id="CzyWieszSignature" name="CzyWieszSignature" value="'+n.name+'" style="width: 50%;margin-left: 2px;"'+n.disabled+"></td>");const y=$(`

<tr id="CzyWieszWikiprojectRow">
/**
<td>Powiadom wikiprojekt(y): </td>
* List of wikiprojects
<td>
* updated 18:37, 22 gru 2017 from https://pl.wikipedia.org/w/index.php?title=Dyskusja_wikipedysty:Kaligula/js/CzyWiesz.js/wikiprojekty&oldid=49997284
<span id="CzyWieszWikiprojectContainer"><small>(trwa ładowanie…)</small></span>
*/
<a id="CzyWieszWikiprojectAdd">(+)</a>
DYKnomination.wikiprojects = {
</td>
counter : 1,
</tr>
list : [], // populated on askuser() from [[Wikipedia:Wikiprojekt/Spis wikiprojektów]] by DYKnomination.wikiprojects.load() (see below)
`.replace(/\n\t+/g,"").trim());const h=$(`
list2 : [ /*****
<tr id="CzyWieszEventsRow">
* List of wikiprojects which aren't on above list and should appear on the list of wikiprojects to be notified.
<td>Akcja edycyjna: </td>
*
<td class="czywiesz-value">
* Objects containing following fields:
<span class="czywiesz-info"><small>(trwa ładowanie…)</small></span>
* label - text which will appear in the dropdown menu
</td>
* page - location of the wikiproject. If type is 'talk', page should point to the
</tr>
* wikiproject talk page
`);var m=$('<input type="checkbox" id="CzyWieszCommentCheckbox" name="CzyWieszCommentCheckbox" style="vertical-align: middle;">').click(function(){var e=$("#CzyWieszGadget");if($(this).prop("checked")){e.height(e.height+30);e.parent().height(e.parent().height+20)}else{e.height(e.height-30);e.parent().height(e.parent().height-20)}});var w=$("<p></p>").append(m).append('<label for="CzyWieszCommentCheckbox"> Potrzebujesz zamieścić dodatkowy komentarz? (Twój podpis zostanie dodany automatycznie)</label>');var f=$('<p id="CzyWieszCommentContainer" style="display: none;"></p>').html('<textarea id="CzyWieszComment" style="width: 570px;" rows="2" value=""></textarea>');var k=$('<p id="CzyWieszRules"></p>').html(`<small>Reguły: Zgłaszaj hasła, które powstały lub zostały rozbudowane nie dawniej niż 10 dni temu.
* type - 'section' or 'talk'
Hasła muszą posiadać źródła (najlepiej w formie przypisów) oraz muszą zawierać co najmniej 2 kB samej treści.</small>`).css({border:"1px solid #F0F080",backgroundColor:"#FFFFE0",paddingLeft:"5px"});var C=$('<div id="CzyWieszLoaderBar"></div>').css({width:"100%",backgroundColor:"rgb(220, 220, 220)",border:"1px solid rgb(187, 187, 187)",borderRadius:"3px",boxSizing:"border-box"}).html('<p id="CzyWieszLoaderBarParagraph" style="margin: 0 0 0 7px; position: absolute;">&nbsp;</p>'+'<div id="CzyWieszLoaderBarInner" style="width: 0; height: 20px; background-color: #ABEC46; border: none; border-radius: 3px;"></div>');const b=$("<table></table>").css("width","100%").append(d).append(p).append(u).append(z).append(g).append(y).append(h);const j=$('<div id="CzyWieszGadget"></div>').append(r).append(l).append(c).append(b).append(w).append(f).append(k).append(C);var v={"Zgłoś":function(){if(e.sourced){e.main.checkForm()}else{alert("Artykuł bez źródeł jest zdyskwalifikowany z nominacji. (Jeśli źródła są, to zwróć uwagę, czy tytuł sekcji jest prawidłowy, tzn. „Przypisy” lub „Bibliografia”.)")}},Anuluj:function(){$(this).dialog("close")}};j.dialog({width:600,modal:true,title:(window.DYKnomination_is_beta===true?"BETA: ":"")+"Zgłoszenie artykułu do rubryki „Czy wiesz…”"+(t?' &nbsp; (<small id="CzyWieszDialogDebug" style="color: red;">TRYB DEBUG</small>)':""),draggable:true,dialogClass:"wikiEditor-toolbar-dialog",close:function(){$(this).dialog("destroy");$(this).remove()},buttons:v});if(e.debugmode){$("#CzyWieszQuestion").val(`jak testować '''[[${e.wgTitle}]]'''?`)}this.loadData();if($("#CzyWieszStyleTag").length==0){e.config.styletag.appendTo("head")}$("#CzyWieszFile1").change(function(){var e=$("#CzyWieszFile2");e.prop("disabled",!e.prop("disabled"))});if(a>0){$("#CzyWieszGalleryToggler").toggle();$("#CzyWieszGalleryToggler a").click(function(){var e='<div id="CzyWieszGalleryHolder">'+`<div id="CzyWieszGallery">`;for(var t=0;t<i.length;t++){e+="<fig>";e+=i[t].outerHTML.replace(/\swidth=\"\d+\"/,"").replace(/\sheight=\"[^\"]*\"/,"").replace(/\sclass=\"[^\"]*\"/g,"");e+="</fig>"}e+="</div> </div>";$(e).dialog({width:547,modal:true,title:"Wybierz grafikę:",draggable:true,dialogClass:"wikiEditor-toolbar-dialog",close:function(){$(this).dialog("destroy");$(this).remove()},buttons:{Wybierz:function(){if($("#CzyWieszFile1").length>0){$("#CzyWieszFile1").prop("checked",true);$("#CzyWieszFile2").prop("disabled",false);$("#CzyWieszFile2").val($(".czy-wiesz-gallery-chosen").length==0?"":decodeURIComponent($(".czy-wiesz-gallery-chosen")[0].src.match(/\/\/upload\.wikimedia\.org\/wikipedia\/commons(\/thumb)?\/.\/..\/([^\/]+)\/?/)[2]).replace(/_/g," "))}$(this).dialog("destroy");$(this).remove()},Anuluj:function(){$(this).dialog("close")}}});$("#CzyWieszGallery img").each(function(){$(this).click(function(){$(".czy-wiesz-gallery-chosen").each(function(){$(this).toggleClass("czy-wiesz-gallery-chosen")});$(this).toggleClass("czy-wiesz-gallery-chosen")})})})}$("#CzyWieszRefs small a").click(function(){$(`<div>
* - 'section' - the template will be put on the wikiproject main page, after a line
<div class="floatright">${e.config.CWicon}</div>
* "<!-- Nowe zgłoszenia CzyWiesza wstawiaj poniżej tej linii. Nie zmieniaj i nie usuwaj tej linii -->" (without quotes)
<p style="margin-left: 10px;">Zgodnie z wytycznymi <a class="czywiesz-external" target="_blank" href="/wiki/Wikiprojekt:Czy_wiesz" title="Wikiprojekt:Czy wiesz">Wikiprojektu Czy wiesz</a> zgłaszane hasło powinno posiadać źródła w formie bibliografii lub przypisów.
* - 'talk' - the template will be placed in a new section on the wikiproject talk page.
<a class="czywiesz-external" target="_blank" href="/wiki/Wikiprojekt:Czy_wiesz/pomoc#Zg.C5.82aszanie_propozycji_i_poprawa_hase.C5.82" title="Wikiprojekt:Czy wiesz/pomoc#Zgłaszanie propozycji i poprawa haseł">Więcej informacji w instrukcji</a>
*/
<br /><small>Możliwe, że w artykule sekcje ze źródłami są błędnie nazwane – w takim wypadku popraw je.</small></p>
],
</div>`).dialog({modal:true,dialogClass:"wikiEditor-toolbar-dialog",close:function(){$(this).dialog("destroy");$(this).remove()}})});$("#CzyWieszWikiprojectAdd").click(()=>{$("#CzyWieszWikiprojectContainer").append(this.wikiprojects.$select.clone());$("#CzyWieszLoaderBar").parent().css({height:"+=24"})});$("#CzyWieszCommentCheckbox").change(function(){$("#CzyWieszCommentContainer").toggle()});$("#CzyWieszInsertLink").on("click",function(){let e=this.getAttribute("data-target");if(!e&&!e.length){console.warn("[DYK] selector empty");return}let t=$(e);let i=mw.config.get("wgTitle");t.textSelection("encapsulateSelection",{pre:`'''[[${i}|`,post:`]]'''`})});$("#CzyWieszQuestion").focus()}async loadData(){const e=await this.configHelper.getConfig();this.pagerevs(e);this.wikiprojects.load();this.initEvents(e)}async initEvents(e){const{events:t}=e;if(!t||!t.length){$("#CzyWieszEventsRow .czywiesz-info").html("<i>brak aktywnych akcji</i>");return}const i=$('<select class="czywiesz-select"></select>');i.append('<option value="none">-- (standardowe zgłoszenie) --</option>');for(const a of t){$("<option>").attr("value",a.code).text(a.name).appendTo(i)}$("#CzyWieszEventsRow .czywiesz-info").remove();$("#CzyWieszEventsRow .czywiesz-value").append(i)}async pagerevs(e){const i=this.core;const a=e.options.bigEdit;let o=e.options.hardLimitDays>365?365:e.options.hardLimitDays;let s=e.options.warnLimitDays>=o?-1:e.options.warnLimitDays;const{revisions:n,records:r}=await this.revisionList.readRevs(i.wgTitle,o);i.log("revisions in last days + 1 edit:",n.length);i.log("day-users in last days:",r.length);let l=0;let c="";let d=false;if(r.length>0){let{record:t,size:e}=this.revisionList.findWinner(r,a);i.log(JSON.stringify(t),e);l=e;if(t){if(s>0){let e=this.revisionList.daysAgo(t.day);if(e>s){c=`
load : function () {
W ciągu ostatnich ${s} dni nie dokonano dużych zmian.
var D = DYKnomination;
Ostatnia duża zmiana jest z ${t.day} (${l} bajtów).
$.ajax('/w/index.php?title=Wikipedia:Wikiprojekt/Spis_wikiprojektów&action=raw')
`.replace(/\n\t+/g,"\n")}}$("#CzyWieszAuthor").val(t.user);$("#CzyWieszAuthor").after('&nbsp;<small id="CzyWieszAuthorTip"><span class="czywiesz-tip" title="Autorstwo ustalone wg największej lub najnowszej dużej edycji z ostatnich dni (dodane '+t.added+" znaków, data: "+t.day+').">(!)</span></small>&nbsp;')}else{d=true;c=`
.done(function(data){
⚠️ W ciągu ostatnich ${o} dni ''nie dokonano wystarczająco dużych zmian''.

Skumulowany rozmiar: ${l} bajtów, edycje: ${n.length-1}.
var active_wp = data.match(/=== Aktywne wikiprojekty według dziedzin wiedzy ===[\s\S]*?=== Aktywne wikiprojekty specjalne ===/)[0];
`.replace(/\n\t+/g,"\n")}}else{i.log(JSON.stringify(n));l=n[0].size;d=true;c=`⚠️ W ciągu ostatnich ${o} dni ''nie wykonano żadnych zmian''.`.replace(/\n\t+/g,"\n")}if(c.length){if(d){c+="\n\nJeszcze raz rozważ zgłaszanie tego artykułu, gdyż może to być niezgodne z regulaminem."}alert(c)}i.articlesize={size:l,enough:l>=a,warn:l>=a?"":i.config.no+'&nbsp;&nbsp;<strong style="color: red;">Rozmiar '+l+' b dyskwalifikuje artykuł ze zgłoszenia!</strong> \x3c!--small>(<a class="czywiesz-external">info</a>)</small--\x3e'};if(r&&r.length){let e=`<table class="wikitable">`;e+=`<tr>
// positive lookbehind alternative (global match) by Adam Katz → https://stackoverflow.com/a/35143111
<th>Data</th>
var regexp = /\[\[Wikiprojekt:((GLAM\/)?[^:|\]/#]+)\|/g; // from /(?<=\[\[Wikiprojekt:)[^:|\]\/#]+(?=\|)/g
<th>Dodane</th>
var list = [];
<th>Usunięte</th>
<th>Edycje</th>
var matcher;
// eslint-disable-next-line no-cond-assign
<th>Autor(ka)</th>
while ( matcher = regexp.exec(active_wp) ) {
</tr>`;for(const z of r){e+=`<tr>
list[list.length]=matcher[1];
<td>${z.day}</td>
<td>+${z.added}</td>
}
D.wikiprojects.list = list;
<td>-${z.removed}</td>

<td>${z.edits}${z.isNew?" (nowy art.)":""}</td>
/* Sorting strings with accented characters using "Intl.Collator" or "localeCompare"
<td>${z.user}</td>
→ http://www.jstips.co/en/javascript/sorting-strings-with-accented-characters/
</tr>`}e+=`</table>`;const t=mw.util.getUrl(null,{action:"history"});const p=document.querySelector("#CzyWieszAuthorInfo td");p.innerHTML=`
localeCompare is more backwards compatible with basic support (no locale-sort) extending before Intl.Collator was introduced
<a class="dyk-toggle" role="button" href="#">(pokaż zmiany w ostatnich dniach)</a>
→ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare
<div style="display:none" class="dyk-toggle-content">
${e}
*/
D.wikiprojects.list.sort( function(a,b){return a.localeCompare(b, 'pl');} );
<a href="${t}" class="czywiesz-external" target="_blank">zobacz historię</a>
</div>
D.wikiproject_select = $('<select class="czywiesz-wikiproject"></select>').css('vertical-align', 'middle');
`;const u=$(".dyk-toggle-content",p);$(".dyk-toggle",p).click(function(e){e.preventDefault();u.toggle()})}$('<tr id="CzyWieszSize"></tr>').insertAfter($("#CzyWieszRefs")).html("<td>Rozmiar (>2 kb): </td>"+"<td>"+(i.articlesize.enough?i.config.yes:i.articlesize.warn)+"</td>").css(i.articlesize.enough?{display:"none"}:{});$("#CzyWieszGadget .czywiesz-tip").click(function(){alert(this.title)})}prepareValues(){var e=this.core;var t=$("#CzyWieszQuestion").val();var i=$("#CzyWieszFile1").prop("checked")?$("#CzyWieszFile2").val().trim():"";var a=$("#CzyWieszImages").val().trim();var o=e.sourced?"+":" ";var s=$("#CzyWieszAuthor").val().trim();var n=$("#CzyWieszAuthorInf").prop("checked")?true:false;var r=$("#CzyWieszAuthor2").val().trim();var l=$("#CzyWieszSignature").val().trim();var c=new Set;$(".czywiesz-wikiproject").each(function(){var e=$(this).val();if(e!="none"){c.add(e)}});var d=Array.from(c).map(e=>this.wikiprojects.list[e]);const p={code:"",name:""};$("#CzyWieszEventsRow .czywiesz-select").each((e,t)=>{var i=t.value;if(i!="none"){p.code=i;p.name=t.options[t.selectedIndex].text}});console.log(p);var u=$("#CzyWieszCommentCheckbox").prop("checked")?$("#CzyWieszComment").val().trim():false;var z={is:false,fields:[],alert:[]};const g=e.wgTitle[0].toLowerCase()+e.wgTitle.substr(1);const y="Przykład:\n '''[["+e.wgTitle+"]]''' lub '''[["+g+"]]'''\n lub\n '''[["+e.wgTitle+"|nazwa do wyświetlenia, jeśli inna niż tytuł]]'''.";if(typeof t!="string"||t===""){z.is=true;z.fields.push("Question");z.alert.push("Wpisz pytanie.")}else{t=t.trim().replace(/[\r\n]/g,"\n").replace(/\n\s+/g,"\n").replace(/(--)?~{3,5}$/,"").trim().replace(/(^|\n)[.…]+/g,"$1").replace(/(^|\n)czy wiesz[\s,\.]*/gi,"$1").replace(/\?($|\n)/g,"$1").trim();if(t.length<10){z.is=true;z.fields.push("Question");z.alert.push("Zadaj poprawne pytanie – to jest za krótkie.\n"+y);return z}const m=new RegExp("'''\\s*\\[\\[("+f(e.wgTitle)+"|"+f(g)+")(\\]\\]|\\|.*?\\]\\])\\s*'''");const w=t.split("\n").some(e=>!e.match(m));if(w){z.is=true;z.fields.push("Question");z.alert.push("Pytanie musi zawierać link do artykułu. Pogrubiony.\n"+y)}else{t=t.split("\n").map(e=>`…${e}?`).join("\n\n")+"\n"}}if(typeof i=="string"&&i!=""){i="[[Plik:"+(i.match(/^(Plik:|File:)/i)?i.replace(/^(Plik:|File:)/i,""):i)+"|100px|right]]\n"}if(typeof a!="string"||a===""){z.is=true;z.fields.push("Images");z.alert.push("Podaj liczbę grafik w artykule.")}if(typeof s!="string"||s===""){z.is=true;z.fields.push("Author");z.alert.push("Podaj autora artykułu.")}if(typeof l!="string"||l===""){z.is=true;z.fields.push("Signature");z.alert.push("Podpisz się.")}if(typeof u!="string"&&typeof u!="boolean"||typeof u=="string"&&(u===""||u.match(/^[^A-ZĘÓĄŚŁŻŹĆŃa-zęóąśłżźćń]+$/))||typeof u=="string"&&u==true){z.is=true;z.fields.push("Comment");z.alert.push("Jeśli musisz podać jakiś komentarz to podaj jakiś sensowny, jeśli nie – wyłącz to pole. Nie wstawiaj w tym polu samego podpisu (lecz w przypadku komentarza – podpisz się).")}const h={question:t,file:i,images:a,refs:o,author:s,authorInf:n,author2:r,signature:l,comment:u,wikiproject:d,specialEvent:p};return{invalid:z,values:h}}}t.exports={DykForm:n}},{"./DykConfigExtra":4,"./RevisionList":11,"./Wikiprojects":12}],6:[function(e,t,i){const{DykProcess:a}=e("./DykProcess");const{DykForm:o}=e("./DykForm");class s{constructor(e){this.core=e;this.dykProcess=new a(e);this.dykForm=new o(e);this.core.askuser=()=>this.askuser();this.core.debug=()=>this.debug()}askuser(){this.dykForm.askuser()}debug(){this.core.debugmode=true;this.dykForm.askuser()}checkForm(){const{values:e,invalid:t}=this.dykForm.prepareValues();if(t.is){$(t.fields).each(function(){$("#CzyWiesz"+this).css({border:"solid 2px red"}).change(function(){$(this).css({border:"none"})})});alert(t.alert.join("\n"));$("#CzyWiesz"+t.fields[0]).focus()}else{this.dykProcess.prepare(e)}}}t.exports={DykMain:s}},{"./DykForm":5,"./DykProcess":7}],7:[function(e,t,i){const{Loadbar:a}=e("./Loadbar");const{apiAsync:d}=e("./asyncAjax");const{config:p}=e("./config");class o{constructor(e){this.core=e;this.values={}}async prepare(e){this.values=e;this.wgTitle=this.core.wgTitle;var t=this.values;this.errors=this.core.errors;this.errors.clear();this.loadbar=new a(4+t.wikiproject.length+(t.authorInf?1:0));this.loadbar.next();this.setupNominationPage();let i;try{i=await this.checkNominationExists()}catch(e){this.errors.push("Błąd sprawdzania istniejących zgłoszeń: "+e+".");this.errors.show();console.error("Błąd sprawdzania istniejących zgłoszeń: ",e)}if(i){this.errors.show()}else{await this.core.getEditToken(false);await this.runNominate()}}setupNominationPage(){if(!this.nominationDate){this.nominationDate=new Date}this.nominationPage=this.core.getNominationPage(this.nominationDate,this.wgTitle);return this.nominationPage}async checkNominationExists(){let e=await d({url:"/w/api.php?action=parse&format=json&page="+encodeURIComponent(this.core.getBaseNew())+"&prop=sections",cache:false});let t=e.parse.sections;this.core.log("Sekcje na stronie nominacji:",t);let i=t.filter(e=>e.level==2&&e.line==this.wgTitle);if(i.length){const n="/wiki/"+encodeURIComponent(this.setupNominationPage())+"#"+i[0].anchor;this.errors.push(`
D.wikiproject_select.append('<option value="none">-- (żaden) --</option>');
Podany artykuł jest zgłoszony do rubryki „Czy wiesz…”.<br />

<a href="${n}" class="czywiesz-external" target="_blank">Sprawdź</a>.
for (var i=0;i<D.wikiprojects.list.length;i++) {
`);return true}let a=this.setupNominationPage();let o=await d({url:"/w/api.php?action=query&format=json&prop=&titles="+encodeURIComponent(a)+"&formatversion=2",cache:false});let s=o.query.pages.pop();if(!s.missing){const n="/wiki/"+encodeURIComponent(a);this.errors.push(`
if (typeof(D.wikiprojects.list[i]) == 'function') continue; //on IE wikibits adds indexOf method for arrays. skip it.
Podany artykuł był już zgłoszony do rubryki „Czy wiesz…” w tym miesiącu.<br />
$('<option>').attr('value',i).text(D.wikiprojects.list[i]).appendTo(D.wikiproject_select);
<a href="${n}" class="czywiesz-external" target="_blank">Sprawdź</a>.
}
`);return true}return false}async runNominate(){var e=this.core;var t=this.values;let i=this.setupNominationPage();let a=e.config.summary.replace("TITLE",`[[${i}|${e.wgTitle}]]`);this.loadbar.next();let o="{{subst:#timel:Y-m-d H:i:s}}";let s=`{{CW/weryfikacja

| artykuł = ${e.wgTitle}
$('#CzyWieszWikiprojectContainer small').remove();
| przypisy = ${t.refs}
$('#CzyWieszWikiprojectContainer').append(D.wikiproject_select.clone());
| ilustracje = ${t.images}
}
| 1. autorstwo = ${t.author}
);
| 2. autorstwo = ${t.author2}
}
| strona = ${i}
}
| akcja kod = ${t.specialEvent.code}

| akcja = ${t.specialEvent.name}
DYKnomination.errors = [function (){
| nominacja = ${t.signature}
var D = DYKnomination;
| status =
var dialog = $('<ul></ul>');
| 1. sprawdzenie =
for (var i=1;i<D.errors.length;i++) {
| 2. sprawdzenie =
dialog.append( $('<li></li>').html(D.errors[i]) );
| 3. sprawdzenie =
}
| 4. sprawdzenie =
dialog = $('<div id="CzyWieszErrorDialog"></div>').append(dialog).append( $('<p>Coś poszło nie tak. Więcej informacji w konsoli przeglądarki. Możesz <a href="#" class="CzyWieszEmailDoAutoraWyslij">kliknąć tutaj</a>, aby gadżet wysłał twórcy e-mail z danymi błędu.<span class="CzyWieszEmailDoAutoraWyslano"></span><br />Opisz też co się stało na <a href="https://pl.wikipedia.org/wiki/Dyskusja_wikipedysty:Kaligula" class="czywiesz-external" target="_blank">jego stronie dyskusji</a>.</p>') );
}}`.replace(/\n\t+/g,"\n");let n=`== [[${i}|${e.wgTitle}]] ==\n`+"\x3c!-- artykuł zgłoszony za pomocą gadżetu CzyWiesz --\x3e\n"+`{{licznik czasu|start=${o}|zdarzenie=Dyskusja|rgz=ż|dni=30|nie archiwizuj=tak}}\n`+t.file+t.question+s+"\n"+"\x3c!--\n"+"\tUwaga! Jeśli artykuł ma istotne błędy, to w CW/weryfikacja ustaw:\n"+"\tstatus = problemy \n"+"--\x3e\n"+(t.comment?t.comment+" ":"")+"~~"+"~~";e.log("input:",n);await this.createNomination(n,a);await this.inform_r();await this.inform_a();await this.inform_w();this.success()}async createNomination(t,i){var a=this.core;var e=this.values;a.log("DYKnomination.values:",e);this.loadbar.next();try{let e=this.setupNominationPage();await d({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:e,text:t,summary:i,watchlist:"watch",token:a.edittoken}});this.loadbar.next();await d({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:a.getBaseNew(),appendtext:"\n{"+"{"+e+"}}",summary:i,watchlist:"nochange",token:a.edittoken}})}catch(e){a.errors.push("Błąd zgłaszania do rubryki: "+e+".");a.errors.show();console.error("Błąd zgłaszania do rubryki: ",e)}}async inform_r(){var t=this.core;var e=t.debugmode;let i=this.setupNominationPage();if(e){t.log(`edit: ${t.wgTitle}, subpage: ${i}`);return}try{await d({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:t.wgTitle,prependtext:"{"+"{Czy wiesz do artykułu|s="+i+"}"+"}\n",summary:t.config.summary_r,watchlist:"nochange",token:t.edittoken}})}catch(e){t.errors.push("Błąd informowania w artykule: "+e);t.errors.show();console.error("Błąd informowania w artykule:",e)}}async inform_a(){var t=this.core;var e=this.values;var i=t.debugmode;var a,o;if(!e.authorInf){return}let s=this.setupNominationPage();try{a=t.config.sectionTitle_a.replace("TITLE",t.wgTitle);o=t.config.summary_a.replace("TITLE",t.wgTitle);const n=e=>({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:i?p.debugBase+"/autor":"Dyskusja wikipedysty:"+e,section:"new",sectiontitle:a,text:(i?"debug: '''"+e+"'''\n":"")+"{"+"{subst:Czy wiesz - autor0|tytuł strony="+t.wgTitle+"|s="+s+"}} ~~"+"~~",summary:o,watchlist:"nochange",token:t.edittoken}});if(e.author.length>1){await d(n(e.author))}if(e.author2.length>1){await d(n(e.author2))}}catch(e){t.errors.push("Błąd informowania autora: "+e);t.errors.show();console.error("Błąd informowania autora:",e)}}async inform_w(){var i=this.core;var a=this.values;var e,o,s;if(a.wikiproject.length==0){return}else{s=i.config.sectionTitle_w.replace("TITLE",i.wgTitle);e=i.config.summary_w_newsection.replace("TITLE",i.wgTitle);o=i.config.summary_w.replace("TITLE",i.wgTitle);for(let t=0;t<a.wikiproject.length;t++){const n=a.wikiproject[t];try{await this.inform_wLoop(s,e,o,n)}catch(e){i.errors.push("Błąd informowania projektu: "+n.name+": "+e.toString()+".");i.errors.show();console.error("Błąd informowania projektu: "+n.name+": "+e.toString()+".");throw new Error(`Błąd informowania projektów (${t} / ${a.wikiproject.length}).`)}this.loadbar.next()}}}async inform_wLoop(e,t,i,a){var o=this.core;var s=o.debugmode;var n=a.page;o.log("curWikiproject:",a,"pageToEdit:",n);let r;let l=this.setupNominationPage();let c=`{{Czy wiesz - wikiprojekt|${o.wgTitle}|s=${l}}}`;if(!s){let e;try{e=await d({url:"/w/index.php?action=raw&title="+encodeURIComponent(n),cache:false})}catch(e){throw new Error(`Nieudany odczyt strony '${n}' (${e}).`)}if(!e.match(o.config.dykSectionIndicator)){e=e.replace("[[Kategoria:","== Czy wiesz ==\n"+o.config.dykSectionIndicator+"\n\n[[Kategoria:")}e=e.replace(o.config.dykSectionIndicator,o.config.dykSectionIndicator+"\n"+c);o.log("curWikiproject (2):",a,"pageToEdit (2):",n);r={url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:n,text:e,summary:i,watchlist:"nochange",token:o.edittoken}}}else{r={url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:p.debugBase+"/wikiprojekt",section:"new",sectiontitle:e+" • "+a.name,text:"debug: '''"+n+"'''\n"+c,summary:t,watchlist:"nochange",token:o.edittoken}}}await d(r)}success(){var t=this.core;var e=this.values;if(!t.errors.isEmpty()){t.errors.show();return false}this.loadbar.next("done");t.log("Zgłoszenie zakończone sukcesem!");let i=this.setupNominationPage();$(`
<div id="CzyWieszSuccess">
dialog.dialog({
<div class="floatright">${t.config.CWicon}</div>
width: 400,
<p style="margin-left: 10px;">Dziękujemy za
modal: true,
<a id="CzyWieszLinkAfter" href="/wiki/${encodeURIComponent(i)}" class="czywiesz-external" target="_blank">zgłoszenie</a>.
title: 'Wystąpił błąd',
<br /><br />
draggable: true,
Dla pewności możesz sprawdzić
dialogClass: "wikiEditor-toolbar-dialog",
<a href="/wiki/Specjalna:Wk%C5%82ad/${encodeURIComponent(e.signature)}" class="czywiesz-external" target="_blank">swój wkład</a>,
close: function() { $(this).dialog("destroy"); $(this).remove();}
czy wszystko poszło zgodnie z planem.<br />
});
<small><a class="CzyWieszEmailDoAutoraToggle">(Coś nie działa?)</a></small>
$('#CzyWieszErrorDialog a.CzyWieszEmailDoAutoraWyslij').click( DYKnomination.emailauthor );
<div class="CzyWieszEmailDoAutoraInfo" style="display:none;">
}];
Jeśli coś poszło nie tak, to <a href="#" role="button" class="CzyWieszEmailDoAutoraWyslij">kliknij tutaj</a>,

aby wysłać twórcy gadżetu e-mail z opisem błędu, a gadżet dołączy do niego szczegóły techniczne.
DYKnomination.logs = [];
<span class="CzyWieszEmailDoAutoraWyslano"></span>
DYKnomination.log = function (){
</div>
// gather debug info in case of an error
<br />
DYKnomination.logs.push( (new Date()).toISOString() );
<a href="/wiki/Wikiprojekt:Czy_wiesz" title="Wikiprojekt:Czy wiesz">Wikiprojekt Czy wiesz</a></p></div>
// show debug info only in debug mode
`).dialog({modal:true,dialogClass:"wikiEditor-toolbar-dialog",title:t.config.tmpldone,close:function(){$(this).dialog("destroy");$(this).remove();$("#CzyWieszGadget").dialog("destroy");$("#CzyWieszGadget").remove()}});$("#CzyWieszSuccess a.CzyWieszEmailDoAutoraToggle").click(function(){$("#CzyWieszSuccess .CzyWieszEmailDoAutoraInfo").toggle()});$("#CzyWieszSuccess a.CzyWieszEmailDoAutoraWyslij").click(function(e){e.preventDefault();t.emailauthor(this)});return true}}t.exports={DykProcess:o}},{"./Loadbar":9,"./asyncAjax":13,"./config":15}],8:[function(e,t,i){class a{constructor(e,t){this.emailSupport=e;this.supportUser=t;this.errors=[]}clear(){this.errors.length=0}push(e){this.errors.push(e)}isEmpty(){return this.errors.length<1}show(){let t=$("<ul></ul>");for(let e=0;e<this.errors.length;e++){t.append($("<li></li>").html(this.errors[e]))}let e=$('<div id="CzyWieszErrorDialog"></div>').append(t).append($(`
if( this.debugmode && typeof(console) !== 'undefined' )
<p>Coś poszło nie tak. Jeśli powyższa lista nie wyjaśnia problemu, to więcej informacji jest w konsoli przeglądarki.</p>
console.log( (new Date()).toISOString() );
<p>Jeśli problem jest nietypowy, to <a href="#" role="button" class="CzyWieszEmailDoAutoraWyslij">wyślij e-mail programiście z danymi błędu</a> (szybka wysyłka logów mailem).<span class="CzyWieszEmailDoAutoraWyslano"></span></p>

<p>Możesz też opisać co się stało na <a href="https://pl.wikipedia.org/wiki/WP:BAR:TE" class="czywiesz-external" target="_blank">w kawiarence technicznej</a>.</p>
for(var i=0;i<arguments.length;i++) {
`));e.dialog({width:400,modal:true,title:"Wystąpił błąd",draggable:true,dialogClass:"wikiEditor-toolbar-dialog",close:function(){$(this).dialog("destroy");$(this).remove()}});const i=this;$("#CzyWieszErrorDialog a.CzyWieszEmailDoAutoraWyslij").click(function(e){e.preventDefault();i.emailSupport(this)})}}t.exports={ErrorInfo:a}},{}],9:[function(e,t,i){class a{constructor(e){this.task=-1;this.tasks=e}next(e){if(typeof e!="string"){this.task++;e=Math.min(this.task,4)}var t=this.tasks;var i;switch(e){case 0:i="Sprawdzam stronę zgłoszeń…";break;case 1:i="Pobieram dane z formularza…";break;case 2:i="Przygotowuję dane do wysłania…";break;case 3:i="Zgłaszam propozycję…";break;case 4:i="Informuję o zgłoszeniu…";break;case"done":i="Zakończono!";e=t;break;case"error":i="Wystąpił błąd!";break;default:i=""}$("#CzyWieszLoaderBarParagraph").text(i);if(e!="error"){$("#CzyWieszLoaderBarInner").css({width:100*e/t+"%"})}else{$("#CzyWieszLoaderBarInner").css({backgroundColor:"red"})}}}t.exports={Loadbar:a}},{}],10:[function(e,t,i){class o{constructor(e,t){this.cachedData=null;this.cacheTimestamp=null;this.apiUrl="https://pl.wikipedia.org/w/api.php";this.cacheMaxAge=24;this.cacheKey=t;this.titles={};if(typeof e==="object"){this.titles=e}}async fetchConfig(){const e=this.apiUrl;const t=new URLSearchParams({action:"query",prop:"revisions",titles:Object.keys(this.titles).join("|"),rvprop:"content",format:"json"});const i=await fetch(`${e}?${t.toString()}`);const a=await i.json();const o=a.query.pages;const s={};let n={};if(a.query.normalized){a.query.normalized.forEach(e=>{n[e.to]=e.from})}for(const r in o){if(o.hasOwnProperty(r)){const l=o[r];let e=l.title;if(e in this.titles){e=this.titles[e]}else if(e in n){e=this.titles[n[e]]}else{console.warn("title not found",e)}let t=l.revisions[0]["*"];s[e]=JSON.parse(t)}}this.cachedData=s;this.cacheTimestamp=Date.now();this.storageSave();return s}debug(e="",t=""){console.log("[DYK-opt]",e,t)}storageSave(){if(typeof mw==="object"&&mw.storage){this.debug("store");mw.storage.setObject(this.cacheKey,{cachedData:this.cachedData,cacheTimestamp:this.cacheTimestamp})}}storageRestore(){if(typeof mw==="object"&&mw.storage){let e=mw.storage.getObject(this.cacheKey);this.debug("restore",e);if(!e||!e.cachedData||!e.cacheTimestamp){return false}this.cachedData=e.cachedData;this.cacheTimestamp=e.cacheTimestamp;return true}return false}isCacheValid(){if(!this.cachedData||!this.cacheTimestamp){this.debug("not in internal");let e=this.storageRestore();if(!e){this.debug("no cache");return false}}let e=(Date.now()-this.cacheTimestamp)/(1e3*60*60);this.debug("cache age:",e);return e<this.cacheMaxAge}async getConfig(){if(this.isCacheValid()){this.debug("from cache");return this.cachedData}else{this.debug("from wiki api");return await this.fetchConfig()}}}async function a(){var e="test-gadget-options";var t={"Wikiprojekt:Czy_wiesz/konfiguracja/opcje.json":"options","Wikiprojekt:Czy_wiesz/konfiguracja/akcje.json":"events"};var i=new o(t,e);var a=await i.getConfig();console.log(a);console.log("Done")}t.exports={ReadJsonCached:o}},{}],11:[function(e,t,i){class a{constructor(){this.api=false;this.readLimit=100}getApi(){if(!this.api){this.api=new mw.Api}return this.api}firstPage(e){let t;for(t in e.query.pages){break}return e.query.pages[t]}async readRevs(e,t){const i=new Date;i.setDate(i.getDate()-t);const a=i.toISOString();let o;o=await this.getApi().get({action:"query",prop:"revisions",format:"json",rvprop:["ids"],rvend:a,rvlimit:"max",titles:e});const s=this.firstPage(o).revisions;o=await this.getApi().get({action:"query",prop:"revisions",format:"json",rvprop:["timestamp","user","size"],rvlimit:!s?1:s.length+1,titles:e});const n=this.firstPage(o).revisions;if(s&&s.length){const r=this.prepareData(n,i);return{revisions:n,records:r}}else{return{revisions:n,records:[]}}}prepareData(e,t){e.sort((e,t)=>new Date(t.timestamp)-new Date(e.timestamp));let n=0;if(t){if(t instanceof Date){n=t}else{n=new Date;n.setDate(n.getDate()-t)}}const r={};let l=false;let c=false;let d=false;e.some(e=>{const t=new Date(e.timestamp);if(c){const s=c.size-e.size;if(s>0){d.added+=s}else{d.removed+=Math.abs(s)}d.edits++}if(c&&t<n){l=true;return true}const i=e.timestamp.split("T")[0];const a=`${i}:${e.user}`;if(!r[a]){r[a]={day:i,user:e.user,added:0,removed:0,edits:0}}const o=r[a];c=e;d=o});if(!l){d.added+=c.size;d.edits++;d.isNew=true}const i=Object.values(r);return i}findWinner(e,t){for(const s of e){if(s.added>=t){return{record:s,size:s.added}}}let i;let a=0;let o=0;for(const s of e){if(s.added>0){if(s.added>a){a=s.added;i=s}o+=s.added;if(o>=t){return{record:i,size:o}}}}return{record:false,size:o}}daysAgo(e,t=new Date){const i=new Date(e);const a=t-i;const o=Math.floor(a/(1e3*60*60*24));return o}cutToDays(e,t){let i=[];for(const a of e){if(this.daysAgo(a.day)>t){break}i.push(a)}return i}}t.exports={RevisionList:a}},{}],12:[function(e,t,i){class a{constructor(){this.list=[];this.$select=null}load(){gadget.getWikiprojects().then(e=>{const t=e.wikiprojects.map(e=>({name:e.name,page:e.page}));this.list=t;this.$select=$('<select class="czywiesz-wikiproject"></select>').css("vertical-align","middle");this.$select.append('<option value="none">-- (żaden) --</option>');for(var i=0;i<this.list.length;i++){if(typeof this.list[i]=="function")continue;$("<option>").attr("value",i).text(this.list[i].name).appendTo(this.$select)}$("#CzyWieszWikiprojectContainer small").remove();$("#CzyWieszWikiprojectContainer").append(this.$select.clone())})}}t.exports={Wikiprojects:a}},{}],13:[function(e,t,i){function a(e){var t=$.Deferred();$.ajax(e).done(function(e){if(e.error){t.reject(e.error.info,e)}else{t.resolve(e)}}).fail(function(e){t.reject("$.ajax.fail()",e)});return t.promise()}function o(e){return new Promise((t,i)=>{a(e).done(function(e){t(e)}).fail(function(e,t){console.error(e,t);i(e)})})}t.exports={apiAjax:a,apiAsync:o}},{}],14:[function(e,t,i){let a={version:"6.11.0",buildDay:"2024-06-23"};t.exports={versionInfo:a}},{}],15:[function(e,t,i){var a={interp:".,:;!?…-–—()[]{}⟨⟩'\"„”«»/\\",miesiacArr:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],wikiConfigKey:"dyk-extra-options",wikiConfigTitles:{"Wikiprojekt:Czy_wiesz/konfiguracja/opcje.json":"options","Wikiprojekt:Czy_wiesz/konfiguracja/akcje.json":"events"},wiki:{events:[],options:{hardLimitDays:30,warnLimitDays:10,bigEdit:2048}},debugBase:"Wikipedysta:Nux/CzyWieszTest",supportUser:"Nux",supportEmailTopic:"Błąd w Gadżecie Czy wiesz",portlet_title:"Zgłoś do „Czy wiesz…”",dykSectionIndicator:"\x3c!-- Nowe zgłoszenia CzyWiesza wstawiaj poniżej tej linii. Nie zmieniaj i nie usuwaj tej linii --\x3e",summary:"TITLE nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_done:"TITLE ozn. jako ocenione za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_rollback:"TITLE wraca do propozycji za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_r:"Nominacja artykułu do rubryki „[[Szablon:Czy wiesz|Czy wiesz]]” za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_a:"/* Czy wiesz – [[TITLE]] */ nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",sectionTitle_a:"Czy wiesz – [[TITLE]]",summary_w:"/* Czy wiesz */ [[TITLE]] – nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_w_newsection:"/* Czy wiesz – [[TITLE]] */ nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",sectionTitle_w:"Czy wiesz – [[TITLE]]",styletag:$('<style id="CzyWieszStyleTag">'+`
// gather debug info in case of an error
.wikiEditor-toolbar-dialog .czy-wiesz-gallery-chosen { border: solid 2px red; }
DYKnomination.logs.push(arguments[i]);
#CzyWieszWikiprojectAdd {cursor: pointer; }
// show debug info only in debug mode
#CzyWieszGadget .czywiesz-tip {
if( this.debugmode && typeof(console) !== 'undefined' )
cursor: help;
console.log(arguments[i]);
color: #d05700;
}
}

DYKnomination.debugmode = false;

DYKnomination.debug = function () {
DYKnomination.debugmode = true;
DYKnomination.askuser();
}

/*
* function called when user clicks the link of the gadget
*
**/
DYKnomination.askuser = function () {

var D = DYKnomination;
var debug = D.debugmode;
if (D.errors.length > 1) { D.errors = [D.errors[0]]; }
//D.log(D); //creates circular structure when trying to stringify DYKnimination.logs at the end
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'));
var IMAGES = IMG_ARR.length;
var REFS = {
warn: D.config.no + '&nbsp;&nbsp;<strong style="color: red;">Brak źródeł dyskwalifikuje artykuł ze zgłoszenia!!</strong> <small>(<a class="czywiesz-external">info</a>)</small>',
ar1: [''],
ar2: ['Bibliografia','Przypisy']
}
$('.mw-headline').each(function(){
REFS.ar1.push( $(this).html().replace(/<span class="mw-headline-number"[^>]*>\d+<\/span> */,'') );
});
REFS.ar1 = REFS.ar1.join('#') + '#';
D.sourced = false;
for (var i=0; i < REFS.ar2.length; i++) {
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>Dokończ pytanie: „Czy wiesz…”</strong></p>');
var $question_textarea_paragraph = $('<p></p>')
.html('<textarea id="CzyWieszQuestion" style="width: 570px;" rows="2" value="" placeholder="Możesz wpisać kilka pytań, każde w osobnej linijce – pamiętaj, żeby wtedy każde zacząć wielokropkiem i zakończyć pytajnikiem." autofocus></textarea>');

var $ref_row = $('<tr id="CzyWieszRefs"></tr>')
.html('<td>Źródła: </td>'
+ '<td>' + ( D.sourced ? D.config.yes : REFS.warn ) + '</td>');
if (D.sourced) {
$ref_row.css({display: 'none'});
}

var $images_row = $('<tr></tr>')
.html('<td>Liczba grafik w artykule: </td>'
+ '<td><input type="text" id="CzyWieszImages" name="CzyWieszImages" value="' + IMAGES + '"'
+ 'style="width: 8%;text-align: right;margin-left: 2px;">'
+ '<span id="CzyWieszGalleryToggler" style="display: none;"> &nbsp;<small>(<a class="czywiesz-external">zaproponuj grafikę z artykułu</a>)</small></span>');

var $file_row = $('<tr></tr>')
.html('<td style="width: 30%;"><input type="checkbox" id="CzyWieszFile1" name="CzyWieszFile1" style="vertical-align: middle;"><label for="CzyWieszFile1"> Zaproponuj grafikę: </label></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;"><label for="CzyWieszAuthorInf">poinformować go?</label></td>');

D.author2_input = $('<input type="text" class="CzyWieszAuthor2" name="CzyWieszAuthor2" style="width: 50%;margin-left: 2px;vertical-align: middle;">');
var $author2_row = $('<span id="CzyWieszAuthor2Container"></span>').append(D.author2_input.clone());
$author2_row = $('<td></td>').append($author2_row)
.append('<a id="CzyWieszAuthor2Add">(+)</a>');
$author2_row = $('<tr id="CzyWieszAuthor2" style="display: none;" title="Dodaj *tylko* jeśli jego wkład w obecną rozbudowę artykułu był równie duży jak autora podanego powyżej!"></tr>').append('<td>Kolejny autor: </td>').append($author2_row);

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>');

var $signature_row = $('<tr></tr>')
.html('<td>Twój podpis: </td>'
+ '<td><input type="text" id="CzyWieszSignature" name="CzyWieszSignature" value="'
+ SIGNATURE.name + '" style="width: 50%;margin-left: 2px;"' + SIGNATURE.disabled + '></td>');

//wikiproject row (filled later by D.wikiprojects.load())
var $wikiproject_row = $('<span id="CzyWieszWikiprojectContainer"><small>(trwa ładowanie…)</small></span>');
$wikiproject_row = $('<td></td>').append($wikiproject_row)
.append('<a id="CzyWieszWikiprojectAdd">(+)</a>');
$wikiproject_row = $('<tr></tr>').append('<td>Powiadom wikiprojekt(y): </td>').append($wikiproject_row);

/* need addidtional comment?
* check → #CzyWieszGadget.height+30, #CzyWieszGadget.parent.height+20
* uncheck → #CzyWieszGadget.height-30, #CzyWieszGadget.parent.height-20
*/
var $comment_paragraph_checkbox = $('<input type="checkbox" id="CzyWieszCommentCheckbox" name="CzyWieszCommentCheckbox" style="vertical-align: middle;">')
.click(function(){
var el = $('#CzyWieszGadget');
if ( $(this).prop('checked') ) {
el.height(el.height+30);
el.parent().height(el.parent().height+20);
} else {
el.height(el.height-30);
el.parent().height(el.parent().height-20);
}
});
var $comment_paragraph = $('<p></p>').append($comment_paragraph_checkbox).append('<label for="CzyWieszCommentCheckbox">Potrzebujesz zamieścić dodatkowy komentarz? (Twój podpis zostanie dodany automatycznie)</label>');
var $comment_textarea_paragraph = $('<p id="CzyWieszCommentContainer" style="display: none;"></p>')
.html('<textarea id="CzyWieszComment" style="width: 570px;" rows="2" value=""></textarea>');

//rules paragraph
var $rules_paragraph = $('<p id="CzyWieszRules"></p>')
.html('<small>Zgłaszaj hasła nie później niż 10 dni od powstania lub rozbudowania hasła, '
+ 'posiadające źródła najlepiej w formie przypisów i zawierające co najmniej 2 kB samej treści.</small>')
.css({border: '1px solid #F0F080', backgroundColor: '#FFFFE0', paddingLeft: '5px'});
var $loading_bar = $('<div id="CzyWieszLoaderBar"></div>')
.css({width: '100%', backgroundColor: 'rgb(220, 220, 220)', border: '1px solid rgb(187, 187, 187)', borderRadius: '3px'})
.html('<p id="CzyWieszLoaderBarParagraph" style="margin: 0 0 0 7px; position: absolute;">&nbsp;</p>'
+ '<div id="CzyWieszLoaderBarInner" style="width: 0; height: 20px; background-color: #ABEC46; border: none; border-radius: 3px;"></div>');

//build the dialog
var $dialog = $('<table></table>').css('width','100%').append($ref_row).append($images_row).append($file_row)
.append($author_row).append($author2_row).append($date_row).append($signature_row).append($wikiproject_row);
$dialog = $('<div id="CzyWieszGadget"></div>').append($title_paragraph).append($question_paragraph).append($question_textarea_paragraph)
.append($dialog).append($comment_paragraph).append($comment_textarea_paragraph).append($rules_paragraph).append($loading_bar);
//main buttons
var buttons = {
"Zgłoś": function() {
if (D.sourced) {
D.checkForm();
}
else {
alert('Artykuł bez źródeł jest zdyskwalifikowany z nominacji. (Jeśli źródła są to zwróć uwagę czy tytuł sekcji jest prawidłowy, tzn. „Przypisy” lub „Bibliografia”.)');
}
},
"Anuluj" : function() {
$(this).dialog("close");
}
};
$dialog.dialog({
width: 600,
modal: true,
title: (window.DYKnomination_is_beta===true?'BETA: ':'')+'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",
close: function() { $(this).dialog("destroy"); $(this).remove();},
buttons: buttons
});

// autofill today's date
$('#CzyWieszDate').val(function(){
var a = new Date();
var y = a.getFullYear();
var m = a.getMonth()+1; m=(m<10?'0'+m:m);
var d = a.getDate(); d=(d<10?'0'+d:d);
var str = y + '-' + m + '-' + d;
return str;
});

//fill wikiprojects list
D.wikiprojects.load();

// check size of article and make a tip for the possible author
D.pagerevs();
if ($('#CzyWieszStyleTag').length == 0) {
D.config.styletag.appendTo('head');
}

// when user ticks he wants to nominate with picture → enable picture/file field
$('#CzyWieszFile1').change(function(){
var a=$('#CzyWieszFile2');
a.prop('disabled', !a.prop('disabled'));
});

// if there are images in article → add link to small gallery to quickly choose an image from article
if (IMAGES > 0) {
$('#CzyWieszGalleryToggler').toggle();
$('#CzyWieszGalleryToggler a').click(function(){
var GALLERY = '<div id="CzyWieszGalleryHolder">'
+ '<div id="CzyWieszGallery" style="background-color: #F2F5F7;">'
+ '<table><tbody>';
for (var i=0; i<IMG_ARR.length; i++) {
if (i%5 == 0) {GALLERY += '<tr>';}
GALLERY += '<td>';
GALLERY += IMG_ARR[i].outerHTML.replace(/\swidth=\"\d+\"/,' width="100"').replace(/\sheight=\"[^\"]*\"/,'').replace(/\sclass=\"[^\"]*\"/g,'');
GALLERY += '</td>';
if (i%5 == 4) {GALLERY += '</tr>';}
}
}
GALLERY += '</tbody></table> </div> </div>';
a.czywiesz-external {

color: #0645AD;
$(GALLERY).dialog({
text-decoration: underline;
cursor: pointer;
width: 547,
padding-right: 13px;
modal: true,
title: 'Wybierz grafikę:',
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=)
draggable: true,
center right no-repeat;
dialogClass: "wikiEditor-toolbar-dialog",
close: function() { $(this).dialog("destroy"); $(this).remove();},
buttons: {
"Wybierz": function() {
if ($('#CzyWieszFile1').length > 0) {
$('#CzyWieszFile1').prop('checked',true);
$('#CzyWieszFile2').prop('disabled', false);
$('#CzyWieszFile2').val( $('.czy-wiesz-gallery-chosen').length == 0 ? '' : decodeURIComponent($('.czy-wiesz-gallery-chosen')[0].src.match(/\/\/upload\.wikimedia\.org\/wikipedia\/commons(\/thumb)?\/.\/..\/([^\/]+)\/?/)[2]).replace(/_/g,' ') ); // ← extract file name
}

$(this).dialog("destroy");
$(this).remove();
},
"Anuluj" : function() {
$(this).dialog("close");
}
}
.dyk-button-off {
}
});
pointer-events: none;
$('#CzyWieszGallery img').each(function(){
opacity: .5;
$(this).click(function(){
$('.czy-wiesz-gallery-chosen').each(function(){
$(this).toggleClass('czy-wiesz-gallery-chosen');
});
$(this).toggleClass('czy-wiesz-gallery-chosen');
});
});
});
}

// if there are no refs (or they're badly named) → append this dialog to a link in $ref_row
$('#CzyWieszRefs small a').click(function(){
$('<div><div class="floatright">' + D.config.CWicon + '</div><p style="margin-left: 10px;">Zgodnie z wytycznymi <a href="/wiki/Wikiprojekt:Czy_wiesz" title="Wikiprojekt:Czy wiesz">Wikiprojektu Czy wiesz</a> zgłaszane hasło powinno posiadać źródła w formie bibliografii lub przypisów. <a href="/wiki/Wikiprojekt:Czy_wiesz/pomoc#Zg.C5.82aszanie_propozycji_i_poprawa_hase.C5.82" title="Wikiprojekt:Czy wiesz/pomoc#Zgłaszanie propozycji i poprawa haseł">(Więcej…)</a><br /><small>Możliwe, że w artykule sekcje ze źródłami są błędnie nazwane – w takim wypadku popraw je.</small></p></div>')
.dialog({ modal: true, dialogClass: "wikiEditor-toolbar-dialog", close: function() { $(this).dialog("destroy"); $(this).remove();} });
});

// click on (+) near wikiprojects combo box → add new combo box and enlarge the dialog window
$('#CzyWieszWikiprojectAdd').click(function(){
$('#CzyWieszWikiprojectContainer').append(D.wikiproject_select.clone());
$('#CzyWieszLoaderBar').parent().css({height: '+=24'});
});

// click on (+) near authors input field → add new input field and enlarge the dialog window
$('#CzyWieszAuthor2Add').click(function(){
if ($('#CzyWieszAuthor2').css('display') == 'none') {
$('#CzyWieszAuthor2').removeAttr('style');
// $('#CzyWieszLoaderBar').parent().css({height: '+=24'});
}
else {
$('#CzyWieszAuthor2Container').append(D.author2_input.clone());
$('#CzyWieszLoaderBar').parent().css({height: '+=24'});
}
});

$('#CzyWieszCommentCheckbox').change(function(){
$('#CzyWieszCommentContainer').toggle();
});

//$('#CzyWieszQuestion').keyup();
$('#CzyWieszQuestion').focus();
}

DYKnomination.pagerevs = function () {

var D = DYKnomination;
var a,b,c,d0,d,i,aj0,revs0,aj,revs,str,maxdiffsize,maxdiffrev,maxdiffuser,maxdiffdate,g;

d = new Date();
a = d.toISOString(); // '2012-08-14T17:43:33Z' OR '2012-08-14T17:43:33.324Z'
//date after toISOString() is in UTC = without TimezoneOffset
d.setDate(d.getDate()-10); // 10 days before and from 00:00:00 on that day
d.setHours(0); d.setMinutes(0); d.setSeconds(0); d.setMilliseconds(0);
b = d.toISOString();

$.ajax('/w/api.php?action=query&prop=revisions&format=json&rvprop=timestamp%7Cuser%7Csize&redirects=&indexpageids='
+ '&rvlimit=max'
+ '&rvstart=' + encodeURIComponent(a)
+ '&rvend=' + encodeURIComponent(b)
+ '&titles=' + encodeURIComponent(D.wgTitle)
)
.done(function(d0){
// number of edits in last 10 days
revs0 = (d0.query.pages[d0.query.pageids[0]].revisions ? d0.query.pages[d0.query.pageids[0]].revisions.length : 0);

// get one more revision to check current size and diffsize of last one in 10 days period
$.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){
aj = d.query.pages[d.query.pageids[0]].revisions;
revs = aj.length;
D.log('edits in last 10 days:',aj);

if (revs0 > 0) {
// there are edits in last 10 days
aj0 = d0.query.pages[d0.query.pageids[0]].revisions;
//revs0 = aj0.length;
D.log('edits in last 10 days, plus one more:',aj0);

// check the author of the biggest edit in last 10 days
str=[];
for (var i=0;i<aj.length;i++){
if (aj[i+1]) {
str.push(aj[i].size-aj[i+1].size);
}
}
else {
#CzyWieszErrorDialog.wait-im-sending-email, #CzyWieszSuccess.wait-im-sending-email {
// (revs0 == revs) means the article was *created* in last 10 days so last edit really diffs from 0
cursor: wait;
if (revs0 == revs) {str.push(aj[i].size);}
}
}
}
`+"</style>"),yes:'<img alt="Crystal Clear app clean.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/20px-Crystal_Clear_app_clean.png" width="20" height="20">',no:'<img alt="Crystal Clear action button cancel.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/20px-Crystal_Clear_action_button_cancel.png" width="20" height="20">',CWicon:'<img alt="PL Wiki CzyWiesz ikona.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f4/PL_Wiki_CzyWiesz_ikona.svg/80px-PL_Wiki_CzyWiesz_ikona.svg.png" width="80" height="80" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f4/PL_Wiki_CzyWiesz_ikona.svg/120px-PL_Wiki_CzyWiesz_ikona.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f4/PL_Wiki_CzyWiesz_ikona.svg/160px-PL_Wiki_CzyWiesz_ikona.svg.png 2x">',tmpldone:'<span class="template-done"><img alt="Crystal Clear app clean.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/20px-Crystal_Clear_app_clean.png" width="20" height="20" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/30px-Crystal_Clear_app_clean.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/40px-Crystal_Clear_app_clean.png 2x"><span style="display:none">T</span> <b>Załatwione</b></span>',tmplndone:'<span class="template-not-done"><img alt="Crystal Clear action button cancel.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/20px-Crystal_Clear_action_button_cancel.png" width="20" height="20" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/30px-Crystal_Clear_action_button_cancel.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/40px-Crystal_Clear_action_button_cancel.png 2x"><span style="display:none">N</span> <b>Niezałatwione</b></span>'};t.exports={config:a}},{}],16:[function(e,t,i){const{DYKnomination:a,createDyk:o,createFullDyk:s}=e("./CzyWiesz");const{DoneHandling:n}=e("./DoneHandling");const r=mw.config.get("wgNamespaceNumber");const l=mw.config.get("wgPageName");if(r===0){s(a);mw.hook("userjs.DYKnomination.loaded").fire(a);mw.loader.using(["mediawiki.util"]).then(function(){$(document).ready(function(){const e=mw.util.addPortletLink("p-tb","#",(window.DYKnomination_is_beta===true?"BETA: ":"")+a.config.portlet_title,"t-DYKnomination");$(e).click(e=>{e.preventDefault();a.askuser()}).attr("title",`Nominacje do WP:CW v${a.about.version}`);mw.hook("userjs.DYKnomination.ready").fire(a)})})}else if(l=="Wikipedia:Narzędzia/CzyWiesz"){$(".DYKnomination-version").html(a.about.version)}if(l.indexOf("/propozycje")>0||l.indexOf("/ocenione")>0){o(a);mw.hook("userjs.DYKnomination.loaded").fire(a,{DoneHandling:n});let e=mw.config.get("wgUserGroups").includes("editor");if(e){const c=new n(l,a);$(document).ready(function(){c.init()})}else{console.warn("[DYK]","Brak uprawnień redaktorskich, nie można zarządzać propozycjami.")}}window.DYKnomination=a},{"./CzyWiesz":1,"./DoneHandling":3}],17:[function(e,t,i){function a(e,t){const i=t?e:$("<div>"+e+"</div>");return new Promise(t=>{OO.ui.confirm(i).done(function(e){t(e)})})}t.exports={stdConfirm:a}},{}],18:[function(e,t,i){function a(e){return e.toString().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}t.exports={htmlspecialchars:a}},{}]},{},[16]);

// </nowiki>
maxdiffsize = Math.max.apply(Math,str);
maxdiffrev = $.inArray(maxdiffsize,str); //if the same size is more than once it brings the most recent revision!
(maxdiffsize > 0) ? (maxdiffsize = '+' + maxdiffsize) : '';
maxdiffuser = aj[maxdiffrev].user;
//maxdiffdate; get this in format YYYY-MM-DD but in local time (with TimezoneOffset)
//this way is quicker than converting (g.getFullYear() +'-'+ g.getMonth() +'-'+ g.getDate()) from YYYY-M-D into YYYY-MM-DD
//toISOString converts time to UTC for display so if we remove TimezoneOffset then the result after toISOString is good
g = new Date(Date.parse( aj[maxdiffrev].timestamp ));
g.setMinutes(g.getMinutes()-g.getTimezoneOffset());
maxdiffdate = g.toISOString().split('T')[0];

D.log('\"[str,maxdiffrev,maxdiffsize,maxdiffuser]\":',[str,maxdiffrev,maxdiffsize,maxdiffuser]);

/* OLD VER |START|
// add a tip about possible author…
$('#CzyWieszAuthor').after('&nbsp;<small id="CzyWieszAuthorTip">(<a class="czywiesz-external">sugestia?</a>)</small>&nbsp;');
$('#CzyWieszAuthorTip a').click(function(){
prompt('Autor największej edycji (' + maxdiffsize + ') w ciągu ostatnich 10 dni (skopiuj wciskając Ctrl+C):',maxdiffuser);
$('#CzyWieszAuthor').select();
});
// …and about date
$('#CzyWieszDate').after('&nbsp;<small id="CzyWieszDateTip">(<a class="czywiesz-external">sugestia?</a>)</small>&nbsp;');
$('#CzyWieszDateTip a').click(function(){
prompt('Data największej edycji (' + maxdiffsize + ') w ciągu ostatnich 10 dni (skopiuj wciskając Ctrl+C):',maxdiffdate);
$('#CzyWieszDate').select();
});
OLD VER |END| */
/* NEW VER |START| */
// add a possible author…
$('#CzyWieszAuthor').val(maxdiffuser);
$('#CzyWieszAuthor').after('&nbsp;<small id="CzyWieszAuthorTip"><span class="czywiesz-external" title="Autor największej edycji (' + maxdiffsize + ' znaków) w ciągu ostatnich 10 dni. 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="czywiesz-external" title="To jest data największej edycji (' + maxdiffsize + ' znaków) w ciągu ostatnich 10 dni. Upewnij się czy to o tę datę chodzi!">&nbsp;(!)&nbsp;</span></small>&nbsp;');
/* NEW VER |END| */
}
else {
// there are no edits in last 10 days
//revs0 = 0;
D.log(d.query.pages[d.query.pageids[0]]);
alert('W ciągu ostatnich 10 dni nie dokonano żadnej edycji. Jeszcze raz rozważ zgłaszanie tego artykułu, gdyż może to być niezgodne z regulaminem.');
}
D.articlesize = {
size: aj[0].size,
enough: (aj[0].size > 2047),
warn: ( (aj[0].size > 2047) ? '' : (D.config.no + '&nbsp;&nbsp;<strong style="color: red;">Rozmiar ' + aj[0].size + ' b dyskwalifikuje artykuł ze zgłoszenia!!</strong> <!--small>(<a class="czywiesz-external">info</a>)</small-->') )
};

var $size_row = $('<tr id="CzyWieszSize"></tr>')
.insertAfter($('#CzyWieszRefs'))
.html('<td>Rozmiar (>2 kb): </td>'
+ '<td>' + (D.articlesize.enough ? D.config.yes : D.articlesize.warn) + '</td>')
.css( D.articlesize.enough ? {display: 'none'} : {});
})
.fail(function(data){
D.errors.push('Błąd pobierania historii artykułu (funkcja wewnętrzna): $.ajax.fail().');
D.errors[0]();
console.error('Błąd pobierania historii artykułu (funkcja wewnętrzna): $.ajax.fail().');
console.error(data);
});
})
.fail(function(data){
D.errors.push('Błąd pobierania historii artykułu (funkcja zewnętrzna): $.ajax.fail().');
D.errors[0]();
console.error('Błąd pobierania historii artykułu (funkcja zewnętrzna): $.ajax.fail().');
console.error(data);
});
}

if (!String.toRegExp){
String.prototype.toRegExp = function () {
return this.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
}
/* DYKnomination.strToRegExp = function (str) {
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}*/
DYKnomination.values = {}

DYKnomination.checkForm = function () {

var D = DYKnomination;
var debug = D.debugmode;

//get the question
var QUESTION = $('#CzyWieszQuestion').val().replace(/(.*?)(--)?~{3,5}\s*$/,'$1').replace(/^\s*(.*?)\s*$/,'$1').replace(/^([Cc]zy wiesz)?[\s,\.]*/,''); // remove signature, spaces on beginning and end, beginning of question ("Czy wiesz"), first dots
var FILE = ( $('#CzyWieszFile1').prop('checked') ? $('#CzyWieszFile2').val().replace(/^\s*(.*?)\s*$/,'$1') : '' ); // remove spaces on beginning and end
var IMAGES = $('#CzyWieszImages').val().replace(/^\s*(.*?)\s*$/,'$1'); // remove spaces on beginning and end
var REFS = (D.sourced ? '+' : ' ');
var AUTHOR = $('#CzyWieszAuthor').val().replace(/^\s*(.*?)\s*$/,'$1'); // remove spaces on beginning and end
var AUTHOR2 = [];
//get authors
$('.CzyWieszAuthor2').each( function(index) {
var val = $(this).val().replace(/^\s*(.*?)\s*$/,'$1'); // remove spaces on beginning and end
if (val != '') {
AUTHOR2.push(val);
}
});
var AUTHOR_INF = ( $('#CzyWieszAuthorInf').prop('checked') ? true : false );
var DATE = $('#CzyWieszDate').val().replace(/^\s*(.*?)\s*$/,'$1'); // remove spaces on beginning and end
var SIGNATURE = $('#CzyWieszSignature').val().replace(/^\s*(.*?)\s*$/,'$1'); // remove spaces on beginning and end
var WIKIPROJECT = [];
if (!debug) {
//get the wikiprojects
$('.czywiesz-wikiproject').each( function(index) {
var val = $(this).val();
if (val != 'none') {
WIKIPROJECT.push(D.wikiprojects.list[val]);
}
});
}
else {
WIKIPROJECT = ['Wikipedysta:Kaligula/js/CzyWiesz.js/wikiprojekt'];
}
var COMMENT = ( $('#CzyWieszCommentCheckbox').prop('checked') ? $('#CzyWieszComment').val().replace(/^\s*(.*?)\s*$/,'$1') : false );

//validate form
var invalid = {is: false, fields: [], alert: []};
if (typeof QUESTION != 'string' || QUESTION === '') {
invalid.is = true;
invalid.fields.push('Question');
invalid.alert.push('Wpisz pytanie.');
}
else {
var tITLE = D.wgTitle[0].toLowerCase()+D.wgTitle.substr(1); //title in link starting with lowercase
if (QUESTION.length < 10) {
invalid.is = true;
invalid.fields.push('Question');
invalid.alert.push('Zadaj poprawne pytanie – to jest za krótkie.');
}
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 \'\'\'[['+D.wgTitle+']]\'\'\' lub \'\'\'[['+tITLE+']]\'\'\'\n lub\n \'\'\'[['+D.wgTitle+'|nazwa do wyświetlenia, jeśli inna niż tytuł]]\'\'\'.');
}
else {
QUESTION = (QUESTION.match(/^(…|\.\.\.)/) ? '' : '…') + QUESTION.replace(/\.\.\./g,'…') + (QUESTION.match(/\?[\s]*$/) ? '' : '?');
QUESTION = QUESTION.replace(/\n+/g,'\n\n') + '\n';
}
}
if (typeof FILE == 'string' && FILE != '') {
FILE = '[[Plik:' + (FILE.match(/^(Plik:|File:)/i) ? FILE.replace(/^(Plik:|File:)/i,'') : (FILE)) + '|100px|right]]\n';
}
if (typeof IMAGES != 'string' || IMAGES === '') {
invalid.is = true;
invalid.fields.push('Images');
invalid.alert.push('Podaj liczbę grafik w artykule.');
}
if (typeof AUTHOR != 'string' || AUTHOR === '') {
invalid.is = true;
invalid.fields.push('Author');
invalid.alert.push('Podaj autora artykułu.');
}
if (typeof DATE != 'string' || DATE === '' || DATE.match(/\d\d\d\d-\d\d-\d\d/).length==0) {
invalid.is = true;
invalid.fields.push('Date');
invalid.alert.push('Podaj datę utworzenia/rozbudowy artykułu (w formacie rrrr-mm-dd).');
}
if (typeof SIGNATURE != 'string' || SIGNATURE === '') {
invalid.is = true;
invalid.fields.push('Signature');
invalid.alert.push('Podpisz się.');
}
if ( (typeof COMMENT!='string'&&typeof COMMENT!='boolean') || (typeof COMMENT=='string' && (COMMENT===''||COMMENT.match(/^[^A-ZĘÓĄŚŁŻŹĆŃa-zęóąśłżźćń]+$/)) ) || (typeof COMMENT=='string'&&COMMENT==true) ) {
invalid.is = true;
invalid.fields.push('Comment');
invalid.alert.push('Jeśli musisz podać jakiś komentarz to podaj jakiś sensowny, jeśli nie – wyłącz to pole. Nie wstawiaj w tym polu samego podpisu (lecz po komentarzu podpisz się).');
}

if (invalid.is) {
$(invalid.fields).each(function(){
$('#CzyWiesz'+this).css({border: 'solid 2px red'}).change(function(){
$(this).css({border: 'none'});
});
});
alert(invalid.alert.join('\n'));
$('#CzyWiesz'+invalid.fields[0]).focus();
}
else {
D.values = {
question: QUESTION,
file: FILE,
images: IMAGES,
refs: REFS,
author: AUTHOR,
date: DATE,
signature: SIGNATURE,
comment: COMMENT,
authorInf: AUTHOR_INF,
wikiproject: WIKIPROJECT
}
// here is the call of editing/ajax function
D.prepare();
}
}

DYKnomination.task = -1;
DYKnomination.loadbar = function (task) {

var D = DYKnomination;
if (task == false) {
D.task = -1;
return;
}
else if (typeof task == 'undefined'){
D.task++;
task = Math.min(D.task,4);
}
var tasks = D.tasks;
var txt;
switch (task) {
case 0:
txt = 'Sprawdzam stronę zgłoszeń…';
break;
case 1:
txt = 'Pobieram dane z formularza…';
break;
case 2:
txt = 'Przygotowuję dane do wysłania…';
break;
case 3:
txt = 'Zgłaszam propozycję…';
break;
case 4:
txt = 'Informuję o zgłoszeniu…';
break;
case 'done':
txt = 'Zakończono!';
task = tasks;
break;
case 'error':
txt = 'Wystąpił błąd!';
break;
default:
txt = '';
}

$('#CzyWieszLoaderBarParagraph').text(txt);
if (task != 'error') { // 'error' → task/tasks = NaN
$('#CzyWieszLoaderBarInner').css({width: 100*task/tasks + '%'});
}
else {
$('#CzyWieszLoaderBarInner').css({backgroundColor: 'red'});
}

}

DYKnomination.getEditToken = function (callback,force) {
var D = DYKnomination;
var debug = D.debugmode;

var tmpToken = mw.user.tokens.get('csrfToken');
if (!force && typeof tmpToken === 'string' && tmpToken.length === 34) {
D.edittoken = tmpToken;
D.log('DYKnomination.edittoken :',D.edittoken);
//runs callback function with all given parameters except two first ones
window.DYKnomination[callback].apply(null, Array.prototype.slice.call(arguments, 2));
}
else {
/* get edittoken */
$.ajax({
url:'/w/api.php?action=query&meta=tokens&format=json&type=csrf',
cache: false
})
.done(function(data){
D.log('CzyWiesz edittoken: komenda GET zakończona\nodpowiedź serwera:',data);
if (data.error) {
D.errors.push('Błąd pobierania tokena: ' + data.error.info + '.');
D.errors[0]();
console.error('Błąd pobierania tokena: ' + data.error.info + '.');
console.error(data);
}
else {
D.log('DYKnomination.edittoken :',D.edittoken,'data.tokens.edittoken :',data.query.tokens.csrftoken);
D.edittoken = data.query.tokens.csrftoken;
D.log('DYKnomination.edittoken :',D.edittoken);
//runs callback function with all given parameters except two first ones
window.DYKnomination[callback].apply(null, Array.prototype.slice.call(arguments, 2));
}
})
.fail(function(data){
D.errors.push('Błąd pobierania tokena: $.ajax.fail().');
D.errors[0]();
console.error('Błąd pobierania tokena: $.ajax.fail().');
console.error(data);
});
}
}

DYKnomination.prepare = function () {

var D = DYKnomination;
var Dv = D.values;
var debug = D.debugmode;

/* prepare place for edition */

D.tasks = 4 + Dv.wikiproject.length + (Dv.authorInf?1:0);

D.loadbar();

var miesiacArr = D.config.miesiacArr;
var DATE = Dv.date.match(/\d+/g);
var dzisiaj = DATE[2].replace(/^0/,'') + ' ' + miesiacArr[(+(DATE[1])-1)]; //reading localmonthnamegen, but DATE[1]is a string since we could've added leading zero before
D.log('dzisiaj: ' + dzisiaj);
var updatesection = false;

var sections,section,NR; // section must be 'undefined' at the beginning!!! (look at the end of function)

// search for section 'dd mmmm', because there may be a section like 'Białowieski megaczywiesz na koniec sierpnia (ew. pocz. września)'
$.ajax({
url: '/w/api.php?action=parse&format=json&page=' + encodeURIComponent(debug ? 'Wikipedysta:Kaligula/js/CzyWiesz.js/test' : 'Wikiprojekt:Czy wiesz/propozycje') + '&prop=sections',
cache: false
})
.done(function(data){
D.log(
'get sections: komenda GET zakończona',
'URI: /w/api.php?action=parse&format=json&page=' + encodeURIComponent(debug ? 'Wikipedysta:Kaligula/js/CzyWiesz.js/test' : 'Wikiprojekt:Czy wiesz/propozycje') + '&prop=sections',
'get sections: odpowiedź serwera:',
data
);
if (data.error) {
D.errors.push('Błąd sprawdzania sekcji na stronie zgłoszeń: ' + data.error.info + '.');
D.errors[0]();
console.error('Błąd sprawdzania sekcji na stronie zgłoszeń: ' + data.error.info + '.');
console.error(data);
}
else {
sections = data.parse.sections;
D.log('Sekcje na stronie Wikiprojekt:Czy wiesz/propozycje:',sections);
var m0 = +(DATE[1]) - 1; //article's nomination month [0…11] //it was a string since we could've added leading zero
var d0 = +(DATE[2]); //article's nomination day //it was a string since we could've added leading zero
var mt = 99; //shorthand for 'Month - Temporary variable' - in January the previous months have bigger nr than one of the sections so if the nomination has a date that is earlier than the first date in this year then the script will go through all sections and save the nomination as last one
D.log('current month [m0]:',m0,', current day [d0]:',d0);
section = 0;
updatesection = -1; // treat it as a flag if the target section on nomination Wikiproject page is found; when found, its value is set to 0 or 1
NR = 1;
var nominated = false;

$(sections).each(function(){
if ( this.level && (this.level == 1) && this.line && (updatesection < 0) ) { //conditions: lvl1 is a date heading (not an article heading) + has name + we still haven't found target section
var d = this.line.split(' ')[0];
var m = $.inArray(this.line.split(' ')[1],miesiacArr);
if ( d.match(/^\d+$/) && (m>-1) ) { //heading's is a date in format 'd mmmm'
if (m0 == m && d0 == d) { //found it! the article's nomination date is equal to this (newest) section
section = Number(this.index);
updatesection = 1;
//↑dla obecnej już sekcji updatesection==1 (yes) → edit section
//find out what number should the nomination have (among today's nominations)
while (sections[section+NR] && sections[section+NR].level == 2) {
NR++;
}
/* this results sometimes in a number equal/smaller than number of last section.lvl1 in this day (happens when they delete one nomination section – whether wrong or already checked); if they want to have *always* a consecutive number it can be done by:
var j=1;
while (sections[section+j] && sections[section+j].level == 2) {
NR = +(sections[section+j].line.match(/^\d+/)[0])+1;
j++;
}
*/
}
else if ( (m0==m && d0>d) || (m0>m && m0-11!=m) || m0+11==m ) { //article's nomination date is newer than this (newest) section; cases: 1) found target month in this section but earlier days, 2) found earlier month in section (but exclude: nominating December articles in January, when a few January articles were already nominated), 3) want to nominate first January article and found December as first section
section = Number(this.index)-1;
updatesection = 0;
//↑dla nieobecnej updatesection==0 (no) → append section
}
else if (mt<m) { //trying to nominate December article (or a January article from a not-yet-nominated-earlier date while latter nomination dates are present) we went back past January 1st to the previous year's dates
if (m0 < 6) { //if we need date in first half of the year (e.g. first days of January) then as above
section = Number(this.index)-1;
updatesection = 0;
//↑dla nieobecnej updatesection==0 (no) → append section
}
else { //then as below (=we go on and check next)
section = Number(this.index);
//↑dla nieobecnej najstarszej updatesection<0 (unset) → new section
}
}
else {
//if not above (=looking for a date older than this section) - continue (even until end)
section = Number(this.index);
//↑dla nieobecnej najstarszej updatesection<0 (unset) → new section
}
mt = m;
}
D.log('section:',section,', month [m]:',m,', day [d]:',+d,'("',d,'"), if this was the date, the new section number would be here [NR]:',NR,', updatesection:',updatesection);
}
if ( this.level && (this.level == 2) && 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 />'
+ '<a href=\"/wiki/'+encodeURIComponent(debug?'Wikipedysta:Kaligula/js/CzyWiesz.js/test':'Wikiprojekt:Czy wiesz/propozycje')+'#' + this.anchor + '\" class="czywiesz-external" target="_blank">Sprawdź</a>.');
D.errors[0]();
console.error('Podany artykuł prawdopodobnie już jest zgłoszony do rubryki „Czy wiesz…”.\n'
+ 'Sprawdź: '+location.origin+'/wiki/'+encodeURIComponent(debug?'Wikipedysta:Kaligula/js/CzyWiesz.js/test':'Wikiprojekt:Czy wiesz/propozycje')+'#' + this.anchor);
}
}
});

if (nominated === false) {
Dv.nr = NR
Dv.updatesection = updatesection;
Dv.dzisiaj = dzisiaj;
Dv.section = section;
D.getEditToken(
'runNominate',
false
);
}
}
})
.fail(function(data){
D.errors.push('Błąd pobierania listy sekcji: $.ajax.fail().');
D.errors[0]();
console.error('Błąd pobierania listy sekcji: $.ajax.fail().');
console.error(data);
}); // returns sections and section
// we know the section to edit (section) and if it's up-to-date (updatesection:boolean)

}

DYKnomination.runNominate = function () {

var D = DYKnomination;
var Dv = D.values;
var debug = D.debugmode;
var summary,input;

// NR ready, make summary
summary = D.config.summary.replace('NR (TITLE)',Dv.nr+' ('+D.wgTitle+')');

/* making data ready */
D.loadbar();

// 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 + '|?|?|?}}\n'
+ (Dv.comment ? Dv.comment + ' ' : '') + '~~' + '~~';

// text ready
// ↓ new section or not? if updatesection =
// = 1 then add only the nomination to a section (=update section)
// = 0 then add whole new section to a section (=append section)
// = -1 then add whole new section at the end (=new section)

if (Dv.updatesection == 1) { // if up-to-date → new subsection lvl2 inside date section
input = '\n\n' + input;
}
else if (Dv.updatesection < 1) { // if not up-to-date → new section lvl1 with date + new subsection lvl2 inside date section
input = '\n\n= ' + Dv.dzisiaj +' =\n' + input + '\n\n';
}
D.log('input:',input);

Dv.input = input;
Dv.summary = summary;
D.nominate();
}

DYKnomination.nominate = function () {

var D = DYKnomination;
var Dv = D.values;
var debug = D.debugmode;
D.log('DYKnomination.values:',Dv);

D.loadbar();

/* edit */

// Wikiprojekt:Czy wiesz
D.loadbar();
$.ajax({
url : '/w/api.php',
type: 'POST',
data : {
action : 'edit',
format : 'json',
title : (debug ? 'Wikipedysta:Kaligula/js/CzyWiesz.js/test' : 'Wikiprojekt:Czy wiesz/propozycje'),
section : Dv.section,
appendtext : Dv.input,
summary : Dv.summary,
watchlist : 'nochange',
token : D.edittoken
}
})
.done(function(data){
D.log('CzyWiesz nominate: POST done\nserver response:',data);
if (data.error) {
D.errors.push('Błąd zgłaszania do rubryki: ' + data.error.info + '.');
D.errors[0]();
console.error('Błąd zgłaszania do rubryki: ' + data.error.info + '.');
console.error(data);
}
else {
D.inform_r();
}
})
.fail(function(data){
D.errors.push('Błąd zgłaszania do rubryki: $.ajax.fail().');
D.errors[0]();
console.error('Błąd zgłaszania do rubryki: $.ajax.fail().');
console.error('URI: /w/api.php?action=edit&format=json&title='
+ encodeURIComponent( (debug ? 'Wikipedysta:Kaligula/js/CzyWiesz.js/test' : 'Wikiprojekt:Czy wiesz/propozycje') )
+ '&section=' + Dv.section + '&appendtext=' + encodeURIComponent(Dv.input)
+ '&summary=' + encodeURIComponent(Dv.summary) + '&token=' + encodeURIComponent(D.edittoken));
console.error(data);
});
}

DYKnomination.inform_r = function () {
var D = DYKnomination;
var Dv = D.values;
var debug = D.debugmode;

/* inform readers (=insert template to nominated article) */

if ( debug ) {
D.inform_a();
}
else {
$.ajax({
url : '/w/api.php',
type : 'POST',
data : {
action : 'edit',
format : 'json',
title : D.wgTitle,
prependtext : '{' + '{Czy wiesz do artykułu|' + Dv.nr + '}' + '}\n',
summary : D.config.summary_r,
watchlist : 'nochange',
token : D.edittoken
}
})
.done(function(data){
D.log('inform_r: komenda POST zakończona\nodpowiedź serwera:',data);
if (data.error) {
D.errors.push('Błąd informowania w artykule: ' + data.error.info + '.');
D.errors[0]();
console.error('Błąd informowania w artykule: ' + data.error.info + '.');
console.error(data);
}
else {
if (Dv.authorInf) {
D.inform_a();
}
else {
D.inform_w();
}
}
})
.fail(function(data){
D.errors.push('Błąd informowania w artykule: $.ajax.fail().');
D.errors[0]();
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));
console.error(data);
});
}
}

DYKnomination.inform_a = function () {
var D = DYKnomination;
var Dv = D.values;
var debug = D.debugmode;
var secttitl_a,summary_a;

/* inform author */

if ( !Dv.authorInf ) {
D.inform_w();
}
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',
type : 'POST',
data : {
action : 'edit',
format : 'json',
title : (debug ? 'Wikipedysta:Kaligula/js/CzyWiesz.js/autor' : 'Dyskusja wikipedysty:' + Dv.author),
section : 'new',
sectiontitle : secttitl_a,
text : '{' + '{subst:Czy wiesz - autor0|tytuł strony='+D.wgTitle+'}} ~~' + '~~',
summary : summary_a,
watchlist : 'nochange',
token : D.edittoken
}
})
.done(function(data){
D.log('autor_inf: komenda POST zakończona\nodpowiedź serwera:',data);
if (data.error) {
D.errors.push('Błąd informowania autora: ' + data.error.info + '.');
D.errors[0]();
console.error('Błąd informowania autora: ' + data.error.info + '.');
console.error(data);
}
else {
D.inform_w();
}
})
.fail(function(data){
D.errors.push('Błąd informowania autora: $.ajax.fail().');
D.errors[0]();
console.error('Błąd informowania autora: $.ajax.fail().');
console.error('URI: /w/api.php?action=edit&format=json&title='
+ encodeURIComponent(debug ? 'Wikipedysta:Kaligula/js/CzyWiesz.js/autor' : 'Dyskusja wikipedysty:' + Dv.author)
+ '&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);
});
}
}

DYKnomination.inform_w = function () {
var D = DYKnomination;
var Dv = D.values;
var debug = D.debugmode;
var summary_w,secttitl_w;

/* inform chosen wikiprojects */
if ( Dv.wikiproject.length == 0 ) {
D.success();
}
else {
// 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)
secttitl_w = D.config.secttitl_w.replace('TITLE',D.wgTitle);
summary_w = D.config.summary_w.replace('TITLE',D.wgTitle);
var summary_w2 = D.config.summary_w2.replace('TITLE',D.wgTitle);
for (var i=0;i<Dv.wikiproject.length;i++) {
// błąd powodował wstawianie informacji tylko do jednego z wielu wybranych w formularzu Wikiprojektów
// http://stackoverflow.com/questions/1676362/javascript-variable-binding-and-loop
(function(i) {
var curWikiproject = Dv.wikiproject[i];

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;
});
D.log('D.wikiprojects.list2',D.wikiprojects.list2);

var czy_talk;
var pageToEdit;
if (debug) {
pageToEdit = 'Wikipedysta:Kaligula/js/CzyWiesz.js/wikiprojekt';
D.wikiprojects.list2.push({
label : 'Wikipedysta:Kaligula/js/CzyWiesz.js/wikiprojekt',
page : 'Wikipedysta:Kaligula/js/CzyWiesz.js/wikiprojekt',
type : 'talk'
});
czy_talk = true;
} else if (wnr<0) {
pageToEdit = 'Wikiprojekt:'+curWikiproject;
} else if (D.wikiprojects.list2[wnr].type=='talk') {
pageToEdit = 'Dyskusja wikiprojektu:' + curWikiproject;
czy_talk = true;
} else {
pageToEdit = D.wikiprojects.list2[wnr].page;
}

D.log('czy_talk:',czy_talk,'D.wikiprojects.list2[wnr]:',D.wikiprojects.list2[wnr],'curWikiproject:',curWikiproject,'pageToEdit:',pageToEdit);

var obj;
if (czy_talk) {
//if report type is 'talk' (D.wikiprojects.list2[wnr].type=='talk' & czy_talk==true) just add new section
//DEBUG: debug page 'Wikipedysta:Kaligula/js/CzyWiesz.js/wikiprojekt' gets here, because now it's on list2
obj = {
url : '/w/api.php',
type : 'POST',
data : {
action : 'edit',
format : 'json',
title : pageToEdit,
section : 'new',
sectiontitle : secttitl_w,
text : '{' + '{Czy wiesz - wikiprojekt|' + D.wgTitle + '}} ~~' + '~~',
summary : summary_w,
watchlist : 'nochange',
token : D.edittoken
}
}
} else {
//if report type is not 'editsection' or 'subpage' then get page source [to edit]
obj = {
url : '/w/index.php?action=raw&title=' + encodeURIComponent(pageToEdit),
cache : false
}
}
D.log('obj:',obj);
$.ajax(obj)
.done(function(data){
D.log(pageToEdit+': komenda POST' + (czy_talk?'':'(cz. 1.)') + ' zakończona\nodpowiedź serwera:',data);
if (data.error) {
D.errors.push('Błąd informowania '+ pageToEdit + (czy_talk?'':'(cz. 1.)') + ': ' + data.error.info + '.');
D.errors[0]();
console.error('Błąd informowania '+ pageToEdit + (czy_talk?'':'(cz. 1.)') + ': ' + data.error.info + '.');
console.error(data);
}
else {
if (czy_talk) {
//if report type is 'talk' (needs to add new section) then this wikiproject is done
D.loadbar();
D.wikiprojects.counter++;
if (D.wikiprojects.counter>Dv.wikiproject.length) D.success();
}
else {
//if report type is not '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:');
}
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('czy_talk (2):',czy_talk,'D.wikiprojects.list2[wnr] (2):',D.wikiprojects.list2[wnr],'curWikiproject (2):',curWikiproject,'pageToEdit (2):',pageToEdit);

$.ajax({
url : '/w/api.php',
type : 'POST',
data: {
action: 'edit',
format: 'json',
title: pageToEdit,
text: data,
summary: summary_w2,
watchlist: 'nochange',
token: D.edittoken
}
})
.done(function(data2){
D.log(pageToEdit+': komenda POST' + (czy_talk?'':'(cz. 2.)') + ' zakończona\nodpowiedź serwera:',data2);
if (data2.error) {
D.errors.push('Błąd informowania '+ pageToEdit + (czy_talk?'':'(cz. 2.)') + ': ' + data2.error.info + '.');
D.errors[0]();
console.error('Błąd informowania '+ pageToEdit + (czy_talk?'':'(cz. 2.)') + ': ' + data2.error.info + '.');
console.error(data2);
}
else {
D.loadbar();
D.wikiprojects.counter++;
if (D.wikiprojects.counter>Dv.wikiproject.length)
D.success();
}
})
.fail(function(data2){
D.errors.push('Błąd informowania '+ pageToEdit + (czy_talk?'':'(cz. 2.)') + ': $.ajax.fail().');
D.errors[0]();
console.error('Błąd informowania '+ pageToEdit + (czy_talk?'':'(cz. 2.)') + ': $.ajax.fail().');
console.error('URI: ' + obj.url);
console.error(data2);
});
}
}
})
.fail(function(data){
D.errors.push('Błąd informowania '+ pageToEdit + (czy_talk?'':'(cz. 1.)') + ': $.ajax.fail().');
D.errors[0]();
console.error('Błąd informowania '+ pageToEdit + (czy_talk?'':'(cz. 1.)') + ': $.ajax.fail().');
console.error('URI: ' + obj.url);
console.error(data);
});
})(i);
}
}
}

DYKnomination.success = function () {
var D = DYKnomination;
var Dv = D.values;
var debug = D.debugmode;
var SectionTitleForFinalLink = Dv.nr+' ('+D.wgTitle+')';

if (D.errors.length == 1) { //first element in errors is a nested function
D.loadbar('done');
D.log('Zgłoszenie zakończone sukcesem!');

// end dialog: "Finished!"
$('<div id="CzyWieszSuccess"><div class="floatright">' + D.config.CWicon + '</div>'
+ '<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(SectionTitleForFinalLink.replace(/ /g,'_')).replace(/%/g,'.').replace(/\(/g,'.28').replace(/\)/g,'.29') + '" class="czywiesz-external" target="_blank">zgłoszenie</a>.<br /><br />'
+ 'Dla pewności możesz sprawdzić <a href="//pl.wikipedia.org/wiki/Specjalna:Wk%C5%82ad/'
+ encodeURIComponent(Dv.signature)
+ '" class="czywiesz-external" target="_blank">swój wkład</a> czy wszystko poszło zgodnie z planem.<br />'
+ '<small><a class="CzyWieszEmailDoAutoraToggle">(Coś nie działa?)</a></small><br />'
+ '<span class="CzyWieszEmailDoAutoraInfo" style="display:none;">Jeśli coś poszło nie tak to <a href="#" class="CzyWieszEmailDoAutoraWyslij">kliknij tutaj</a>, aby wysłać twórcy gadżetu e-mail z opisem błędu, a gadżet dołączy do niego szczegóły techniczne.<span class="CzyWieszEmailDoAutoraWyslano"></span><br /></span>'
+ '<br />'
+ '<a href="/wiki/Wikiprojekt:Czy_wiesz" title="Wikiprojekt:Czy wiesz">Wikiprojekt Czy wiesz</a></p></div>')
.dialog({
modal: true,
dialogClass: "wikiEditor-toolbar-dialog",
title: D.config.tmpldone,
close: function() {
$(this).dialog("destroy");
$(this).remove();
$('#CzyWieszGadget').dialog("destroy");
$('#CzyWieszGadget').remove();
}
});
$('#CzyWieszSuccess a.CzyWieszEmailDoAutoraToggle').click( function() {
$('#CzyWieszSuccess .CzyWieszEmailDoAutoraInfo').toggle()
});
$('#CzyWieszSuccess a.CzyWieszEmailDoAutoraWyslij').click( DYKnomination.emailauthor );
}
else {
D.errors[0]();
}
}

DYKnomination.emailauthor = function () {
var D = DYKnomination;
var Dv = D.values;
var debug = D.debugmode;

var opis = prompt('Opisz co się stało. Bez tego twórca nie będzie wiedział co naprawiać.','');
if (!opis) {
alert('Nic nie wyślę twórcy, dopóki nie opiszesz błędu swoimi słowami. Bez Twojego opisu twórca nie będzie wiedział co naprawiać.');
return;
}
D.log('DYKnomination.errors: ', D.errors); //add potential errors, before stringifying all logs
var emailbody = opis + '\n\n' + JSON.stringify(DYKnomination.logs);
//throbber and cursor-wait – until e-mail sent
$('.CzyWieszEmailDoAutoraWyslano').html('<img src="https://upload.wikimedia.org/wikipedia/commons/1/1a/Denken.gif" width="10" height="10">');
$('#CzyWieszErrorDialog, #CzyWieszSuccess').addClass('wait-im-sending-email');

$.ajax({
url : '/w/api.php',
type: 'POST',
data : {
action : 'emailuser',
format : 'json',
target : 'Kaligula',
subject : 'Błąd w Gadżecie Czy wiesz',
text : emailbody,
token : D.edittoken
}
})
.done(function(data){
D.log('Sent e-mail to dev\nserver response:',data);
if (data.error) {
D.errors.push('Błąd wysyłania e-maila do twórcy: ' + data.error.info + '.');
D.errors[0]();
console.error('Błąd wysyłania e-maila do twórcy: ' + data.error.info + '.');
console.error(data);
}
else {
$('#CzyWieszErrorDialog, #CzyWieszSuccess').removeClass('wait-im-sending-email');
$('.CzyWieszEmailDoAutoraWyslano').text(' Wysłano!');
}
})
.fail(function(data){
D.errors.push('Błąd wysyłania e-maila do twórcy: $.ajax.fail().');
D.errors[0]();
console.error('Błąd wysyłania e-maila do twórcy: $.ajax.fail().');
console.error('URI: /w/api.php?action=emailuser&format=json&target=Kaligula'
+ '&subject=' + encodeURIComponent('Błąd w Gadżecie Czy wiesz')
+ '&text=' + encodeURIComponent(emailbody)
+ '&token=' + encodeURIComponent(D.edittoken));
console.error(data);
});

}


$(document).ready(function() {
mw.util.addPortletLink(
'p-tb',
'javascript:DYKnomination.askuser()',
(window.DYKnomination_is_beta===true?'BETA: ':'')+'Zgłoś do „Czy wiesz…”',
't-DYKnomination'
);
});



}
else {

DYKnomination.error = 'The page is not an article. You cannot nominate this page.';

//insert current version number while on Wikipedia:Narzędzia/CzyWiesz
if (mw.config.get('wgPageName')=='Wikipedia:Narzędzia/CzyWiesz') {
$('.DYKnomination-version').html(DYKnomination.about.version);
}

}
// </pre>