summaryrefslogtreecommitdiff
path: root/app/views/tournaments/show.html.erb
blob: e80e0e82dc913985a7e9514442efc76efebb1812 (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
<h2 id="tournament-name"> 
  <%= @tournament.name %>
</h2>

<div class="progress">
  <%= tag("div", {:id => "prog-bar", :class => "progress-bar progress-bar-warning",  :style => "width: " +(@tournament.players.count * 100 / (@tournament.min_players_per_team * @tournament.min_teams_per_match)).to_s + "%", "aria-valuemax" => "100", "aria-valuemin" => "0", "aria-valuenow" => (@tournament.players.count * 100 / (@tournament.min_players_per_team * @tournament.min_teams_per_match)).to_s, "role" => "progressbar"}) %>
    <span class="sr-only">60% Complete (warning)</span>
    </div>
</div>
<p id="players-needed"><%= pluralize(@tournament.players.count, "player has", "players have") %> signed up. <%= @tournament.min_players_per_team * @tournament.min_teams_per_match %> needed. </p>

<span id="tournament-side-params">

<p>
  <strong>Status:</strong>
  <% if @tournament.status == 0 %>
    Waiting for players...
  <% else %>
    Started
  <% end %>
</p>

<p>
  <strong>Min players per team:</strong>
  <%= @tournament.min_players_per_team %>
</p>

<p>
  <strong>Max players per team:</strong>
  <%= @tournament.max_players_per_team %>
</p>

<p>
  <strong>Min teams per match:</strong>
  <%= @tournament.min_teams_per_match %>
</p>

<p>
  <strong>Max teams per match:</strong>
  <%= @tournament.max_teams_per_match %>
</p>


<p>
  <strong>Randomized teams:</strong>
  <%= @tournament.randomized_teams %>
</p>

</span>

<div >
<%# Show all players in the tournament %>
<% if @tournament.players.length > 0 %>
<h3> Players Here: </h3>
  <ul id="tournament-users">
    <% @tournament.players.each do |p| %>
      <li><span class="black"> <%= p.user_name %> </span> </li>
    <% end %>
  </ul>
 <% else %>
 <h3 div="players-needed">Hmmm.... nobody's here yet! You and your friends should join the tournament.</h3> 
<% end %>

<div class="leave-buttons">
<%# If user can join, and user hasn't joined already, show the join tournment tag %>
<% if @tournament.joinable_by?(current_user) && !@tournament.players.include?(current_user) %> 
  <%= form_tag(tournament_path(@tournament), method: "put") do %>
    <input type="hidden" name="update_action" value="join">
    <%= submit_tag("Join Tournament") %>
  <% end %>

<% elsif @tournament.players.include?(current_user) %>
    <%= form_tag(tournament_path(@tournament), method: "put") do %>
    <input type="hidden" name="update_action" value="leave">
    <%= submit_tag("Leave Tournament") %>
  <% end %>
<% end %>

<%# If user is the host, let them start the tournment %>
<% if @tournament.hosts.include?(current_user) %>
  
  <%= form_tag(tournament_path(@tournament), method: "put") do %>
    <input type="hidden" name="update_action" value="start">
    <% if @tournament.players.count >= @tournament.min_players_per_team * @tournament.min_teams_per_match  %> 
      <%= submit_tag("Start Tournament") %>
    <% else %>
      <%= submit_tag("Start Tournament", disabled: true) %>
    <% end %>
    <br />
    <%= link_to 'Edit', edit_tournament_path(@tournament) %> |
    <%= link_to 'Back', tournaments_path %> |
    <%= link_to 'Cancel Tournament', @tournament, method: :delete, data: { confirm: 'Are you sure?' } %>
  <% end %>
</div>

<%end %>
</div>

<script>
function donehandle( tournament ) {
  if ( console && console.log ) {
    var here = tournament["players"].length;
    var needed = (tournament["min_teams_per_match"] * tournament["min_players_per_team"]);
    var pct_complete =  here / needed;
    $("#prog-bar").width( (pct_complete * 100) +"%");
    $("#players-needed").text(here + " " + (here==1?"player has":"players have") + " signed up. " + needed + " players needed. ");
    players = "";

    //creates the present user list
    for (var i = 0; i < tournament["players"].length; i++) {
      players = players+"<li><span class=\"black\">"+tournament["players"][i]["user_name"]+"</span></li>"
    }

    //updates the user list
    $("#tournament-users").html(players);

    //if there are enough players to start, enable the button, else disable it.
    $("input[value=\"Start Tournament\"]").prop('disabled', (pct_complete >= 1)? false : true);

    if (tournament["status"] == 1)
      window.location.reload(true);
  }
  setTimeout(function(){$.ajax({url: "<%= url_for @tournament %>.json"}).done(donehandle)}, 2000);
}

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