Kullanıcı:Westnest/flaggedrevs.js
Görünüm
Bu sayfaya eklediğiniz kodlar hesabınızı tehlike altına sokacak kötü amaçlı içerik barındırabilir. Başka bir sayfada yer alan betikleri "mw.loader.load", "importScript" veya "iusc" gibi yöntemlerle kullanmadan önce, bu yöntemle içeriği başkaları tarafından kontrol edilebilecek uzaktaki bir betiği dinamik olarak yüklemiş olacağınızı bilmeniz gerekir. Sayfaya eklediğiniz kodun güvenli olup olmadığından emin değilseniz, Köy Çeşmesi'nde deneyimli kullanıcılara danışabilirsiniz. Kod, sayfa önizlemesinde de çalıştırılacaktır. |
var FlaggedRevs = {
'messages': {
'diffToggleShow' : '(show changes)',
'diffToggleHide' : '(hide changes)',
'logToggleShow' : '(show log)',
'logToggleHide' : '(hide log)',
'logDetailsShow' : '(show details)',
'logDetailsHide' : '(hide details)',
'toggleShow' : '(+)',
'toggleHide' : '(-)'
},
/* Dropdown collapse timer */
'boxCollapseTimer': null,
/* Hide rating/diff clutter */
'enableShowhide': function() {
// Rating detail box
var toggle = document.getElementById('mw-fr-revisiontoggle');
if( toggle ) {
toggle.style.display = 'inline';
}
// Diff detail box
toggle = document.getElementById('mw-fr-difftoggle');
if( toggle ) {
toggle.style.display = 'inline';
var diff = document.getElementById('mw-fr-stablediff');
if( diff ) {
diff.style.display = 'none';
}
}
// Log detail box
toggle = document.getElementById('mw-fr-logtoggle');
if( toggle ) {
toggle.style.display = 'inline';
var log = document.getElementById('mw-fr-logexcerpt');
if( log ) {
log.style.display = 'none';
}
}
},
/* Expands flag info box details */
'showBoxDetails': function() {
var ratings = document.getElementById('mw-fr-revisiondetails');
if( ratings ) {
ratings.style.display = 'block';
}
},
/* Collapses flag info box details */
'hideBoxDetails': function( event ) {
var ratings = document.getElementById('mw-fr-revisiondetails');
if( ratings ) {
ratings.style.display = 'none';
}
},
/* Toggles flag info box details for (+/-) control */
'toggleBoxDetails': function() {
var toggle = document.getElementById('mw-fr-revisiontoggle');
if( !toggle ) return;
var ratings = document.getElementById('mw-fr-revisiondetails');
if( !ratings ) return;
// Collapsed -> expand
if( ratings.style.display == 'none' ) {
this.showBoxDetails();
toggle.innerHTML = this.messages.toggleHide;
// Expanded -> collapse
} else {
this.hideBoxDetails();
toggle.innerHTML = this.messages.toggleShow;
}
},
/* Expands flag info box details on mouseOver */
'onBoxMouseOver': function( event ) {
window.clearTimeout( this.boxCollapseTimer );
this.boxCollapseTimer = null;
this.showBoxDetails();
},
/* Hides flag info box details on mouseOut *except* for event bubbling */
'onBoxMouseOut': function( event ) {
if( !this.isMouseOutBubble( event, 'mw-fr-revisiontag' ) ) {
this.boxCollapseTimer = window.setTimeout( this.hideBoxDetails, 150 );
}
},
/* Checks is mouseOut event is for a child of parentId */
'isMouseOutBubble': function( event, parentId ) {
var toNode = null;
if( event.relatedTarget != undefined ) {
toNode = event.relatedTarget; // FF/Opera/Safari
} else {
toNode = event.toElement; // IE
}
if( toNode ) {
var nextParent = toNode.parentNode;
while( nextParent ) {
if( nextParent.id == parentId ) {
return true; // event bubbling
}
nextParent = nextParent.parentNode; // next up
}
}
return false;
},
/* Toggles diffs */
'toggleDiff': function() {
var diff = document.getElementById('mw-fr-stablediff');
if( !diff ) return;
var toggle = document.getElementById('mw-fr-difftoggle');
if( !toggle ) return;
if( diff.style.display == 'none' ) {
diff.style.display = 'block';
toggle.getElementsByTagName('a')[0].innerHTML = this.messages.diffToggleHide;
} else {
diff.style.display = 'none';
toggle.getElementsByTagName('a')[0].innerHTML = this.messages.diffToggleShow;
}
},
/* Toggles log excerpts */
'toggleLog': function() {
var log = document.getElementById('mw-fr-logexcerpt');
if( !log ) return;
var toggle = document.getElementById('mw-fr-logtoggle');
if( !toggle ) return;
if( log.style.display == 'none' ) {
log.style.display = 'block';
toggle.getElementsByTagName('a')[0].innerHTML = this.messages.logToggleHide;
} else {
log.style.display = 'none';
toggle.getElementsByTagName('a')[0].innerHTML = this.messages.logToggleShow;
}
},
/* Toggles log excerpts */
'toggleLogDetails': function() {
var log = document.getElementById('mw-fr-logexcerpt');
if( !log ) return;
var toggle = document.getElementById('mw-fr-logtoggle');
if( !toggle ) return;
if( log.style.display == 'none' ) {
log.style.display = 'block';
toggle.getElementsByTagName('a')[0].innerHTML = this.messages.logDetailsHide;
} else {
log.style.display = 'none';
toggle.getElementsByTagName('a')[0].innerHTML = this.messages.logDetailsShow;
}
}
};
FlaggedRevs.setCheckTrigger = function() {
var checkbox = document.getElementById("wpReviewEdit");
if( checkbox ) {
checkbox.onclick = FlaggedRevs.updateSaveButton;
}
};
FlaggedRevs.updateSaveButton = function() {
var checkbox = document.getElementById("wpReviewEdit");
var save = document.getElementById("wpSave");
if( checkbox && save ) {
// Review pending changes
if ( checkbox.checked ) {
save.value = FlaggedRevs.messages.saveArticle;
save.title = FlaggedRevs.messages.tooltipSave;
// Submit for review
} else {
save.value = FlaggedRevs.messages.submitArticle;
save.title = FlaggedRevs.messages.tooltipSubmit;
}
}
};
FlaggedRevs.getRevisionContents = function() {
//get the contents div and replace it with actual parsed article contents via an API call.
var contentsDiv = document.getElementById("mw-fr-revisioncontents");
var prevLink = document.getElementById("differences-prevlink");
var nextLink = document.getElementById("differences-nextlink");
var timeoutId = null;
if( contentsDiv ) {
var diffUIParams = document.getElementById("mw-fr-diff-dataform");
var oldRevId = diffUIParams.getElementsByTagName('input')[1].value;
var origContents = contentsDiv.innerHTML;
contentsDiv.innerHTML = "<span class='loading mw-small-spinner spinner'></span><span class='loading' >" + wgRevContents.waiting + "</span>";
var requestArgs = 'action=parse&prop=text|categorieshtml|languageshtml&format=xml';
if ( window.wgCurRevisionId == oldRevId && window.wgPageName ) {
requestArgs += '&page=' + encodeURIComponent( window.wgPageName );
} else {
requestArgs += '&oldid=' + oldRevId;
}
var call = jQuery.ajax({
url : wgScriptPath + '/api.php',
type : "GET",
data : requestArgs,
dataType: "xml",
success : function( result ) {
contentsDiv.innerHTML = "";
contents = jQuery(result).find("text");
if ( contents && contents.text() ) {
contentsDiv.innerHTML += contents.text();
} else {
contentsDiv.innerHTML = wgRevContents.error + " " + origContents;
}
categoryhtml = jQuery(result).find("categorieshtml");
if ( categoryhtml && categoryhtml.text() ) {
contentsDiv.innerHTML += categoryhtml.text();
}
languageshtml = jQuery(result).find("languageshtml");
if ( languageshtml && languageshtml.text() ) {
contentsDiv.innerHTML += "<div class='langlinks' >" + languageshtml.text() + "</div>";
}
},
error : function(xmlHttpRequest, textStatus, errThrown) {
contentsDiv.innerHTML = wgRevContents.error + " " + origContents;
}
});
}
if ( prevLink ) {
prevLink.onclick = function() {
if ( call ) {
call.abort();
}
};
}
if ( nextLink ) {
nextLink.onclick = function() {
if ( call ) {
call.abort();
}
};
}
};
FlaggedRevs.setJSTriggers = function() {
FlaggedRevs.enableShowhide();
FlaggedRevs.setCheckTrigger();
FlaggedRevs.getRevisionContents();
};
window.onload = FlaggedRevs.setJSTriggers