ServerStatus/server-status.min.js

6 lines
2.6 KiB
JavaScript

String.prototype.trunc=String.prototype.trunc||function(c){return this.length>c?this.substr(0,c-1)+"…":this};
jQuery(function(){jQuery.fn.extend({serverStatus:function(c,d,e,f){new jQuery.serverStatus(this,c,d,e,f)}});jQuery.serverStatus=function(c,d,e,f,g){$serverStatus=this;d=jQuery.extend([],d);e=jQuery.extend([],e);f=jQuery.extend({type:"status"},f);$container=c;$structure=d;$data=e;$settings=f;$refresh=g;$serverStatus._init=function(){$container.html("");for(var b='<div class="server-status-header">',a=0;a<$structure.length;a++)b+='<div class="server-status-header-row" data-id="'+$structure[a].id+'">'+
$structure[a].title+"</div>";$container.append(b+'</div> <div class="server-status-servers"> </div>');for(b=0;b<$data.length;b++)if(!$data[b].hidden){for(var c='<div class="server-status-row" data-id="'+b+'">',a=0;a<$structure.length;a++)c="status"==$structure[a].type?c+('<div class="server-status-'+$structure[a].id+'" data-type="'+$structure[a].type+'"><i class="fa fa-circle"></i></div>'):"counter"==$structure[a].type?c+('<div class="server-status-'+$structure[a].id+'" data-type="'+
$structure[a].type+'">0/0</div>'):"map"==$structure[a].type?c+('<div class="server-status-'+$structure[a].id+'" data-type="'+$structure[a].type+'">-</div>'):c+('<div class="server-status-'+$structure[a].id+'" data-type="'+$structure[a].type+'">'+$data[b][$structure[a].id]+"</div>");$container.find(".server-status-servers").append(c)}};$serverStatus._updateRow=function(b){$this=jQuery("#"+b.container+' .server-status-servers .server-status-row[data-id="'+b.id+'"]');"offline"==b.status?($this.find('div[data-type="status"] i').removeClass("online").addClass("offline"),
$this.find('div[data-type="counter"]').html("0/0"),$this.find('div[data-type="map"]').html("")):($this.find('div[data-type="status"] i').removeClass("offline").addClass("online"),$this.find('div[data-type="counter"]').html(b.players),$this.find('div[data-type="map"]').html(b.map))};$serverStatus._updateStatus=function(){$container.find(".server-status-servers .server-status-row").each(function(){$this=jQuery(this);$id=$this.data("id");$this.find('div[data-type="status"] i').removeClass("online").removeClass("offline");
$this.find('div[data-type="counter"]').html('<img src="//static.moow.info/server-status/loading.gif" alt="loading" />');jQuery.getJSON("https://static.moow.info/server-status/query.php?type="+$data[$id].type+"&ip="+$data[$id].ip+"&container="+$container.attr("id")+"&id="+$id,function(b){$serverStatus._updateRow(b)})})};$serverStatus._init();$serverStatus._updateStatus();0<$refresh&&setInterval(function(){$serverStatus._updateStatus()},$refresh)}});