Wikipedysta:Harry lp/oldRevUserContrib.js: Różnice pomiędzy wersjami
Wygląd
Usunięta treść Dodana treść
callback |
return z callbacku |
||
(Nie pokazano 2 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
Linia 19: | Linia 19: | ||
// wartości domyślne: |
// wartości domyślne: |
||
if (typeof oldRevPagesToOpen == 'undefined') oldRevPagesToOpen = 10; |
if (typeof oldRevPagesToOpen === 'undefined') oldRevPagesToOpen = 10; |
||
if (typeof oldRevUnReviewed == 'undefined') oldRevUnReviewed = false; |
if (typeof oldRevUnReviewed === 'undefined') oldRevUnReviewed = false; |
||
if (typeof oldRevHistoryInstead == 'undefined') oldRevHistoryInstead = false; |
if (typeof oldRevHistoryInstead === 'undefined') oldRevHistoryInstead = false; |
||
var oldRevUserContrib_api = new mw.Api(); |
var oldRevUserContrib_api = new mw.Api(); |
||
Linia 47: | Linia 47: | ||
var oldRevListIterator = 0; |
var oldRevListIterator = 0; |
||
// globalna zmienna do trzymania |
// globalna zmienna do trzymania list wkładu |
||
var |
var $oldRevContribLists; |
||
// pobieranie elementu, który trzyma listę z wkładem |
|||
function oldRevGetList() |
|||
{ |
|||
var bodyContent = document.getElementById('bodyContent'); |
|||
⚫ | |||
⚫ | |||
var lists = bodyContent.getElementsByClassName('mw-contributions-list'); |
|||
if (lists.length != 1) return false; |
|||
oldRevContribList = lists[0]; |
|||
return true; |
|||
} |
|||
// obsługa elementów listy, otwieranie okien |
// obsługa elementów listy, otwieranie okien |
||
function oldReviewedPagesUserContrib() |
function oldReviewedPagesUserContrib(evt) |
||
{ |
{ |
||
var $listItems = $oldRevContribLists.find('li'); |
|||
if (!oldRevContribList) return; |
|||
var listItems = oldRevContribList.getElementsByTagName('li'); |
|||
var done = 0; |
var done = 0; |
||
while(oldRevListIterator < listItems.length && done < oldRevPagesToOpen) |
while (oldRevListIterator < $listItems.length && done < oldRevPagesToOpen) |
||
{ |
{ |
||
var klasa = 0; |
var klasa = 0; |
||
var item = listItems |
var $item = $listItems.eq(oldRevListIterator); |
||
oldRevListIterator++; |
oldRevListIterator++; |
||
if(item. |
if ($item.hasClass('flaggedrevs-pending')) klasa = 1; |
||
else if(item. |
else if ($item.hasClass('flaggedrevs-unreviewed')) klasa = 2; |
||
if( ! |
if ( !(klasa === 1 || oldRevUnReviewed && klasa === 2) ) continue; |
||
if(item. |
if (!!$item.data('oldRevMarker')) continue; |
||
var links = item. |
var $links = $item.find('a'); |
||
var linkTitle = links |
var linkTitle = $links.eq(2).attr('title'); |
||
if (oldRevDoneList.indexOf(linkTitle) !== -1) break; |
|||
var przerwij = false; |
|||
for(var j in oldRevDoneList) |
|||
⚫ | |||
if(linkTitle == oldRevDoneList[j]) {przerwij=true; break;} |
|||
} |
|||
if (przerwij) continue; |
|||
if |
if (oldRevHistoryInstead || klasa === 2) |
||
{ |
{ |
||
var site = mw.util.wikiScript( 'index' ) + '?' + $.param( { |
var site = mw.util.wikiScript( 'index' ) + '?' + $.param( { |
||
Linia 107: | Linia 84: | ||
{ |
{ |
||
oldRevUserContrib_api.get({ |
oldRevUserContrib_api.get({ |
||
prop: ['info', 'flagged'], |
|||
⚫ | |||
prop:'info|flagged', |
|||
⚫ | |||
}).done(oldRevCallback); |
}).done(oldRevCallback); |
||
} |
} |
||
oldRevDoneList.push(linkTitle); |
oldRevDoneList.push(linkTitle); |
||
$item.data('oldRevMarker', true); |
|||
item. |
$item.css('backgroundColor', 'orange'); |
||
done++; |
done++; |
||
} |
} |
||
⚫ | |||
⚫ | |||
} |
} |
||
// funkcja początkowa, dodaje przyciski uruchamiające |
// funkcja początkowa, dodaje przyciski uruchamiające |
||
$( function () { |
$( function () { |
||
if(mw.config.get('wgCanonicalSpecialPageName') == "Contributions") |
if (mw.config.get('wgCanonicalSpecialPageName') === "Contributions") |
||
{ |
{ |
||
$oldRevContribLists = $('.mw-contributions-list'); |
|||
if (oldRevGetList() === false) return; |
|||
if (! |
if (!$oldRevContribLists.length) return; |
||
⚫ | |||
document.getElementById('portlet-open-pages').onclick=oldReviewedPagesUserContrib; |
|||
var a = document.createElement('a'); |
|||
var b = document.createElement('b'); |
|||
var p = document.createElement('p'); |
|||
$(mw.util.addPortletLink('p-cactions', '#', 'otwórz zmiany pierwszych ' + oldRevPagesToOpen + ' nieprzejrzanych stron', 'portlet-open-pages', 'Otwiera ' + oldRevPagesToOpen + ' nieprzejrzanych stron')) |
|||
⚫ | |||
a.appendChild(b); |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
p.appendChild(a); |
|||
$('<p>') |
|||
oldRevContribList.parentNode.insertBefore(p, oldRevContribList); |
|||
⚫ | |||
.append($('<a>') |
|||
⚫ | |||
⚫ | |||
.on('click', oldReviewedPagesUserContrib) |
|||
⚫ | |||
⚫ | |||
.insertBefore($oldRevContribLists.first()); |
|||
} |
} |
||
} ); |
} ); |
Wersja z 15:21, 15 mar 2022
/*
* Otwieracz nieprzejrzanych edycji / oldRevUserContrib / v1.04
*
* Oryginalne źródło dla poniższych funkcji tutaj: pl:MediaWiki:Gadget-oldreviewedpages.js
*
* Wszelkich edycji przystosowania do potrzeb strony z wkładem użytkownika dokonał: Harry_lp
* (miejscami wzorowanie się za Wikipedysta:Matma_Rex/disFixer.js)
* cc-by-sa 3.0
*
* Użycie (wstawić do własnego vector.js albo monobook.js):
** var oldRevPagesToOpen = XX; // ustala ile stron do otwarcia; domyślnie - przy braku określenia - 10
** var oldRevUnReviewed = false | true // jeśli ustawione na true otworzy (poza zdezaktualizowanymi) strony nieprzejrzane; domyślnie false
** var oldRevHistoryInstead = false | true // jeśli true - wyświetli link do historii zamiast (tak jak przy false) linku do nieprzejrzanych zmian
** importScript('Wikipedysta:Harry_lp/oldRevUserContrib.js');
*
* Dokładny opis użycia: [[Wikipedysta:Harry lp/oldRevUserContrib]]
*
*/
// wartości domyślne:
if (typeof oldRevPagesToOpen === 'undefined') oldRevPagesToOpen = 10;
if (typeof oldRevUnReviewed === 'undefined') oldRevUnReviewed = false;
if (typeof oldRevHistoryInstead === 'undefined') oldRevHistoryInstead = false;
var oldRevUserContrib_api = new mw.Api();
// przyjęcie odpowiedzi API
function oldRevCallback(res)
{
var pages = res.query.pages;
for(var k in pages)
{
var page = pages[k];
var site = mw.util.wikiScript( 'index' ) + '?' + $.param( {
title: page.title,
oldid: page.flagged.stable_revid,
diff: 'cur'
} );
window.open(site);
}
}
// globalna zmienna do trzymania otwartych stron "w danej sesji"; na wypadek ponownego klikania w przycisk
var oldRevDoneList = [];
// globalna zmienna do trzymania ostatniej pozycji na liście elementów; co by ciągle od 0 nie latać
var oldRevListIterator = 0;
// globalna zmienna do trzymania list wkładu
var $oldRevContribLists;
// obsługa elementów listy, otwieranie okien
function oldReviewedPagesUserContrib(evt)
{
var $listItems = $oldRevContribLists.find('li');
var done = 0;
while (oldRevListIterator < $listItems.length && done < oldRevPagesToOpen)
{
var klasa = 0;
var $item = $listItems.eq(oldRevListIterator);
oldRevListIterator++;
if ($item.hasClass('flaggedrevs-pending')) klasa = 1;
else if ($item.hasClass('flaggedrevs-unreviewed')) klasa = 2;
if ( !(klasa === 1 || oldRevUnReviewed && klasa === 2) ) continue;
if (!!$item.data('oldRevMarker')) continue;
var $links = $item.find('a');
var linkTitle = $links.eq(2).attr('title');
if (oldRevDoneList.indexOf(linkTitle) !== -1) break;
if (oldRevHistoryInstead || klasa === 2)
{
var site = mw.util.wikiScript( 'index' ) + '?' + $.param( {
title: linkTitle,
action: 'history'
} );
window.open(site);
}
else
{
oldRevUserContrib_api.get({
prop: ['info', 'flagged'],
titles: linkTitle
}).done(oldRevCallback);
}
oldRevDoneList.push(linkTitle);
$item.data('oldRevMarker', true);
$item.css('backgroundColor', 'orange');
done++;
}
return false;
}
// funkcja początkowa, dodaje przyciski uruchamiające
$( function () {
if (mw.config.get('wgCanonicalSpecialPageName') === "Contributions")
{
$oldRevContribLists = $('.mw-contributions-list');
if (!$oldRevContribLists.length) return;
$(mw.util.addPortletLink('p-cactions', '#', 'otwórz zmiany pierwszych ' + oldRevPagesToOpen + ' nieprzejrzanych stron', 'portlet-open-pages', 'Otwiera ' + oldRevPagesToOpen + ' nieprzejrzanych stron'))
.on('click', oldReviewedPagesUserContrib);
$('<p>')
.attr('id', 'contrib-top-bar')
.append($('<a>')
.attr('href', '#')
.attr('title', 'Otwiera ' + oldRevPagesToOpen + ' nieprzejrzanych stron')
.on('click', oldReviewedPagesUserContrib)
.append($('<b>').text('otwórz zmiany pierwszych ' + oldRevPagesToOpen + ' nieprzejrzanych stron'))
)
.insertBefore($oldRevContribLists.first());
}
} );