Passed
Pull Request — master (#180)
by PoUpA
02:36
created

  A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 5
rs 9.4285
1
/** global: trainerName */
2
3
$(function () {
4
	
5
	$.getJSON( "core/json/variables.json", function( jsondata ) {
6
		var pokeimg_suffix=jsondata['system']['pokeimg_suffix'];
7
8
		$('.trainerLoader').hide();
9
		var page = 0;
10
		var teamSelector=0; //0=all;1=Blue;2=Red;3=Yellow
11
		var rankingFilter=0; //0=Level & Gyms; 1=Level; 2=Gyms
12
		
13
		$('input#name').val(trainerName);
14
		loadTrainers(page,$('input#name').val(),null,null,pokeimg_suffix,true);
15
		
16
		page++;
17
		var win = $(window);
0 ignored issues
show
Unused Code introduced by
The variable win seems to be never used. Consider removing it.
Loading history...
18
		$('#loadMoreButton').click(function () {
19
			
20
			loadTrainers(page,$('input#name').val(),teamSelector,rankingFilter,pokeimg_suffix,true);
21
			page++;
22
		});
23
		$("#searchTrainer").submit(function ( event ) {
24
			page = 0;
25
			$('input#name').val()!=''?$('#trainersGraph').hide():$('#trainersGraph').show();
26
			$('#trainersContainer tr:not(.trainersTemplate)').remove();
27
			loadTrainers(page,$('input#name').val(),teamSelector,rankingFilter,pokeimg_suffix,true);
28
			page++;
29
			event.preventDefault();
30
		});
31
		$(".teamSelectorItems").click(function ( event ) {
32
			switch ($(this).attr("id")) {
33
				case "AllTeamsFilter":
34
					teamSelector=0;
35
					break;
36
				case "BlueTeamFilter":
37
					teamSelector=1;
38
					break;
39
				case "RedTeamFilter":
40
					teamSelector=2;
41
					break;
42
				case "YellowFilter":
43
					teamSelector=3;
44
					break;
45
				default:
46
					teamSelector=0;
47
			}
48
			$("#teamSelectorText").html($(this).html());
49
			event.preventDefault();
50
			$("#searchTrainer").submit();
51
			
52
		});
53
		$(".rankingOrderItems").click(function ( event ) {
54
			switch ($(this).attr("id")) {
55
				case "levelsFirst":
56
					rankingFilter=0;
57
					break;
58
				case "gymsFirst":
59
					rankingFilter=1;
60
					break;
61
				case "maxCpFirst":
62
					rankingFilter=2;
63
					break;
64
				default:
65
					rankingFilter=0;
66
			}
67
			$("#rankingOrderText").html($(this).html());
68
			event.preventDefault();
69
			$("#searchTrainer").submit();
70
			
71
		});
72
		window.onpopstate = function() {
73
			if (window.history.state && "Trainer" === window.history.state.page) {
74
				$('#trainersContainer').empty();
75
				$('input#name').val(window.history.state.name);
76
				loadTrainers(0,$('input#name').val(),teamSelector,rankingFilter,pokeimg_suffix, false);
77
			}
78
			else{
79
				window.history.back();
80
			}
81
		};
82
		
83
	});
84
});
85
86
function loadTrainers(page,name,teamSelector,rankingFilter,pokeimg_suffix,stayOnPage) {
87
	$('.trainerLoader').show();
88
	
89
	if (stayOnPage) {
90
		// build a state for this name
91
		var state = {name: name, page: 'Trainer'};
92
		window.history.pushState(state,'Trainer',"trainer?name="+name);
93
	}
94
	var trainerIndex = 0+(page*10);
95
	$.ajax({
96
		'async': true,
97
		'type': "GET",
98
		'global': false,
99
		'dataType': 'json',
100
		'url': "core/process/aru.php",
101
		'data': {
102
			'request': "",
103
			'target': 'arrange_url',
104
			'method': 'method_target',
105
			'type' : 'trainer',
106
			'page' : page,
107
			'name' : name,
108
			'team' : teamSelector,
109
			'ranking' :rankingFilter
110
		}
111
	}).done(function (data) {
112
		var internalIndex = 0;
113
		$.each(data, function (trainerName, trainer) {
114
			trainerIndex++;
115
			internalIndex++
116
			printTrainer(trainer, trainerIndex,pokeimg_suffix);
117
		});
118
		if(internalIndex < 10){
119
			$('#loadMoreButton').hide();
120
		}
121
		else{
122
			$('#loadMoreButton').removeClass('hidden');
123
			$('#loadMoreButton').show();
124
		}
125
		$('.trainerLoader').hide();
126
	});
127
};
128
129
130
131
function printTrainer(trainer, trainerIndex,pokeimg_suffix) {
132
	var trainersInfos = $('<tr>',{id: 'trainerInfos_'+trainer.name}).css('border-bottom','2px solid '+(trainer.team=="3"?"#ffbe08":trainer.team=="2"?"#ff7676":"#00aaff"));
133
	trainersInfos.append($('<td>',{id : 'trainerIndex_'+trainer.name, text : trainerIndex}));
134
	trainersInfos.append($('<td>',{id : 'trainerRank_'+trainer.name, text : trainer.rank}));
135
	trainersInfos.append($('<td>',{id : 'trainerName_'+trainer.name}).append($('<a>',{href: 'trainer?name='+trainer.name, text: trainer.name})).click(
136
		function (e) {
137
			e.preventDefault();
138
			$('input#name').val(trainer.name);
139
			$("#searchTrainer").submit();
140
			$('#trainerName_'+trainer.name).off('click');
141
		}
142
	));
143
	trainersInfos.append($('<td>',{id : 'trainerLevel_'+trainer.name, text : trainer.level}));
144
	trainersInfos.append($('<td>',{id : 'trainerGyms_'+trainer.name, text : trainer.gyms}));
145
	trainersInfos.append($('<td>',{id : 'trainerLastSeen_'+trainer.name, text : trainer.last_seen}));
146
	$('#trainersContainer').append(trainersInfos);
147
	var trainersPokemonsRow = $('<tr>',{id: 'trainerPokemons_'+trainer.name});
148
	var trainersPokemons = $('<td>',{colspan : 6});
149
	var trainersPokemonsContainer = $('<div>',{class : ""});
150
	for (var pokeIndex = 0; pokeIndex<trainer.pokemons.length; pokeIndex++) {
151
		var pokemon = trainer.pokemons[pokeIndex];
152
		
153
		trainersPokemonsContainer.append(printPokemon(pokemon,pokeimg_suffix));
154
	}
155
156
	trainersPokemons.append(trainersPokemonsContainer);
157
	trainersPokemonsRow.append(trainersPokemons);
158
	$('#trainersContainer').append(trainersPokemonsRow);
159
}
160
161
function printPokemon(pokemon,pokeimg_suffix){
162
	var trainerPokemon = $('<div>',{id : 'trainerPokemon_'+pokemon.pokemon_uid, class: "col-md-1 col-xs-4 pokemon-single", style: "text-align: center" });
163
	var gymClass = "";
164
	if ((pokemon.gym_id===null)) {
165
		gymClass = "unseen";
166
	}
167
	trainerPokemon.append(
168
		$('<a>',
169
			{href : 'pokemon/'+pokemon.pokemon_id}
170
		).append($('<img />',
171
			{	src : 'core/pokemons/'+pokemon.pokemon_id+pokeimg_suffix,
172
				'class' : 'img-responsive '+gymClass
173
			})
174
		)
175
	);
176
	trainerPokemon.append($('<p>',{class : 'pkmn-name'}).append(pokemon.cp));
177
	var progressBar = $('<div>',{class : 'progress'}).css({'height': '6px','margin-bottom': '0'});
178
	progressBar.append(
179
		$('<div>',
180
			{
181
			title: 'IV Attack :'+pokemon.iv_attack, 
182
			class: 'progress-bar progress-bar-danger' ,
183
			role : 'progressbar', 
184
			'aria-valuenow' : pokemon.iv_attack, 
185
			'aria-valuemin' : 0, 
186
			'aria-valuemax' : 45
187
		}).css('width',((100/45)*pokemon.iv_attack ) + '%'))
188
	progressBar.append(
189
		$('<div>',
190
			{
191
			title: 'IV Defense :'+pokemon.iv_defense,
192
			class: 'progress-bar progress-bar-info' ,
193
			role : 'progressbar', 
194
			'aria-valuenow': pokemon.iv_defense, 
195
			'aria-valuemin' : 0, 
196
			'aria-valuemax' : 45
197
		}).css('width',((100/45)*pokemon.iv_defense ) + '%'))
198
	progressBar.append(
199
		$('<div>',
200
			{
201
			title: 'IV Stamina :'+pokemon.iv_stamina, 
202
			class: 'progress-bar progress-bar-success' ,
203
			role : 'progressbar',
204
			'aria-valuenow' :pokemon.iv_stamina,
205
			'aria-valuemin' : 0, 
206
			'aria-valuemax' : 45
207
		}).css('width',((100/45)*pokemon.iv_stamina ) + '%'))
208
	trainerPokemon.append(progressBar);
209
	if (pokemon.last_scanned === '0') {
210
		trainerPokemon.append($('<small>',{text: "Today"}));
211
	}
212
	else if (pokemon.last_scanned === '1') {
213
		trainerPokemon.append($('<small>',{text: pokemon.last_scanned + " Day"}));
214
	}
215
	else {
216
		trainerPokemon.append($('<small>',{text: pokemon.last_scanned + " Days"}));
217
	}
218
	return trainerPokemon;
219
}
220