From 6cbf08bb7659dc3265b45d05a66170f1c69ce696 Mon Sep 17 00:00:00 2001
From: guntasgrewal
Date: Sun, 27 Apr 2014 23:26:00 -0400
Subject: Alerts now have AJAX. Seeds were changed for tournaments to have
sampling methods.
---
.../javascripts/application/layout.js.coffee | 21 +++
app/assets/stylesheets/custom.css.scss | 4 +
app/views/layouts/application.html.erb | 5 +-
app/views/tournaments/_form.html.erb | 150 ++++++++++++---------
db/seeds.rb | 8 +-
lib/sampling/README.md | 2 +-
6 files changed, 116 insertions(+), 74 deletions(-)
create mode 100644 app/assets/javascripts/application/layout.js.coffee
diff --git a/app/assets/javascripts/application/layout.js.coffee b/app/assets/javascripts/application/layout.js.coffee
new file mode 100644
index 0000000..da0bc67
--- /dev/null
+++ b/app/assets/javascripts/application/layout.js.coffee
@@ -0,0 +1,21 @@
+json_url = "/alerts.json"
+
+page_visited = false
+starting_size = 0
+update = (alerts) ->
+ if !page_visited
+ starting_size = alerts.length
+ page_visited = true
+
+ if alerts.length > starting_size
+ $("#alerts-ajax").css("display", "inline");
+ return
+
+ setTimeout (->
+ $.ajax(url: json_url).done update
+ return
+ ), 2000
+
+# Now kick off the whole process
+window.onload = ->
+ $.ajax(url: json_url).done update
\ No newline at end of file
diff --git a/app/assets/stylesheets/custom.css.scss b/app/assets/stylesheets/custom.css.scss
index 9e9e63a..b274a0d 100644
--- a/app/assets/stylesheets/custom.css.scss
+++ b/app/assets/stylesheets/custom.css.scss
@@ -24,6 +24,10 @@ header > nav {
}
}
+#alerts-ajax {
+ display: none;
+}
+
.btn-custom-orange {
color: white;
background-color: rgb(255, 69, 0);
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index 9eea734..f3535e9 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -35,9 +35,8 @@
<%= link_to "Create Alert", new_alert_path, :class => "create-alert" %>
<% end %>
<%= link_to "Sign out", session_path("current"), method: "delete", :class => "signout" %>
- <%= link_to "", alerts_path, :class => "alerts"%>
-
-
+ <%# if there is an unread alert then I wanna be able to show the notification icon by saying :style => display:inline. This will be Done by Guntas once he figures out how to get unread alerts. Psuedo if alerts.unread > 0 then display else don't.%>
+ <%= link_to "", alerts_path, :class => "alerts", :id => "alerts-ajax"%>
<% else %>
<%= link_to "Log in", new_session_path, :class => "signin" %>
<%= link_to "Sign up", new_user_path, :class => "signup" %>
diff --git a/app/views/tournaments/_form.html.erb b/app/views/tournaments/_form.html.erb
index 90e0257..d89e0bc 100644
--- a/app/views/tournaments/_form.html.erb
+++ b/app/views/tournaments/_form.html.erb
@@ -1,36 +1,42 @@
<%= render "common/error_messages", :target => @tournament %>
-
<% else %>
<%= form_for(@tournament, url: tournaments_path, method: "post") do |f| %>
-
<%= f.label :name %>
<%= f.text_field :name %>
-
-
- |
- Minimum |
- Maximum |
-
- Players per team: |
- <%= f.text_field(:min_players_per_team, type: :number, min: 1) %> |
- <%= f.text_field(:max_players_per_team, type: :number, min: 1) %> |
-
-
+
+
+
+ |
+ Minimum |
+ Maximum |
+
+
+ Players per team: |
+ <%= f.text_field(:min_players_per_team, type: :number, min: 1) %> |
+ <%= f.text_field(:max_players_per_team, type: :number, min: 1) %> |
+
+
+
@@ -56,59 +62,71 @@
<%= f.select(:sampling_method, @tournament.sampling_methods.map{|method| [method.humanize, method]}) %>
-
+
-
+
+
<%= f.fields_for :settings do |setting_fields| %>
<% @tournament.tournament_settings.each do |setting| %>
<%= setting_fields.label setting.name %>
<% case setting.vartype %>
- <% when 0 %>
- <%= setting_fields.text_field( setting.name ) %>
- <% when 1 %>
- <%= setting_fields.text_area( setting.name ) %>
- <% when 2 %>
-
- <% setting.type_opt.split(',').each do |option|%>
-
- <% end %>
-
- <% when 3 %>
-
- <% setting.type_opt.split(',').each do |option|%>
-
- <% end %>
-
- <% when 4 %>
- <%= setting_fields.radio_button( setting.name, "true" ) %> True
- <%= setting_fields.radio_button( setting.name, "false" ) %> False
- <% when 5 %>
- <%= setting_fields.select( setting.name, setting.type_opt.split(',') ) %>
+ <% when 0 %>
+ <%= setting_fields.text_field( setting.name ) %>
+ <% when 1 %>
+ <%= setting_fields.text_area( setting.name ) %>
+ <% when 2 %>
+
+ <% setting.type_opt.split(',').each do |option|%>
+
+ <% end %>
+
+ <% when 3 %>
+
+ <% setting.type_opt.split(',').each do |option|%>
+
+ <% end %>
+
+ <% when 4 %>
+ <%= setting_fields.radio_button( setting.name, "true" ) %> True
+ <%= setting_fields.radio_button( setting.name, "false" ) %> False
+ <% when 5 %>
+ <%= setting_fields.select( setting.name, setting.type_opt.split(',') ) %>
<% end %>
- <% end %>
- <% end %>
-
-
- <%= f.fields_for :stages do |stages_fields| %>
-
-
- <%# stage_fields.submit("Set Stages") %>
- <% for i in 1..(params[:num_stages].to_i) do %>
-
- <%= stages_fields.fields_for i.to_s do |stage_fields| %>
- <%= stage_fields.label :scheduling_method %>
- <%= stage_fields.select(:scheduling_method, @tournament.scheduling_methods.map{|method| [method.humanize, method]}) %>
- <%= stage_fields.label :seeding_method %>
- <%= stage_fields.select(:seeding_method, @tournament.seeding_methods.map{|method| [method.humanize, method]}) %>
- <% end %>
-
+
<% end %>
-
<% end %>
+
+
+ <%= f.fields_for :stages do |stages_fields| %>
+
+
+
+
+
+ <%# stage_fields.submit("Set Stages") %>
+ <% for i in 1..(params[:num_stages].to_i) do %>
+
+ <%= stages_fields.fields_for i.to_s do |stage_fields| %>
+
+
+ <%= stage_fields.label :scheduling_method %>
+ <%= stage_fields.select(:scheduling_method, @tournament.scheduling_methods.map{|method| [method.humanize, method]}) %>
+ <%= stage_fields.label :seeding_method %>
+ <%= stage_fields.select(:seeding_method, @tournament.seeding_methods.map{|method| [method.humanize, method]}) %>
+
+ <% end %>
+
+ <% end %>
+
+ <% end %>
<%= f.submit %>
- <%# render 'stages' %>
- <% end %>
<% end %>
+<% end %>
diff --git a/db/seeds.rb b/db/seeds.rb
index c37dcf7..a66cc4b 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -85,7 +85,7 @@ if Rails.env.development?
#chess
chess_tourn = Tournament.create(game_id: 2, status: 0, name: "Chess Seed", min_players_per_team: 1, max_players_per_team: 1, min_teams_per_match: 2,
- max_teams_per_match: 2, sampling_method: nil)
+ max_teams_per_match: 2, sampling_method: "manual")
chess_tourn.hosts.push(davis)
chess_tourn.join(davis)
@@ -93,7 +93,7 @@ if Rails.env.development?
#Rock Paper Scissors
rps = Tournament.create(game_id: 4, status: 0, name: "Rock, Paper, Scissors Seed", min_players_per_team: 1, max_players_per_team: 3, min_teams_per_match: 2,
- max_teams_per_match: 2, sampling_method: nil)
+ max_teams_per_match: 2, sampling_method: "manual")
rps.hosts.push(davis)
rps.join(davis)
@@ -101,7 +101,7 @@ if Rails.env.development?
rps.join(guntas)
tourn5 = Tournament.create(game_id: 1, status: 0, name: "5 Teams, 2 Teams Per Match", min_players_per_team: 1, max_players_per_team: 1, min_teams_per_match: 2,
- max_teams_per_match: 2, sampling_method: nil)
+ max_teams_per_match: 2, sampling_method: "manual")
for i in 0..9
if i == 0
@@ -112,7 +112,7 @@ if Rails.env.development?
tourn5.join(players_for_league[9])
tourn6 = Tournament.create(game_id: 1, status: 0, name: "3 teams per match", min_players_per_team: 1, max_players_per_team: 1, min_teams_per_match: 3,
- max_teams_per_match: 3, sampling_method: nil)
+ max_teams_per_match: 3, sampling_method: "manual")
for i in 0..9
if i == 0
diff --git a/lib/sampling/README.md b/lib/sampling/README.md
index bde84cd..3d564da 100644
--- a/lib/sampling/README.md
+++ b/lib/sampling/README.md
@@ -11,7 +11,7 @@ interface:
- `can_get?(User, String setting_name) => Fixnum`
- Returns whether or nat this sampling method can get a specifed
+ Returns whether or not this sampling method can get a specifed
statistic; 0 means 'false', positive integers mean 'true', where
higher numbers are higher priority.
--
cgit v1.2.3-54-g00ecf