MediaWiki:Gadget-twinklefluff.js: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
k Perbarui dari GitHub |
Repo at d9666d4: Update Twinkle from upstream |
||
Baris 17:
Twinklefluff revert and antivandalism utility
*/
var spanTag = function( color, content ) {
var span = document.createElement( 'span' );
span.style.color = color;
span.appendChild( document.createTextNode( content ) );
return span;
};
var buildLink = function(color, text) {
var link = document.createElement('a');
link.appendChild(spanTag('Black', '['));
link.appendChild(spanTag(color, text));
link.appendChild(spanTag('Black', ']'));
return link;
};
Twinkle.fluff = {
auto: function() {
if(
// not latest revision
alert("Tidak dapat mengembalikan revisi, halaman sudah berubah saat ini.");
Baris 30 ⟶ 44:
Twinkle.fluff.revert( Morebits.queryString.get( 'twinklerevert' ), vandal, true );
},
// $('sp-contributions-footer-anon-range') relies on the fmbox
// id in [[MediaWiki:Sp-contributions-footer-anon-range]] and
// is used to show rollback/vandalism links for IP ranges
if( mw.config.get('wgCanonicalSpecialPageName') === "Contributions" && (mw.config.exists('wgRelevantUserName') || !!$('#sp-contributions-footer-anon-range')[0])) {
//Get the username these contributions are for
var username = mw.config.get('wgRelevantUserName');
if( Twinkle.getPref('showRollbackLinks').indexOf('contribs') !== -1 ||
( mw.config.get('wgUserName') !== username && Twinkle.getPref('showRollbackLinks').indexOf('others') !== -1 ) ||
( mw.config.get('wgUserName') === username && Twinkle.getPref('showRollbackLinks').indexOf('mine') !== -1 ) ) {
var list = $("#mw-content-text").find("ul li:has(span.mw-uctop)");
}
}
},
diff: function() {
if (mw.config.get('wgDiffNewId') === mw.config.get('wgRevisionId')) {
// Add a [restore this revision] link to the older revision
// Don't show if there's a single revision or weird diff (cur on latest)
if (mw.config.get('wgDiffOldId') && (mw.config.get('wgDiffOldId') !== mw.config.get('wgDiffNewId'))) {
var revertToRevision = document.createElement('div');
revertToRevision.setAttribute( 'id', 'tw-revert-to-orevision' );
revertToRevision.style.fontWeight = 'bold';
var revertToRevisionLink = buildLink('SaddleBrown', 'restore this version');
revertToRevisionLink.href = "#";
$(revertToRevisionLink).click(function(){
Twinkle.fluff.revertToRevision(mw.config.get('wgDiffOldId').toString());
});
revertToRevision.appendChild(revertToRevisionLink);
var otitle
otitle.insertBefore( revertToRevision, otitle.firstChild );
}
// Add either restore or rollback links to the newer revision
// Don't show if there's a single revision or weird diff (prev on first)
var ntitle = document.getElementById('mw-diff-ntitle1').parentNode;
if( document.getElementById('differences-nextlink') ) {
// Not latest revision
var revertToRevisionN = document.createElement('div');
revertToRevisionN.setAttribute( 'id', 'tw-revert-to-nrevision' );
revertToRevisionN.style.fontWeight = 'bold';
var revertToRevisionNLink = buildLink('SaddleBrown', 'kembalikan revisi ini');
revertToRevisionNLink.href = "#";
$(revertToRevisionNLink).click(function(){
Twinkle.fluff.revertToRevision(mw.config.get('wgDiffNewId').toString());
});
ntitle.insertBefore( revertToRevisionN, ntitle.firstChild );
} else if( Twinkle.getPref('showRollbackLinks').indexOf('diff') !== -1 && mw.config.get('wgDiffOldId') && (mw.config.get('wgDiffOldId') !== mw.config.get('wgDiffNewId') || document.getElementById('differences-prevlink'))) {
var vandal = $("#mw-diff-ntitle2").find("a").first().text();
Baris 156 ⟶ 127:
var normNode = document.createElement('strong');
var agfLink =
var vandLink =
var normLink =
agfLink.href = "#";
Baris 172 ⟶ 143:
Twinkle.fluff.revert('norm', vandal);
});
agfNode.appendChild(agfLink);
Baris 198 ⟶ 157:
}
}
},
oldid: function() { // Add a [restore this revision] link on old revisions
var revertToRevision = document.createElement('div');
revertToRevision.setAttribute( 'id', 'tw-revert-to-orevision' );
revertToRevision.style.fontWeight = 'bold';
var revertToRevisionLink = buildLink('SaddleBrown', 'restore this version');
revertToRevisionLink.href = "#";
$(revertToRevisionLink).click(function(){
Twinkle.fluff.revertToRevision(mw.config.get('wgRevisionId').toString());
});
revertToRevision.appendChild(revertToRevisionLink);
var otitle = document.getElementById('mw-revision-info').parentNode;
otitle.insertBefore( revertToRevision, otitle.firstChild );
}
};
Baris 252 ⟶ 226:
Twinkle.fluff.userIpLink = function( user ) {
return (
};
Baris 268 ⟶ 242:
if (revertToRevID !== self.params.rev) {
self.statitem.error( 'The retrieved revision does not match the requested revision. Stopping
return;
}
Baris 289 ⟶ 263:
'basetimestamp': touched,
'starttimestamp': starttimestamp,
'watchlist': Twinkle.getPref('watchRevertedPages').indexOf(
'minor': Twinkle.getPref('markRevertedPagesAsMinor').indexOf(
};
Baris 314 ⟶ 288:
if( revs.length < 1 ) {
self.statelem.error( '
return;
}
Baris 328 ⟶ 302:
switch( self.params.type ) {
case 'vand':
Morebits.status.info( 'Informasi', [ 'Revisi terakhir
break;
case 'agf':
Morebits.status.warn( '
return;
default:
Morebits.status.warn( '
return;
}
Baris 341 ⟶ 315:
Twinkle.fluff.whiteList.indexOf( top.getAttribute( 'user' ) ) !== -1 && revs.length > 1 &&
revs[1].getAttribute( 'pageId' ) === self.params.revid) {
Morebits.status.info( 'Informasi', [ 'Revisi terakhir
index = 2;
} else {
Morebits.status.error( 'Galat', [ 'Revisi terakhir
return;
}
Baris 399 ⟶ 373:
if (self.params.type !== 'vand' && count > 1) {
if ( !confirm( self.params.user + ' telah melakukan ' + count + ' suntingan berturut-turut. Apakah Anda yakin mau membatalkan semuanya?') ) {
Morebits.status.info( 'Notice', 'Menghentikan pembatalan
return;
}
Baris 428 ⟶ 402:
case 'vand':
summary = "Membatalkan " + self.params.count +
self.params.user + "|" + self.params.user + "]] ([[User talk:" + self.params.user + "|bicara]]) ke revisi terakhir oleh " +
self.params.gooduser
break;
Baris 523 ⟶ 497:
},
complete: function (apiobj) {
// TODO Most of this is copy-pasted from Morebits.wiki.page#fnSaveSuccess. Unify it
var xml = apiobj.getXML();
var $edit = $(xml).find('edit');
var blacklist = $edit.attr('spamblacklist');
if (blacklist) {
Baris 530 ⟶ 506:
code.appendChild(document.createTextNode(blacklist));
apiobj.statelem.error(['Tidak dapat membatalkan karena URL ', code, ' berada dalam daftar hitam spam.']);
} else if ( $(xml).find('captcha').length > 0 ) { // TODO: Translate!
apiobj.statelem.error("Could not rollback, because the wiki server wanted you to fill out a CAPTCHA.");
} else if ( $edit.attr('code') === 'abusefilter-disallowed' ) { // TODO: Translate!
apiobj.statelem.error('The edit was disallowed by the edit filter rule "' + $edit.attr('info').substring(17) + '".');
} else if ( $edit.attr('info') && $edit.attr('info').indexOf('Hit AbuseFilter:') === 0 ) { // TODO: Translate!
var div = document.createElement('div');
div.className = "toccolours";
div.style.fontWeight = "normal";
div.style.color = "black";
div.innerHTML = $edit.attr('warning');
apiobj.statelem.error([ 'The following warning was returned by the edit filter: ', div, 'If you wish to proceed with the rollback, please reload this page (F5 or Ctrl+R) and carry it out again. This warning will not appear a second time.' ]);
} else if ($edit.attr('nochange') === '') {
apiobj.statelem.warn("Revisi yang dibatalkan sama dengan revisi terakhir: Tidak ada yang dapat dilakukan.");
} else {
apiobj.statelem.info("done");
Baris 555 ⟶ 542:
var result = builtInString;
// append user's custom reason
if (userString) {
result += ': ' + Morebits.string.toUpperCaseFirstChar(userString);
}
result += Twinkle.getPref('summaryAd');
Baris 575 ⟶ 557:
var talkLink = " ([[User talk:" + userName + "|bicara]])";
if (resultLen + contribsLen + unescape(encodeURIComponent(talkLink)).length <= 255) {
result =
} else {
result =
}
} else {
result =
}
Baris 601 ⟶ 583:
if ( Morebits.queryString.exists( 'twinklerevert' ) ) {
Twinkle.fluff.auto();
} else if( mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgCanonicalSpecialPageName') === "Contributions" ) {
Twinkle.fluff.
} else if( mw.config.get('wgDiffOldId') || mw.config.get('wgDiffNewId') ) { // wgDiffOldId included for clarity in if else loop [[phab:T214985]]
mw.hook( 'wikipage.diff' ).add( function () { // Reload alongside the revision slider
Twinkle.fluff.diff();
} );
} else if( mw.config.get('wgCurRevisionId') !== mw.config.get('wgRevisionId') ) {
Twinkle.fluff.oldid();
}
}
|