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