Benutzer:Col. o'neill/Bewertungen.js: Unterschied zwischen den Versionen
aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Weitere Optionen
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:{{…“ |
vervollständigt |
||
| 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 s = d.query.pages[wgArticleId].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':'Epsiode mit '+r+' Sternen bewertet','text':m[1]+(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)==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':'Epsiode mit '+r+' 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'){ | |||
e.children('img:visible').hide(); | |||
e.children('img:hidden').show(); | |||
} | |||
}, | }, | ||
setStarEmpty: function(e){ | |||
if(e.children('img:visible').attr('alt')==='Star full.svg'){ | |||
e.children('img:visible').hide(); | |||
e.children('img:hidden').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').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); | ||