summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorguntasgrewal <guntasgrewal@gmail.com>2014-04-27 23:26:00 -0400
committerguntasgrewal <guntasgrewal@gmail.com>2014-04-27 23:26:00 -0400
commit6cbf08bb7659dc3265b45d05a66170f1c69ce696 (patch)
tree05e4c3c2a1fe430191d5da14a0604214f069aff9
parenta0ac7f939c770a8202f32805b879abd71de91170 (diff)
Alerts now have AJAX. Seeds were changed for tournaments to have sampling methods.
-rw-r--r--app/assets/javascripts/application/layout.js.coffee21
-rw-r--r--app/assets/stylesheets/custom.css.scss4
-rw-r--r--app/views/layouts/application.html.erb5
-rw-r--r--app/views/tournaments/_form.html.erb150
-rw-r--r--db/seeds.rb8
-rw-r--r--lib/sampling/README.md2
6 files changed, 116 insertions, 74 deletions
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 %>
-<fieldset><legend style="color:rgb(221, 145, 37)">Attributes</legend>
-<%= form_for(@tournament, url: new_tournament_path, method: "get") do |f| %>
- <%= render "common/error_messages", :target => @tournament %>
- <p>
- <%= f.label :game_id, "Select a game type" %>
- <%= f.select(:game_id, Game.all.map{|game| [game.name, game.id]}) %>
- <%= f.submit("Select") %>
- </p>
-<% end %>
+<fieldset>
+
+ <legend style="color:rgb(221, 145, 37)">Attributes
+ </legend>
+
+ <%= form_for(@tournament, url: new_tournament_path, method: "get") do |f| %>
+ <%= render "common/error_messages", :target => @tournament %>
+ <p>
+ <%= f.label :game_id, "Select a game type" %>
+ <%= f.select(:game_id, Game.all.map{|game| [game.name, game.id]}) %>
+ <%= f.submit("Select") %>
+ </p>
+ <% end %>
-<% if @tournament.game.nil? %>
- </fieldset>
+ <% if @tournament.game.nil? %>
+</fieldset>
<% else %>
<%= form_for(@tournament, url: tournaments_path, method: "post") do |f| %>
-
<p>
<%= f.label :name %>
<%= f.text_field :name %>
</p>
<div>
<p>
- <table><tbody>
- <tr>
- <td></td>
- <th style="padding:5px">Minimum</th>
- <th style="padding:5px">Maximum</th></tr>
- <tr>
- <th>Players per team: </th>
- <td style="padding:5px"><%= f.text_field(:min_players_per_team, type: :number, min: 1) %></td>
- <td style="padding:5px"><%= f.text_field(:max_players_per_team, type: :number, min: 1) %></td>
- </tr>
- </tbody></table>
+ <table>
+ <tbody>
+ <tr>
+ <td></td>
+ <th style="padding:5px">Minimum</th>
+ <th style="padding:5px">Maximum</th>
+ </tr>
+ <tr>
+ <th>Players per team: </th>
+ <td style="padding:5px"><%= f.text_field(:min_players_per_team, type: :number, min: 1) %></td>
+ <td style="padding:5px"><%= f.text_field(:max_players_per_team, type: :number, min: 1) %></td>
+ </tr>
+ </tbody>
+ </table>
</p>
</div>
@@ -56,59 +62,71 @@
<%= f.select(:sampling_method, @tournament.sampling_methods.map{|method| [method.humanize, method]}) %>
</p>
- </fieldset>
+</fieldset>
- <fieldset><legend style="color:rgb(221, 145, 37)">Settings</legend>
+<fieldset>
+ <legend style="color:rgb(221, 145, 37)">Settings
+ </legend>
<%= f.fields_for :settings do |setting_fields| %>
<% @tournament.tournament_settings.each do |setting| %><p>
<%= setting_fields.label setting.name %>
<br>
<% case setting.vartype %>
- <% when 0 %>
- <%= setting_fields.text_field( setting.name ) %>
- <% when 1 %>
- <%= setting_fields.text_area( setting.name ) %>
- <% when 2 %>
- <ul>
- <% setting.type_opt.split(',').each do |option|%>
- <li><label><%= setting_fields.radio_button( setting.name, option ) %><%= option.humanize %></label></li>
- <% end %>
- </ul>
- <% when 3 %>
- <ul>
- <% setting.type_opt.split(',').each do |option|%>
- <li><label><%= check_box_tag("tournament[settings][#{setting.name}][]", option, setting.value.split(',').include?(option)) %><%= option.humanize %></label></li>
- <% end %>
- </ul>
- <% 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 %>
+ <ul>
+ <% setting.type_opt.split(',').each do |option|%>
+ <li><label><%= setting_fields.radio_button( setting.name, option ) %><%= option.humanize %></label></li>
+ <% end %>
+ </ul>
+ <% when 3 %>
+ <ul>
+ <% setting.type_opt.split(',').each do |option|%>
+ <li><label><%= check_box_tag("tournament[settings][#{setting.name}][]", option, setting.value.split(',').include?(option)) %><%= option.humanize %></label></li>
+ <% end %>
+ </ul>
+ <% 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 %>
- </p><% end %>
- <% end %>
- </fieldset>
-
- <%= f.fields_for :stages do |stages_fields| %><fieldset><legend style="color:rgb(221, 145, 37)">Stages</legend>
- <label for="num_stages">Number of tournament stages</label>
- <input type="number" name="num_stages" min="1" value="<%= params[:num_stages].to_i %>">
- <%# stage_fields.submit("Set Stages") %>
- <% for i in 1..(params[:num_stages].to_i) do %>
- <p>
- <%= stages_fields.fields_for i.to_s do |stage_fields| %><fieldset><legend style="color:rgb(221, 145, 37)">Stage <%= i %></legend>
- <%= 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]}) %>
- </fieldset><% end %>
- </p>
+ </p>
<% end %>
- </fieldset>
<% end %>
+</fieldset>
+
+ <%= f.fields_for :stages do |stages_fields| %>
+ <fieldset>
+
+ <legend style="color:rgb(221, 145, 37)">Stages
+
+ </legend>
+ <label for="num_stages">Number of tournament stages
+ </label>
+ <input type="number" name="num_stages" min="1" value="<%= params[:num_stages].to_i %>">
+ <%# stage_fields.submit("Set Stages") %>
+ <% for i in 1..(params[:num_stages].to_i) do %>
+ <p>
+ <%= stages_fields.fields_for i.to_s do |stage_fields| %>
+ <fieldset>
+ <legend style="color:rgb(221, 145, 37)">Stage <%= i %>
+ </legend>
+ <%= 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]}) %>
+ </fieldset>
+ <% end %>
+ </p>
+ <% end %>
+ </fieldset>
+ <% 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.