Benutzer:Col. o'neill/Bewertungen.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Die Seite wurde neu angelegt: „/** * JS-Skript für ein Episodenbewertungssystem * Für Import des Skripts einfach folgende Zeile (ohne den Stern am Anfang natürlich) in der [[Benutzer:{{…“ |
K wieder rein, Bugs sollten behoben sein |
||
| (10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
/** | /** | ||
* JS-Skript für ein Episodenbewertungssystem | * JS-Skript für ein Episodenbewertungssystem | ||
* Für Import des Skripts einfach folgende Zeile (ohne den Stern am Anfang natürlich) in der | * 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") | * 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={ | var EpRating={ | ||
updateRating: function(r){ | 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(){ | init: function(){ | ||
$('.EpRating').hover(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); | $(EpRating.init); | ||
Aktuelle Version vom 21. August 2015, 16:28 Uhr
/**
* 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);