summaryrefslogtreecommitdiff
path: root/app/views/matches/show.html.erb
blob: e1fe29e8d6779ab26488a899832259b8fb2387db (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
118
119
120
121
122
123
124
125
126
127
128
129
130
<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 %>
					<li><%= user.user_name %> - SCORE: <%= Statistic.where(:name => "score", :user => user, :match => @match).first.value %></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 -->
			<% if @tournament.hosts.include? current_user %>
				<input type="hidden" name="update_action" value="finish">
				<% @match.teams.each do |team| %>
					<fieldset><legend>Team <%= team.id.to_s %></legend>
						<% team.users.collect{|u| u.user_name}.each do |k| %><label>
							Score for <%= k %><br>
							<% @player_score = 0 %>
							<% current_user.statistics.where(:match => @match, :user => current_user).each{ |s| @player_score+=s.value } %>
							<%= text_field_tag("scores[#{k}]", @player_score, size: 3) %>
						</label><% end %>
					</fieldset>
				<% end %>
				<%= submit_tag("Finish match") %>
			<% else %>
				<p>The match is running; the host has yet to post the scores of the match.</p>
			<% end %>
		<% 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>