summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authornfoy <nfoy@purdue.edu>2014-04-03 16:49:07 -0400
committernfoy <nfoy@purdue.edu>2014-04-03 16:49:07 -0400
commitef0cc1035632d7b59a5977038ac30fe1292d0128 (patch)
treecc4b6f1105defaa7ac56afa141d2416a7f956f9d /app
parent9d2e1394bc09d4df3fce97d6151f5bfc3546fbe8 (diff)
parentd6009eddd6f67a9414ff7d707ae82c053e6653ad (diff)
Merge branch 'master' of https://github.com/LukeShu/leaguer
Diffstat (limited to 'app')
-rw-r--r--app/helpers/sessions_helper.rb4
-rw-r--r--app/models/tournament.rb2
-rw-r--r--app/models/user.rb15
-rw-r--r--app/views/tournaments/_selected.html.erb2
-rw-r--r--app/views/tournaments/show.html.erb7
5 files changed, 26 insertions, 4 deletions
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 87b516e..4483535 100644
--- a/app/models/tournament.rb
+++ b/app/models/tournament.rb
@@ -9,7 +9,7 @@ class Tournament < ActiveRecord::Base
end
def joinable_by?(user)
- return ((not user.nil?) and user.in_group?(:player) and open?)
+ return ((not user.nil?) and user.in_group?(:player) and open? and !players.include?(user))
end
def join(user)
diff --git a/app/models/user.rb b/app/models/user.rb
index 277d885..016c155 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -91,3 +91,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/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/show.html.erb b/app/views/tournaments/show.html.erb
index b771701..d246f7a 100644
--- a/app/views/tournaments/show.html.erb
+++ b/app/views/tournaments/show.html.erb
@@ -134,11 +134,18 @@ 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);
+
}
setTimeout(function(){$.ajax({url: "<%= url_for @tournament %>.json"}).done(donehandle)}, 3000);
}