Przejdź do zawartości

Wikipedysta:Abdel/quicksdu.js

Z Wikipedii, wolnej encyklopedii

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5.
  • Opera: Naciśnij klawisze Ctrl+F5.
// QuickSDU script by [[:pl:User:ChP94]]
 // based on quickimgdelete.js script written by [[:en:User:Howcheng]]
 // Released under the [http://www.gnu.org/licenses/gpl.txt GNU Public License (GPL)]
 // <pre><nowiki>
var quicksdu_autosave = false;
var quicksdu_warnuser = true;
var quicksdu_ajax;
var quicksdu_u = "";

// From [[en:User:Lupin/autoedit.js]]
function getParamValue(paramName) {
  var cmdRe=RegExp('[&?]'+paramName+'=([^&]*)');
  var h=document.location;
  var m=cmdRe.exec(h);
  if (m) {
    try {
      return decodeURIComponent(m[1]);
    } catch (someError) {}
  }
  return null;
}

function quicksdu_sduIt() {
   var reason = encodeURIComponent(prompt("Dlaczego chcesz zgłosić ten art na SdU?", ''));
   if(reason != "") {
      var title = encodeURIComponent(mw.config.get('wgPageName'));
      quicksdu_initAjax();
      quicksdu_getUser(title);
      u = encodeURIComponent(quicksdu_u);
      if(u&&u!="") {
      	window.open("http://pl.wikipedia.org/w/index.php?title=" + title + "&action=edit&fakeaction=sdu_art&page=" + title + "&reason=" + reason, "sdu_art");
     	window.open("http://pl.wikipedia.org/w/index.php?title=Wikipedia:SDU/" + title + "&action=edit&fakeaction=sdu_page&editintro=Szablon:SDU editintro&preload=Szablon:SDU preload&reason=" + reason, "sdu_page");
      	window.open("http://pl.wikipedia.org/w/index.php?title=Wikipedia:Strony do usunięcia&action=edit&fakeaction=sdu_list&page=" + title, "sdu_list");
        if(quicksdu_warnuser) {
      	    window.open("http://pl.wikipedia.org/w/index.php?title=Dyskusja_Wikipedysty:" + u + "&action=edit&fakeaction=sdu_warn&page=" + title, "sdu_warn");
        }
      }
   }
}

function quicksdu_poczIt() {
   var reason = encodeURIComponent(prompt("Dlaczego chcesz zgłosić ten art do poczekalni SdU?", ''));
   if(reason != "") {
      var title = encodeURIComponent(mw.config.get('wgPageName'));
      quicksdu_initAjax();
      quicksdu_getUser(title);
      u = encodeURIComponent(quicksdu_u);
      if(u&&u!="") {
      	window.open("http://pl.wikipedia.org/w/index.php?title=" + title + "&action=edit&fakeaction=pocz_art&page=" + title, "sdu_art");
      	window.open("http://pl.wikipedia.org/w/index.php?title=Wikipedia:Strony do usunięcia/Poczekalnia&action=edit&fakeaction=pocz_list&page=" + title + "&reason=" + reason, "sdu_list");
        if(quicksdu_warnuser) {
      	    window.open("http://pl.wikipedia.org/w/index.php?title=Dyskusja_Wikipedysty:" + u + "&action=edit&fakeaction=pocz_warn&page=" + title, "sdu_warn");
        }
      }
   }
}

//Function from QuickEdit 2 by ASM
function quicksdu_initAjax()
{
   try
   {
      if (window.XMLHttpRequest)
      {
         quicksdu_ajax = new XMLHttpRequest();
         quicksdu_ajax.overrideMimeType('text/xml');
      }

      else if (window.ActiveXObject)
         quicksdu_ajax = new ActiveXObject('Microsoft.XMLHTTP');

      else throw 'Nie ma AJAX-ów!';
   }

   catch (e)
   {
      return false;
   }

   if (!quicksdu_ajax)
   {
      alert('Błąd tworzenia obiektu ajax');
      return false;
   }

   return true;
}

function quicksdu_onload() {
  if (document.getElementById('ca-edit') == null) // not editable by non-admin
    return;
  mw.util.addPortletLink('p-tb', 'javascript:quicksdu_sduIt()', "Strona do usunięcia", 'quicksdu', "Zgłoś artykuł do Stron do Usunięcia");
  mw.util.addPortletLink('p-tb', 'javascript:quicksdu_poczIt()', "Poczekalnia SdU", 'quickpocz', "Zgłoś artykuł do Poczekalni Stron do Usunięcia");
 
  var fakeaction = getParamValue('fakeaction');
  var page = decodeURIComponent(getParamValue('page'));
  if(fakeaction=="sdu_list") {
     editformval = document.editform.wpTextbox1.value;
           var r=editformval.substring(0, editformval.indexOf("strony ==\n")+10)
              +"{{Wikipedia:SDU/"+page+"}}\n\n"
              +editformval.substring(editformval.indexOf("strony ==\n")+10);
        document.editform.wpTextbox1.value = r;
        document.editform.wpSummary.value = "Zgłaszanie strony "+page+" do Stron do Usunięcia";
        if(quicksdu_autosave) { document.editform.wpSave.click(); }
  }
  else if(fakeaction=="sdu_warn") {
     editformval = document.editform.wpTextbox1.value;
     editformval = editformval + "\n== [[Wikipedia:SDU/"+page+"|SdU]] ==\n{{SDUinformacja|"+page+"}}\n~~~~";
        document.editform.wpTextbox1.value = editformval;
        document.editform.wpSummary.value = "Zgłaszanie strony "+page+" do Stron do Usunięcia";
        if(quicksdu_autosave) { document.editform.wpSave.click(); }
  }
  else if(fakeaction=="sdu_art") {
     var reason = decodeURIComponent(getParamValue('reason'));
     editformval = document.editform.wpTextbox1.value;
     editformval = "{{SdU|"+reason+"}}\n" + editformval;
        document.editform.wpTextbox1.value = editformval;
        document.editform.wpSummary.value = "Zgłaszanie strony "+page+" do Stron do Usunięcia";
        if(quicksdu_autosave) { document.editform.wpSave.click(); }
  }
  else if(fakeaction=="sdu_page") {
     var reason = decodeURIComponent(getParamValue('reason'));
     editformval = document.editform.wpTextbox1.value;
     var r=editformval.substring(0, editformval.indexOf("Podaj powód")) + reason + " " + editformval.substring(editformval.indexOf("~~"));
        document.editform.wpTextbox1.value = r;
        document.editform.wpSummary.value = "Zgłaszanie strony "+page+" do Stron do Usunięcia";
        if(quicksdu_autosave) { document.editform.wpSave.click(); }
  }
  else if(fakeaction=="pocz_list") {
     var reason = decodeURIComponent(getParamValue('reason'));
     editformval = document.editform.wpTextbox1.value;
           var r=editformval.substring(0, editformval.indexOf("G Ó R Z E -->\n")+14)
              +"==="+page+"===\n"
              +"* "+reason+" ~~~~\n"
              +editformval.substring(editformval.indexOf("G Ó R Z E -->\n")+14);
        document.editform.wpTextbox1.value = r;
        document.editform.wpSummary.value = "Zgłaszanie strony "+page+" do Poczekalni Stron do Usunięcia";
        if(quicksdu_autosave) { document.editform.wpSave.click(); }
  }
  else if(fakeaction=="pocz_warn") {
     editformval = document.editform.wpTextbox1.value;
     editformval = editformval + "\n== [[Wikipedia:Strony do usunięcia/Poczekalnia|Poczekalnia SdU]] ==\n{{PoczSDUinfo|"+page+"}}\n~~~~";
        document.editform.wpTextbox1.value = editformval;
        document.editform.wpSummary.value = "Zgłaszanie strony "+page+" do Poczekalni Stron do Usunięcia";
        if(quicksdu_autosave) { document.editform.wpSave.click(); }
  }
  else if(fakeaction=="pocz_art") {
     editformval = document.editform.wpTextbox1.value;
     editformval = "{{PoczSdU}}\n" + editformval;
        document.editform.wpTextbox1.value = editformval;
        document.editform.wpSummary.value = "Zgłaszanie strony "+page+" do Poczekalni Stron do Usunięcia";
        if(quicksdu_autosave) { document.editform.wpSave.click(); }
  }
}

$(quicksdu_onload);

function quicksdu_getUser(title)
{
   quicksdu_ajax.onreadystatechange = quicksdu_getUserResponse;

   quicksdu_ajax.open('GET', 'http://pl.wikipedia.org/w/index.php?title='+title+'&action=history&limit=1&dir=prev', true);
   quicksdu_ajax.send(null);
}


function quicksdu_getUserResponse()
{
     if (quicksdu_ajax.readyState != 4 || quicksdu_ajax.status != 200)
         return;

        var xml = quicksdu_ajax.responseXML;

        var spans = xml.getElementsByTagName("span");
	
	for(i=0;i<spans.length;i++) {
	    var s = spans[i];
 	    if(s.getAttribute("class") == "history-user") {
 	       quicksdu_u = s.firstChild.innerHTML;
               break;
            }
        }
}
//</nowiki></pre>