Benutzer:Col. o'neill/Bewertungen.js
aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Weitere Optionen
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/**
* JS-Skript für ein Episodenbewertungssystem
* Für Import des Skripts einfach folgende Zeile (ohne den Stern am Anfang natürlich) in der eigenen Common.js einfügen:
* if(mw.config.get('wgPageName')==="Benutzer:Col._o'neill/Entwürfe") $('head').append($('<script>').attr('src','http://stargate-wiki.de/w/index.php?title=Benutzer:Col._o%27neill/Bewertungen.js&action=raw&ctype=text/javascript').attr('type','text/javascript'));
**/
var EpRating={
updateRating: function(r){
$('.EpRating td').off();
$('.RatingWait').show('fast');
//später für die angefragte Seite: {{FULLPAGENAMEE}}/Bewertungen und rvsection weglassen
$.get(wgServer+wgScriptPath+'/api.php?action=query&prop=revisions&rvprop=content&rvsection=4&rvlimit=1&format=json&titles=Benutzer:Col._o\'neill/Testseite&meta=tokens', function(d){
if ('string' == typeof d) d = JSON.parse(d);
var pageid=$('span#ratingpageid').text();
var s = d.query.pages[pageid].revisions[0]['*'];
var et=d.query.tokens.csrftoken;
if((myindex=s.indexOf(wgUserName))==-1){
var reg = new RegExp('(^[\\s{{!}}\\S]*\\u007C *count *= *)(\\d+)(\\s*\\u007C *avg *= *)\\d([\\u007C{{!}}\\+{{!}}={{!}}\\s{{!}}\\-{{!}}\'{{!}},{{!}}\\w{{!}}\\.]*)(\\}\\}[\\s{{!}}\\S]*$)', 'ig'); var m = reg.exec(s); if (!m) return;
var ratingsets=m[4].split("\n");
var sum=r;
var rscount=1;
for(var rs in ratingsets){
if(ratingsets[rs]){
sum+=parseInt(ratingsets[rs].split(" = ")[1]);
rscount++;
}
}
var average=Math.round(sum/rscount);
//später für die angefragte Seite: {{FULLPAGENAMEE}}/Bewertungen und section weglassen
$.post(wgServer+wgScriptPath+'/api.php',{'action':'edit','section':4,'title':'Benutzer:Col._o\'neill/Testseite','summary':'Episode mit '+r+((r==1)?' Stern':' Sternen')+' bewertet','text':m[1]+(parseInt(m[2])+1)+m[3]+average+m[4]+'| '+wgUserName+' = '+r+'\n'+m[5],'token':et,'minor':'true','format':'json'}, function(d){location.reload();}, 'json');
}else{
if(s.substr(myindex+wgUserName.length+3,1)==r){
alert("Du hast bereits mit "+r+" bewertet.");
location.reload();
}else{
var reg = new RegExp('(^[\\s{{!}}\\S]*\\u007C *count *= *\\d+\\s*\\u007C *avg *= *)\\d([\\u007C{{!}}\\+{{!}}={{!}}\\s{{!}}\\-{{!}}\'{{!}},{{!}}\\w{{!}}\\.]*)(\\u007C *'+wgUserName+' *= *)\\d([\\u007C{{!}}\\+{{!}}={{!}}\\s{{!}}\\-{{!}}\'{{!}},{{!}}\\w{{!}}\\.]*)(\\}\\}[\\s{{!}}\\S]*$)', 'ig'); var m = reg.exec(s); if (!m) return;
var ratingsets=m[2].split("\n").concat(m[4].split("\n"));
var sum=r;
var rscount=1;
for(var rs in ratingsets){
if(ratingsets[rs]){
sum+=parseInt(ratingsets[rs].split(" = ")[1]);
rscount++;
}
}
var average=Math.round(sum/rscount);
//später für die angefragte Seite: {{FULLPAGENAMEE}}/Bewertungen und section weglassen
$.post(wgServer+wgScriptPath+'/api.php',{'action':'edit','section':4,'title':'Benutzer:Col._o\'neill/Testseite','summary':'Episode mit '+r+((r==1)?' Stern':' Sternen')+' bewertet','text':m[1]+average+m[2]+m[3]+r+m[4]+m[5],'token':et,'minor':'true','format':'json'}, function(d){location.reload();},'json');
}
}
}, 'json');
},
setStarFull: function(e){
if(e.children('img:visible').attr('alt')==='Star empty.svg'){
var toshow=e.children('img:hidden');
e.children('img:visible').hide();
toshow.show();
}
},
setStarEmpty: function(e){
if(e.children('img:visible').attr('alt')==='Star full.svg'){
var toshow=e.children('img:hidden');
e.children('img:visible').hide();
toshow.show();
}
},
addVerso: function(e){
if(e.children('img').attr('alt')==='Star full.svg'){
e.append("<img alt=\"Star empty.svg\" src=\"/w/images/thumb/4/49/Star_empty.svg/25px-Star_empty.svg.png\" srcset=\"/w/images/thumb/4/49/Star_empty.svg/38px-Star_empty.svg.png 1.5x, /w/images/thumb/4/49/Star_empty.svg/50px-Star_empty.svg.png 2x\" data-file-width=\"108\" data-file-height=\"110\" height=\"25\" width=\"25\" style=\"display:none;\" />");
}else{
e.append("<img alt=\"Star full.svg\" src=\"/w/images/thumb/5/51/Star_full.svg/25px-Star_full.svg.png\" srcset=\"/w/images/thumb/5/51/Star_full.svg/38px-Star_full.svg.png 1.5x, /w/images/thumb/5/51/Star_full.svg/50px-Star_full.svg.png 2x\" data-file-width=\"108\" data-file-height=\"110\" height=\"25\" width=\"25\" style=\"display:none;\" />");
}
},
init: function(){
var col1=$('.EpRating td:first-child');
var col2=$('.EpRating td:nth-child(2)');
var col3=$('.EpRating td:nth-child(3)');
var col4=$('.EpRating td:nth-child(4)');
var col5=$('.EpRating td:nth-child(5)');
var backup=$('.EpRating span#ratingbackup').text();
EpRating.addVerso(col1);
EpRating.addVerso(col2);
EpRating.addVerso(col3);
EpRating.addVerso(col4);
EpRating.addVerso(col5);
$('.EpRating td').css('cursor', 'pointer');
$('.EpRating').hover(function(){
$('.EpRating').css('background-color', '#fceaae');
EpRating.setStarFull(col1);
}, function(){
switch(backup){
case '0':
EpRating.setStarEmpty(col1);
EpRating.setStarEmpty(col2);
EpRating.setStarEmpty(col3);
EpRating.setStarEmpty(col4);
EpRating.setStarEmpty(col5);
break;
case '1':
EpRating.setStarEmpty(col2);
EpRating.setStarEmpty(col3);
EpRating.setStarEmpty(col4);
EpRating.setStarEmpty(col5);
break;
case '2':
EpRating.setStarFull(col2);
EpRating.setStarEmpty(col3);
EpRating.setStarEmpty(col4);
EpRating.setStarEmpty(col5);
break;
case '3':
EpRating.setStarFull(col2);
EpRating.setStarFull(col3);
EpRating.setStarEmpty(col4);
EpRating.setStarEmpty(col5);
break;
case '4':
EpRating.setStarFull(col2);
EpRating.setStarFull(col3);
EpRating.setStarFull(col4);
EpRating.setStarEmpty(col5);
break;
case '5':
EpRating.setStarFull(col2);
EpRating.setStarFull(col3);
EpRating.setStarFull(col4);
EpRating.setStarFull(col5);
break;
}
$('.EpRating').css('background-color', 'transparent');
});
col1.mouseenter(function(){
EpRating.setStarEmpty(col2);
EpRating.setStarEmpty(col3);
EpRating.setStarEmpty(col4);
EpRating.setStarEmpty(col5);
});
col1.click(function(){
EpRating.updateRating(1);
});
col2.mouseenter(function(){
EpRating.setStarFull(col2);
EpRating.setStarEmpty(col3);
EpRating.setStarEmpty(col4);
EpRating.setStarEmpty(col5);
});
col2.click(function(){
EpRating.updateRating(2);
});
col3.mouseenter(function(){
EpRating.setStarFull(col2);
EpRating.setStarFull(col3);
EpRating.setStarEmpty(col4);
EpRating.setStarEmpty(col5);
});
col3.click(function(){
EpRating.updateRating(3);
});
col4.mouseenter(function(){
EpRating.setStarFull(col2);
EpRating.setStarFull(col3);
EpRating.setStarFull(col4);
EpRating.setStarEmpty(col5);
});
col4.click(function(){
EpRating.updateRating(4);
});
col5.mouseenter(function(){
EpRating.setStarFull(col2);
EpRating.setStarFull(col3);
EpRating.setStarFull(col4);
EpRating.setStarFull(col5);
});
col5.click(function(){
EpRating.updateRating(5);
});
}
};
$(EpRating.init);