Passed
Pull Request — master (#163)
by PoUpA
02:25
created

trainer.content.js ➔ ... ➔ $.each   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

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