summaryrefslogtreecommitdiff
path: root/app/views/matches/show.html.erb
blob: 16345ab3e8cc60379a127f83ffff937f9ae1c8e9 (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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<p>
	<strong>Status:</strong>
	<span id="current-id"> <%= @match.status %></span>
</p>
<p>
	<strong>Tournament:</strong>
	<%= @match.tournament.id %>
</p>

<p>
	<strong>Name:</strong>
	<%= @match.name %>
</p>
<!--
	Match Status 0 =>	Created, waiting to start
	Match Status 1 =>	Match is running, waiting to finish
	Match Status 2 =>	Match finished, waiting for peer reviews
	Match Status 3 =>	Totally done.

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

	Note:- The change of status from 1 to 2 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: <%= @match.scores.select{|s| s.user == user}.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 -->
			<% 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>
							<%= text_field_tag("scores[#{k}]", 0, 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>

<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;
	}
}


function donehandle( match ) {
  if ( console && console.log ) {
  }
  
  //if match has moved on in status, reload the page.
  if (parseInt($("#current-id").text()) != match["status"])
  	window.location.reload(true);
  
  setTimeout(function(){$.ajax({url: "<%= request.original_url %>.json"}).done(donehandle)}, 2000);
}

$.ajax({url: "<%= request.original_url %>.json"})
  .done(donehandle);
</script>