summaryrefslogtreecommitdiff
path: root/app/views/matches/show.html.erb
blob: 1c11eb7cbbd84ffff6fa8ca27a249793c2717994 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<script type="text/javascript">
function score_peers() {
	//get each player in order and assign score here!
	var $lisp = $('ol#boxes');
	var comma = ","
	for(var i=0; i < $lisp.length; i++) {
		if ( i == lisp.length-1) {
			comma = "";
		}
		$('review_action').value +=  $('ol#boxes:eq(' + i + ')').text() + comma;
	}
}
</script>

<p>
	<strong>Status:</strong>
	<%= @match.status %>
</p>
<p>
	<strong>Tournament stage:</strong>
	<%= @match.tournament_stage %>
</p>

<%#
	Match Status 0 =>	Created, waiting to start
	Match Status 1 =>	Match ready
	Match Status 2 =>	Match is running, waiting to finish
	Match Status 3 =>	Match finished, waiting for statistics to populate
	Match Status 4 =>	Match Totally done. Archived.

	Four views:- (status is Match status)
	A. Pairings, when status is 1 for either Host or Player Or when status is 2 for player 
	B. A page the host will see if status is 2 OR 3
	C. The Peer review page that the players will see if status is 3.
	D. The page everyone will see when status is 4.

	Note: The change of status from 2 to 3 for League of Legends is coming from League Data Pull (RIOT API)
%>

<div>
	<h2>Teams/users</h2>
	<ul>
	<% @match.teams.each do |team| %>
		<li>Team <%= team.id %><ul>
			<% team.users.each do |user| %>
				<% if @match.status <= 1 %>
					<li><%= user.user_name %></li>
				<% else %>
					<% score = user.statistics.where(:name => "score", :match => @match).first %>
					<li><%= user.user_name %> - SCORE: <%= score ? score.value : 0 %></li>
				<% end %>
			<% end %>
		</ul></li>
	<% end %>
	</ul>
</div>

<% unless @match.winner.nil? %>
	<p>
		<strong>Winner:</strong>
		<%= @match.winner.users.collect{|u| u.user_name}.join(", ") %>
	</p>
<% end %>

<div id="action">
	<%= form_tag(tournament_match_path(@tournament, @match), method: "put") do %>
		<% case @match.status %>
		<% when 0 %>
			<!-- Created, waiting to start -->
			<% if @tournament.hosts.include? current_user %>
				<input type="hidden" name="update_action" value="start">
				<%= submit_tag("Start Match", :disabled => @match.teams.count < @tournament.min_teams_per_match) %>
			<% else %>
				<p>Match is waiting to start.</p>
			<% end %>
		<% when 1 %>
			<!-- Started, waiting to finish -->
			<!-- This will depend on the Sampling Method Eventually instead of always being Manual -->

			<%= raw @match.tournament_stage.tournament.sampling_method.camelcase.constantize.render_user_interaction(@match, current_user) %>

		<% when 2 %>
			<!-- Finished, waiting for peer reviews -->
			<input type="hidden" name="update_action" value="peer">
			<input type="hidden" name="review_action" value="">
			<% users = []; @match.teams.each{|t| users.concat(t.users)}; %>
			<% if users.include? current_user %>
				<% @match.teams.each do |team| %>
					<% if team.users.include?(current_user) %>
						<ol id="boxes" class="sortable">
							<% team.users.reject{ |u| (u.user_name == @current_user.user_name) }.collect {|u| u.user_name }.each do |k| %>
								<li><%= k%>
									<br>
									<% if (@tournament.game_id  == 1) %>
										<%= if @blue2["#{k}"] == nil
											"Level: #{@purp2["#{k}"]["level"]}  K/D/A: #{@purp2["#{k}"]["championsKilled"]}/#{@purp2["#{k}"]["numDeaths"]}/#{@purp2["#{k}"]["assists"]}  Gold:#{@purp2["#{k}"]["goldEarned"]}"
											else
											"Level: #{@blue2["#{k}"]["level"]}  K/D/A: #{@blue2["#{k}"]["championsKilled"]}/#{@blue2["#{k}"]["numDeaths"]}/#{@blue2["#{k}"]["assists"]}  Gold:#{@blue2["#{k}"]["goldEarned"]}"
										end %>
									<% end %>
								</li>
							<% end %>
						</ol>
					<% end %>
				<% end %>
				<%= submit_tag("Submit peer evaluation", :onsubmit => "score_peers()") %>
			<% else %>
				Waiting for peer evaluations to be submitted.
			<% end %>
		<% when 3 %>
			<!-- Totally done -->
			This match is done.
			<input type="hidden" name="update_action" value="reset">
			<%= submit_tag("Reset Status") %>
		<% end # case %>
	<% end # form %>
</div>