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 | 46 | ||||
-rw-r--r-- | app/views/matches/new.html.erb | 2 | ||||
-rw-r--r-- | app/views/matches/show.html.erb | 141 |
4 files changed, 148 insertions, 56 deletions
diff --git a/app/views/matches/_form.html.erb b/app/views/matches/_form.html.erb index 9e09fd8..9d402b3 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 766c3e8..abca42b 100644 --- a/app/views/matches/index.html.erb +++ b/app/views/matches/index.html.erb @@ -1,35 +1,37 @@ -<h1>Listing matches</h1> +<h1><%= @tournament.name %> - Matches</h1> -<table> + +<table id="matches-table" class="table"> <thead> <tr> + <th>Name</th> <th>Status</th> - <th>Tournament stage</th> <th>Winner</th> - <th>Remote</th> - <th>Submitted peer evaluations</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><%= match.remote_id %></td> - <td><%= match.submitted_peer_evaluations %></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> + <tbody class="table-hover"> + <% @tournament.matches.order(:id).reverse.each do |match| %><tr> + <td><%= "Match #{match.id}" %></td> + <td><%= match.status %></td> + <td><%= (match.winner.nil? ? "-" : "Team #{match.winner.id}") %></td> + <td><%= link_to "Show", tournament_match_path(@tournament, match) %> + <td> <%# If user is the host, let them start the tournment %> + <% if @tournament.hosts.include?(current_user) %> + <%= form_tag(tournament_match_path(@tournament, match), method: "put") do %> + <input type="hidden" name="update_action" value="start"> + <% @startable = (match.status == 0) and (match.teams.count >= @tournament.min_teams_per_match) %> + <%= submit_tag("Start Match", :disabled => ! @startable) %> + <% end %> + <% end %> + </td> + </tr><% end %> + </tbody> </table> <br> -<%= link_to 'New Match', new_match_path %> +<% @tournament.stages_ordered.each do |stage| %> + <div class="graph"><%= stage.to_svg %></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 8384ff2..e7fe791 100644 --- a/app/views/matches/show.html.erb +++ b/app/views/matches/show.html.erb @@ -1,29 +1,132 @@ -<p id="notice"><%= notice %></p> - <p> - <strong>Status:</strong> - <%= @match.status %> + <strong>Status:</strong> + <%= @match.status %> </p> - <p> - <strong>Tournament stage:</strong> - <%= @match.tournament_stage %> + <strong>Tournament stage:</strong> + <%= @match.tournament_stage %> </p> <p> - <strong>Winner:</strong> - <%= @match.winner %> + <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. -<p> - <strong>Remote:</strong> - <%= @match.remote_id %> -</p> + 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. -<p> - <strong>Submitted peer evaluations:</strong> - <%= @match.submitted_peer_evaluations %> -</p> + 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> -<%= link_to 'Edit', edit_match_path(@match) %> | -<%= link_to 'Back', matches_path %> +<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> |