diff --git a/Gemfile b/Gemfile index 7ada2bdfb..461da6964 100644 --- a/Gemfile +++ b/Gemfile @@ -33,6 +33,8 @@ gem 'faraday_middleware', '0.10' gem 'koala' +gem 'rack-user_agent' + group :development do gem 'web-console' gem 'spring' diff --git a/Gemfile.lock b/Gemfile.lock index 6136d19e6..ecb4b0b7d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -155,6 +155,9 @@ GEM rack rack-test (0.7.0) rack (>= 1.0, < 3) + rack-user_agent (0.5.2) + rack (>= 1.5) + woothee (>= 1.0.0) rails (5.1.4) actioncable (= 5.1.4) actionmailer (= 5.1.4) @@ -294,6 +297,7 @@ GEM websocket-driver (0.6.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.2) + woothee (1.7.0) xpath (2.1.0) nokogiri (~> 1.3) @@ -316,6 +320,7 @@ DEPENDENCIES pg pry-rails rack-host-redirect + rack-user_agent rails (= 5.1.4) rails-controller-testing rake diff --git a/app/assets/javascripts/static_pages.coffee b/app/assets/javascripts/static_pages.coffee new file mode 100644 index 000000000..f50a8f580 --- /dev/null +++ b/app/assets/javascripts/static_pages.coffee @@ -0,0 +1,5 @@ +$ -> + $('.collapse').on 'shown.bs.collapse', -> + $(this).parent().find(".fa-chevron-right").removeClass("fa-chevron-right").addClass("fa-chevron-down") + $('.collapse').on 'hidden.bs.collapse', -> + $(this).parent().find(".fa-chevron-down").removeClass("fa-chevron-down").addClass("fa-chevron-right") diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index bc64cff4a..94e28d714 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -6,6 +6,8 @@ class ApplicationController < ActionController::Base protect_from_forgery with: :exception include SessionsHelper + before_action :set_request_variant + private def store_location @@ -16,4 +18,7 @@ def login_page_access? %w(login_page sessions).include? self.controller_name end + def set_request_variant + request.variant = request.device_variant + end end diff --git a/app/controllers/static_pages_controller.rb b/app/controllers/static_pages_controller.rb index 10b40ec56..c048f19e4 100644 --- a/app/controllers/static_pages_controller.rb +++ b/app/controllers/static_pages_controller.rb @@ -1,6 +1,7 @@ class StaticPagesController < ApplicationController def home - @dojos = Dojo.all + @dojo_count = Dojo.count + @regions_and_dojos = Dojo.includes(:prefecture).group_by { |dojo| dojo.prefecture.region } end def letsencrypt diff --git a/app/views/static_pages/_dojo.html.erb b/app/views/static_pages/_dojo.html.erb new file mode 100644 index 000000000..14ff32092 --- /dev/null +++ b/app/views/static_pages/_dojo.html.erb @@ -0,0 +1,14 @@ +
<%= dojo.description %>
+CoderDojo は7〜17歳の子どもを対象にしたプログラミング道場です。2011年にアイルランドで始まり、世界では<%= Dojo::NUM_OF_COUNTRIES %>カ国・<%= Dojo::NUM_OF_WHOLE_DOJOS %>の道場、日本では全国に<%= @dojos.count %>以上の道場があります。これまでに<%= Dojo::NUM_OF_WHOLE_EVENTS %>回以上のイベントが開催されました。
+CoderDojo は7〜17歳の子どもを対象にしたプログラミング道場です。2011年にアイルランドで始まり、世界では<%= Dojo::NUM_OF_COUNTRIES %>カ国・<%= Dojo::NUM_OF_WHOLE_DOJOS %>の道場、日本では全国に<%= @dojo_count %>以上の道場があります。これまでに<%= Dojo::NUM_OF_WHOLE_EVENTS %>回以上のイベントが開催されました。
CoderDojo で学べる内容は道場ごとに異なります。例えば、次の内容を学べる道場があります。
<%= dojo.description %>
-