Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

Benutzer:Col. o'neill/Bewertungen.js

aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon

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);