|
|
| (63 גרסאות ביניים של 6 משתמשים אינן מוצגות) |
| שורה 1: |
שורה 1: |
| /* | | /* Allows to mark pages as patrolled from the Recentchanges or Watchlist page. |
| function rcSaveClick() {
| | * |
| var url = 'http://he.wikipedia.org/w/index.php?title=' + encodeURIComponent('משתמש:Yonidebest/ניסיון') + '&action=edit&rcsavepage=savepage'; | | * Written by [[User:Yonidebest]] |
| newWindow = window.open(url, '_blank'); | | */ |
|
| |
|
| // wait for window to be ready
| | if ($.inArray(mw.config.get('wgCanonicalSpecialPageName'), ["Recentchanges", "Watchlist", "Recentchangeslinked", "Newpages"]) + 1) { |
| while (newWindow.title != 'מבצע שמירה...') { }
| | mw.loader.load('mediawiki.api'); |
|
| | mw.hook( 'wikipage.content' ).add(function() { |
| // get array of needed changed
| | function patrol(revid, checkbox) { |
| var checkList = new Array();
| | var api = new mw.Api(); |
| var itemList = document.getElementById('bodyContent').getElementsByTagName('LI');
| | api.postWithToken('patrol', {action: 'patrol', revid: revid }).done( function(data, textStatus, jqXHR) { |
| for (var i = 0; i < itemList.length; i++) {
| | if (data && data.patrol) { |
| if (itemList[i].className == 'rcunchecked') {
| | mw.notify('העריכה בדף ' + data.patrol.title + ' סומנה כבדוקה'); |
| var checkbox = itemList[i].getElementsByTagName('INPUT')[0];
| | $(checkbox).remove(); |
| if (checkbox.checked)
| | } |
| checkList.push(itemList[i].id);
| | else { |
| }
| | var desc = (data && data.error && data.error.info) || ''; |
| }
| | mw.notify(desc, {title: "אירעה שגיאה", type: "error"}); |
| | } |
| | }) |
| | .fail( function(jqXHR, textStatus, errorThrown) { |
| | mw.notify(jqXHR + '<br/>' + textStatus + '<br/>' + errorThrown); |
| | }); |
| | } |
| | |
| | function addCheckbox(elem, abbr) { |
| | var a = elem.find('a:Contains(קודמת), a:Contains(הבדל)').filter(function() { return /diff=\d+/.test($(this).attr('href')); } ); |
| | if (!a.length) |
| | return; |
| | var m = a.attr('href').match(/diff=(\d+)/); |
| | if ( ! m ) |
| | return; |
| | var revid = m[1]; |
| | abbr.before($('<input>', {'type': 'checkbox'}).change(function() {patrol(revid, this);})); |
| | abbr.remove(); |
| | } |
|
| |
|
| // make the change in new window and save
| | // collect tds in "enhanced" rc list |
| var tempValue = newWindow.editform.wpTextbox1.value;
| | $('td.mw-enhanced-rc').each(function() { |
| var rx = new RegExp("id=(\\d+)\\|class=rcunchecked", 'g');
| | var td = $(this); |
| var m = rx.exec(tempValue);
| | var abbr = td.find('abbr.unpatrolled'); |
| while (m) {
| | var sib = td.siblings(); |
| for (var i = 0; i < checkList.length; i++) {
| | if (sib.find('.mw-collapsible-toggle').length) |
| if (checkList[i] == m[1]) {
| | return; |
| var rxReplace = new RegExp("id=" + m[1] + "\\|class=rcunchecked");
| | addCheckbox(sib, abbr); |
| var dateObj = new Date();
| | }); |
| var currectDate = dateObj.getDate() + "." + (dateObj.getMonth() + 1) + "." + dateObj.getYear() + " " + dateObj.getHours() + ":" + dateObj.getMinutes();
| |
| tempValue = tempValue.replace(rxReplace, "id=" + m[1] + "|class=rcchecked|checkedby=" + wgUserName + "|checkdate=" + currectDate);
| |
|
| |
|
| checkList.splice(i, 1);
| | $('li.mw-line-odd, li.mw-line-even').each(function() { |
| break;
| | addCheckbox($(this), $(this).find('abbr.unpatrolled')); |
| }
| | }); |
| }
| | |
| m = rx.exec(tempValue);
| | $('li.not-patrolled').each(function(){ |
| }
| | var a = $(this).find('a[href*="oldid"]') |
| | | if (!a.length) |
| if (tempValue != newWindow.editform.wpTextbox1.value) {
| | return; |
| newWindow.editform.wpTextbox1.value = tempValue;
| | var m = a.attr('href').match(/oldid=(\d+)/); |
| newWindow.editform.wpSummary.value = 'נבדק';
| | if ( ! m ) |
| newWindow.editform.wpSave.click();
| | return; |
| }
| | var revid = m[1]; |
| }
| | a.before($('<input>', {'type': 'checkbox'}).change(function() {patrol(revid, this);})); |
| */
| | }); |
| function rcPatrol() { | | }); // document.ready |
| if (getParamValue('rcsavepage') == 'savepage') {
| | } // in recentchanges page. |
| window.title = 'מבצע שמירה...';
| |
| }
| |
| else {
| |
| if (wgPageName != 'מיוחד:שינויים_אחרונים') return;
| |
| | |
| var itemList = document.getElementById('bodyContent').getElementsByTagName('LI');
| |
| | |
| for (var i = 0; i < itemList.length; i++) {
| |
| var unpatrolled = getElemntsByClassName(itemList, 'SPAN', 'unpatrolled');
| |
| | |
| if (!unpatrolled[0]) continue; // patrolled
| |
| | |
| var checkbox = document.createElement('INPUT');
| |
| checkbox.type = 'checkbox';
| |
| var firstA = itemList[i].getElementsByTagName('A')[0];
| |
| if (!firstA) continue;
| |
| var rx = new RegExp('rcid=(\\d+)');
| |
| var m = rx.exec(firstA.href);
| |
| if (!m) continue;
| |
| checkbox.id = m[1];
| |
| checkbox.defaultChecked = false;
| |
| itemList[i].insertBefore(checkbox, unpatrolled[0]);
| |
| }
| |
| var saveLink = document.createElement('A');
| |
| saveLink.innerHTML = 'שמירה';
| |
| saveLink.title = 'שמירה';
| |
| saveLink.href = 'javascript:rcSaveClick()';
| |
| var contentSub = document.getElementById('contentSub');
| |
| contentSub.appendChild(saveLink);
| |
| }
| |
| } | |
| | |
| addOnloadHook(rcPatrol);
| |