diff options
author | guntasgrewal <guntasgrewal@gmail.com> | 2014-04-27 23:26:00 -0400 |
---|---|---|
committer | guntasgrewal <guntasgrewal@gmail.com> | 2014-04-27 23:26:00 -0400 |
commit | 6cbf08bb7659dc3265b45d05a66170f1c69ce696 (patch) | |
tree | 05e4c3c2a1fe430191d5da14a0604214f069aff9 | |
parent | a0ac7f939c770a8202f32805b879abd71de91170 (diff) |
Alerts now have AJAX. Seeds were changed for tournaments to have sampling methods.
-rw-r--r-- | app/assets/javascripts/application/layout.js.coffee | 21 | ||||
-rw-r--r-- | app/assets/stylesheets/custom.css.scss | 4 | ||||
-rw-r--r-- | app/views/layouts/application.html.erb | 5 | ||||
-rw-r--r-- | app/views/tournaments/_form.html.erb | 150 | ||||
-rw-r--r-- | db/seeds.rb | 8 | ||||
-rw-r--r-- | lib/sampling/README.md | 2 |
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. |