summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDavisLWebb <davislwebb@ymail.com>2014-04-03 17:56:24 -0400
committerDavisLWebb <davislwebb@ymail.com>2014-04-03 17:56:24 -0400
commit8b3fae332f81b42671bd2a4f332626c75fdeb976 (patch)
tree917b5d74695b69670a75f83f0ba3deeb83e44f07 /app
parent6289593da4b6ad30c893b61caf4ac142b590710a (diff)
parent0c1583c0b31504dfdbbbec3e6dcc240acb059891 (diff)
Merge branch 'master' of https://github.com/LukeShu/Leaguer
Diffstat (limited to 'app')
-rw-r--r--app/assets/stylesheets/application.css5
-rw-r--r--app/controllers/tournaments_controller.rb14
-rw-r--r--app/helpers/sessions_helper.rb4
-rw-r--r--app/models/tournament.rb8
-rw-r--r--app/models/user.rb15
-rw-r--r--app/views/matches/index.html.erb4
-rw-r--r--app/views/tournaments/_selected.html.erb2
-rw-r--r--app/views/tournaments/index.html.erb2
-rw-r--r--app/views/tournaments/show.html.erb44
9 files changed, 47 insertions, 51 deletions
diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css
index b3f5d46..dd7588a 100644
--- a/app/assets/stylesheets/application.css
+++ b/app/assets/stylesheets/application.css
@@ -23,3 +23,8 @@
.navbar{
background-color: white;
}
+
+footer {
+ clear: both;
+ margin-top: 10px;
+} \ No newline at end of file
diff --git a/app/controllers/tournaments_controller.rb b/app/controllers/tournaments_controller.rb
index 9cf3404..4bba997 100644
--- a/app/controllers/tournaments_controller.rb
+++ b/app/controllers/tournaments_controller.rb
@@ -36,12 +36,7 @@ class TournamentsController < ApplicationController
# GET /tournaments/1/edit
def edit
- if params['close_action'] == 'close'
- @tournament.status = 1
- @tournament.save
- @tournament.setup(@tournament)
- redirect_to "/tournaments"
- end
+
end
# POST /tournaments
@@ -96,7 +91,10 @@ class TournamentsController < ApplicationController
format.html {redirect_to @tournament, notice: 'You were\'t a part of this tournament.' }
format.json { render json: "Permission denied", status: :forbidden }
end
- when "open"
+ when "start"
+ @tournament.status = 1
+ @tournament.save
+ @tournament.setup()
respond_to do |format|
if @tournament.setup
format.html { render action: 'show', notice: 'You have joined this tournament.' }
@@ -105,8 +103,6 @@ class TournamentsController < ApplicationController
format.html { render action: 'permission_denied', status: :forbidden }
format.json { render json: "Permission denied", status: :forbidden }
end
- #when "close"
- # TODO
else
respond_to do |format|
format.html { render action: 'show', notice: "Invalid action", status: :unprocessable_entity }
diff --git a/app/helpers/sessions_helper.rb b/app/helpers/sessions_helper.rb
index 54e4b0d..89e5ef3 100644
--- a/app/helpers/sessions_helper.rb
+++ b/app/helpers/sessions_helper.rb
@@ -18,7 +18,7 @@ module SessionsHelper
def current_user
@token ||= Session.hash_token(cookies[:remember_token])
@session ||= Session.find_by(token: @token)
- @current_user ||= (@session.nil? ? nil : @session.user)
+ @current_user ||= (@session.nil? ? NilUser.new : @session.user)
end
# checks if someone is currently signed in
@@ -30,7 +30,7 @@ module SessionsHelper
if signed_in?
@session.destroy
end
- @current_user = nil
+ @current_user = NilUser.new
cookies.delete(:remember_token)
end
diff --git a/app/models/tournament.rb b/app/models/tournament.rb
index 4483535..6d92f3d 100644
--- a/app/models/tournament.rb
+++ b/app/models/tournament.rb
@@ -20,12 +20,12 @@ class Tournament < ActiveRecord::Base
end
def leave(user)
- if players.include?(user)
+ if players.include?(user) && status == 0
players.delete(user)
end
end
- def setup(tournament)
+ def setup()
num_teams = (self.players.count/self.max_players_per_team).floor
num_matches = num_teams - 1
for i in 1..num_matches
@@ -33,9 +33,9 @@ class Tournament < ActiveRecord::Base
end
match_num = 0
team_num = 0
- self.players.each_slice(tournament.max_players_per_team) do |players|
+ self.players.each_slice(max_players_per_team) do |players|
self.matches[match_num].teams.push(Team.create(users: players))
- if (team_num != 0 and team_num % tournament.max_teams_per_match == 0)
+ if (team_num != 0 and team_num % max_teams_per_match == 0)
match_num += 1
team_num = 0
else
diff --git a/app/models/user.rb b/app/models/user.rb
index 7c8ae84..9a0948f 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -93,3 +93,18 @@ class User < ActiveRecord::Base
validates :password, length: { minimum: 6 }
end
+class NilUser
+ def nil?
+ return true
+ end
+ def can?(action)
+ return false
+ end
+ def method_missing(name, *args)
+ # Throw an error if User doesn't have this method
+ super unless User.new.respond_to?(name)
+ # User has this method -- return a blank value
+ # 'false' if the method ends with '?'; 'nil' otherwise.
+ name.ends_with?('?') ? false : nil
+ end
+end
diff --git a/app/views/matches/index.html.erb b/app/views/matches/index.html.erb
index 0f86da6..babf45e 100644
--- a/app/views/matches/index.html.erb
+++ b/app/views/matches/index.html.erb
@@ -1,6 +1,6 @@
<h1><%= @tournament.name %> Matches</h1>
-<!--
+
<table>
<thead>
<tr>
@@ -29,7 +29,7 @@
</table>
<br>
--->
+
<SVG version="1.1"
baseProfile="full"
diff --git a/app/views/tournaments/_selected.html.erb b/app/views/tournaments/_selected.html.erb
index 8734b14..8a704b5 100644
--- a/app/views/tournaments/_selected.html.erb
+++ b/app/views/tournaments/_selected.html.erb
@@ -4,7 +4,7 @@
<% @chosen = Game.find_by(params[:game]) %>
<% @tournament.attributes.each do |name, value| %>
- <% if (name == "id") or (name =~ /.*_at$/) or (name == "game_id") or (name == "status") %>
+ <% if (name == "id") or (name =~ /.*_at$/) or (name == "game_id") or (name == "status") or (name == "set_rounds") %>
<% next %>
<% end %>
<p>
diff --git a/app/views/tournaments/index.html.erb b/app/views/tournaments/index.html.erb
index 6a86955..e174de7 100644
--- a/app/views/tournaments/index.html.erb
+++ b/app/views/tournaments/index.html.erb
@@ -6,7 +6,7 @@
<%# Each tournament has a div for its listing %>
<% @tournaments.each do |t| %>
<div class="row tournament-listing">
- <div class="col-md-2 ">Gravatar of Host Goes Here</div>
+ <div class="col-md-2 "><%= image_tag 'http://www.gravatar.com/avatar/' + Digest::MD5.hexdigest(t.hosts.first.email) + '?s=100&d=mm' %></div>
<div class="col-md-8">
diff --git a/app/views/tournaments/show.html.erb b/app/views/tournaments/show.html.erb
index b771701..b654804 100644
--- a/app/views/tournaments/show.html.erb
+++ b/app/views/tournaments/show.html.erb
@@ -40,35 +40,6 @@
<%= @tournament.max_teams_per_match %>
</p>
-<p>
- <strong>Set rounds:</strong>
- <%= @tournament.set_rounds %>
-</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>Set rounds:</strong>
- <%= @tournament.set_rounds %>
-</p>
<p>
<strong>Randomized teams:</strong>
@@ -108,8 +79,8 @@
<%# If user is the host, let them start the tournment %>
<% if @tournament.hosts.include?(current_user) %>
- <%= form_tag(tournaments_path.to_s + "/" + @tournament.id.to_s + "/edit", method: "get") do %>
- <input type="hidden" name="close_action" value="close">
+ <%= 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 %>
@@ -134,13 +105,22 @@ function donehandle( tournament ) {
$("#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)}, 3000);
+ setTimeout(function(){$.ajax({url: "<%= url_for @tournament %>.json"}).done(donehandle)}, 2000);
}
$.ajax({url: "<%= url_for @tournament %>.json"})