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
|
<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 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>
<% @player_score = 0 %>
<% current_user.scores.find_by_match(@match).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>
<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>
|