diff options
Diffstat (limited to 'app/views/matches')
-rw-r--r-- | app/views/matches/_form.html.erb | 15 | ||||
-rw-r--r-- | app/views/matches/index.html.erb | 83 | ||||
-rw-r--r-- | app/views/matches/new.html.erb | 2 | ||||
-rw-r--r-- | app/views/matches/show.html.erb | 115 |
4 files changed, 161 insertions, 54 deletions
diff --git a/app/views/matches/_form.html.erb b/app/views/matches/_form.html.erb index 768b655..a045e98 100644 --- a/app/views/matches/_form.html.erb +++ b/app/views/matches/_form.html.erb @@ -1,16 +1,5 @@ -<%= form_for(@match) do |f| %> - <% if @match.errors.any? %> - <div id="error_explanation"> - <h2><%= pluralize(@match.errors.count, "error") %> prohibited this match from being saved:</h2> - - <ul> - <% @match.errors.full_messages.each do |msg| %> - <li><%= msg %></li> - <% end %> - </ul> - </div> - <% end %> - +<%= form_for([@tournament, @tournament.matches.build]) do |f| %> + <div class="field"> <%= f.label :status %><br> <%= f.number_field :status %> diff --git a/app/views/matches/index.html.erb b/app/views/matches/index.html.erb index 85c94f2..eb827f3 100644 --- a/app/views/matches/index.html.erb +++ b/app/views/matches/index.html.erb @@ -1,31 +1,62 @@ -<h1>Listing matches</h1> +<% +# Copyright (C) 2014 Andrew Murrell +# Copyright (C) 2014 Davis Webb +# Copyright (C) 2014 Guntas Grewal +# Copyright (C) 2014 Luke Shumaker +# Copyright (C) 2014 Nathaniel Foy +# Copyright (C) 2014 Tomer Kimia +# +# This file is part of Leaguer. +# +# Leaguer is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Leaguer is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the Affero GNU General Public License +# along with Leaguer. If not, see <http://www.gnu.org/licenses/>. +%> +<h1><%= @tournament.name %> - Matches</h1> -<table> - <thead> - <tr> - <th>Status</th> - <th>Tournament stage</th> - <th>Winner</th> - <th></th> - <th></th> - <th></th> - </tr> - </thead> - - <tbody> - <% @matches.each do |match| %> - <tr> - <td><%= match.status %></td> - <td><%= match.tournament_stage %></td> - <td><%= match.winner %></td> - <td><%= link_to 'Show', match %></td> - <td><%= link_to 'Edit', edit_match_path(match) %></td> - <td><%= link_to 'Destroy', match, method: :delete, data: { confirm: 'Are you sure?' } %></td> - </tr> - <% end %> - </tbody> +<table id="matches-table" class="table"> + <thead> + <tr> + <th>Name</th> + <th>Status</th> + <th>Winner</th> + <th><!-- link to --></th> + <th><!-- start button --></th> + </tr> + </thead> + <tbody> + <% @tournament.stages.order(:id).each do |stage| %> + <% stage.matches_ordered.keys.sort.reverse.each do |match_key| %><tr> + <% match = stage.matches_ordered[match_key] %> + <td><%= "Match #{match.id}" %></td> + <td><%= match.status %></td> + <td><%= (match.winner.nil? ? "-" : "Team #{match.winner.id}") %></td> + <td><%= link_to "See Match", tournament_match_path(@tournament, match) %> + <td> + <% if match.check_permission(current_user, :edit) %> + <%= form_tag(tournament_match_path(@tournament, match), method: "put") do %> + <input type="hidden" name="update_action" value="start"> + <% @startable = (match.status == 1) and (match.teams.count >= @tournament.min_teams_per_match) %> + <%= submit_tag("Start Match", :disabled => ! @startable) %> + <% end %> + <% end %> + </td> + </tr><% end %> + <% end %> + </tbody> </table> <br> -<%= link_to 'New Match', new_match_path %> +<% @tournament.stages.order(:id).each do |stage| %> + <div class="graph"><%= raw stage.to_svg(current_user) %></div> +<% end %> diff --git a/app/views/matches/new.html.erb b/app/views/matches/new.html.erb index bd4c78c..74e7e3a 100644 --- a/app/views/matches/new.html.erb +++ b/app/views/matches/new.html.erb @@ -1,5 +1,3 @@ <h1>New match</h1> <%= render 'form' %> - -<%= link_to 'Back', matches_path %> diff --git a/app/views/matches/show.html.erb b/app/views/matches/show.html.erb index b47a045..5ee4ecb 100644 --- a/app/views/matches/show.html.erb +++ b/app/views/matches/show.html.erb @@ -1,19 +1,108 @@ -<p id="notice"><%= notice %></p> - +<% +# Copyright (C) 2014 Andrew Murrell +# Copyright (C) 2014 Davis Webb +# Copyright (C) 2014 Guntas Grewal +# Copyright (C) 2014 Luke Shumaker +# Copyright (C) 2014 Nathaniel Foy +# Copyright (C) 2014 Tomer Kimia +# +# This file is part of Leaguer. +# +# Leaguer is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Leaguer is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the Affero GNU General Public License +# along with Leaguer. If not, see <http://www.gnu.org/licenses/>. +%> <p> - <strong>Status:</strong> - <%= @match.status %> + <strong>Status:</strong> + <%= @match.status %> </p> - <p> - <strong>Tournament stage:</strong> - <%= @match.tournament_stage %> + <strong>Tournament stage:</strong> + <%= @tournament.stages.order(:id).index(@match.tournament_stage)+1 %> </p> -<p> - <strong>Winner:</strong> - <%= @match.winner %> -</p> +<%# + Match Status 0 => Created, waiting to be scheduled + Match Status 1 => Scheduled, waiting to start + Match Status 2 => Started, waiting to finish + Match Status 3 => Finished + + 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> + <% if @match.status == 3 + scores = @match.tournament_stage.scoring.score(@match) + end + %> + <% @match.teams.each do |team| %> + <li>Team <%= team.id %><ul> + <% team.users.each do |user| %> + <% if @match.status < 3 %> + <li><%= user.user_name %></li> + <% else %> + <% stats = Statistic.where(user: user, match: @match) %> + <li><%= user.user_name %> - Score: <%= scores[user] %><ul> + <% stats.all.reject{|s|s.name=="score"}.each do |stat| %> + <li><%= stat.name %>: <%= stat.value %></li> + <% end %> + </ul></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 %> -<%= link_to 'Edit', edit_match_path(@match) %> | -<%= link_to 'Back', matches_path %> +<div id="action"> + <%= form_tag(tournament_match_path(@tournament, @match), method: "put") do %> + <% case @match.status %> + <% when 0 %> + <!-- Created, waiting to be scheduled --> + <p>This match has not yet been scheduled.</p> + <% when 1 %> + <!-- Scheduled, waiting to start --> + <% if @tournament.hosts.include? current_user %> + <input type="hidden" name="update_action" value="start"> + <%= submit_tag("Start Match") %> + <% else %> + <p>Match is waiting to start.</p> + <% end %> + <% when 2 %> + <!-- Started, waiting to finish --> + <%= @match.render_sampling(current_user) %> + <% when 3 %> + <!-- Finished --> + <p>This match is finished.</p> + <% if @tournament.hosts.include? current_user %> + <input type="hidden" name="update_action" value="reset"> + <%= submit_tag("Reset Status") %> + <% end %> + <% end %> + <% end %> + <%= link_to "Back to Tournament", @match.tournament_stage.tournament %> +</div> |