From adff870774daec6dd80c5556b328e063ece4394a Mon Sep 17 00:00:00 2001 From: Benjamin ter Kuile Date: Wed, 11 Mar 2015 07:44:28 +0100 Subject: [PATCH] Active model serializer deprication smash --- Gemfile.lock | 4 +- app/controllers/application_controller.rb | 6 +-- app/helpers/application_helper.rb | 40 +++++++++++++++++++ .../employees/supplier_serializer.rb | 1 - app/serializers/join_request_serializer.rb | 1 - app/serializers/order_serializer.rb | 1 - .../product_category_serializer.rb | 1 - app/serializers/product_order_serializer.rb | 1 - app/serializers/product_serializer.rb | 1 - app/serializers/section_serializer.rb | 1 - .../supplier_extended_list_serializer.rb | 1 - app/serializers/supplier_list_serializer.rb | 1 - app/serializers/supplier_table_serializer.rb | 1 - .../suppliers/extended_section_serializer.rb | 1 - .../suppliers/extended_table_serializer.rb | 1 - .../suppliers/supplier_serializer.rb | 1 - app/serializers/table_serializer.rb | 1 - .../user_extended_list_serializer.rb | 1 - .../user_extended_supplier_serializer.rb | 1 - .../user_extended_table_serializer.rb | 1 - app/serializers/user_list_serializer.rb | 1 - app/views/theme1/_navigation.html.slim | 6 +-- config/environments/production.rb | 2 +- 23 files changed, 49 insertions(+), 27 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 58c9c49c..5e3a6e86 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: git://github.com/bterkuile/cmtool.git - revision: ba76940007a7ef373b651f1053cc1e516e186140 + revision: e937070277ae7d44e37de85864f91a1fc779f093 specs: cmtool (1.0.0) bourbon @@ -342,7 +342,7 @@ GEM activesupport (>= 4.2.0.beta, < 5.0) nokogiri (~> 1.6.0) rails-deprecated_sanitizer (>= 1.0.1) - rails-html-sanitizer (1.0.1) + rails-html-sanitizer (1.0.2) loofah (~> 2.0) railties (4.2.0) actionpack (= 4.2.0) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 6eb8e577..55c07e84 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -35,14 +35,14 @@ private :en end - def page_path(record, locale: I18n.locale) + def go_to_page_path(record, locale: I18n.locale) str = case record when Page then record.name else record end - go_to_path(str, locale: locale) + main_app.go_to_path(str, locale: locale) end - helper_method :page_path + helper_method :go_to_page_path #END CMTOOL def broadcast_user(uid, event, data = {}) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 9204fae0..ebe29de1 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -174,4 +174,44 @@ module ApplicationHelper options[:onclick] = function link_to title, 'javascript:void(0)', options end + + # Return active or nil based on the given route spec + # %li{ class: active_class('users') # true if controller is users, false otherwise + # %li{ class: active_class('pages#about') # true if controller is pages and action is about + def active_class(*route_specs) + options = route_specs.extract_options! + active_class = options.delete(:active_class) || 'active' + return_class = Array.wrap(options.delete(:default_class)) + if route_specs.map{|rs| current_route_spec?(rs) }.any? + if params.slice(*options.keys) == options.stringify_keys + return_class << active_class + end + end + return_class + end + + # Check if the current route matches the route given as argument. + # The syntax is meant to be a bit similar to specifying routes in + # `config/routes.rb`. + # current_route_spec?('products') #=> true if controller name is products, false otherwise + # current_route_spec?('products#show') #=> true if controller_name is products AND action_name is show + # current_route_spec?('#show') #=> true if action_name is show, false otherwise + #NOTE: this helper is tested through the active_class helper + def current_route_spec?(route_spec) + controller, action = route_spec.split('#') + if controller and controller_path == controller + if action + if action_name == action + true + end + else + # no action means all actions of controller + true + end + else + if action_name == action + true + end + end + end end diff --git a/app/serializers/employees/supplier_serializer.rb b/app/serializers/employees/supplier_serializer.rb index 65da1f93..19a4f81c 100644 --- a/app/serializers/employees/supplier_serializer.rb +++ b/app/serializers/employees/supplier_serializer.rb @@ -1,6 +1,5 @@ class Employees::SupplierSerializer < Qwaiter::Serializer self.root = :supplier - embed :ids, include: true attributes :open, :name, :lat, :lng, :time_zone, :address, :house_number, :house_number_addition, :postal_code, :city, :country, :facebook_promotion_url, :iens_profile, :week_starts_on_monday, :orders_in_process_count, :orders_placed_count end diff --git a/app/serializers/join_request_serializer.rb b/app/serializers/join_request_serializer.rb index 70fd9835..6d018a12 100644 --- a/app/serializers/join_request_serializer.rb +++ b/app/serializers/join_request_serializer.rb @@ -1,5 +1,4 @@ class JoinRequestSerializer < Qwaiter::Serializer - embed :ids, include: true attributes :list_id has_one :user, serializer: UserUserSerializer end diff --git a/app/serializers/order_serializer.rb b/app/serializers/order_serializer.rb index d329c94f..d33284fe 100644 --- a/app/serializers/order_serializer.rb +++ b/app/serializers/order_serializer.rb @@ -1,5 +1,4 @@ class OrderSerializer < Qwaiter::Serializer - embed :ids, include: true attributes :state, :list_id, :section_id, :table_id #, :price has_many :product_orders diff --git a/app/serializers/product_category_serializer.rb b/app/serializers/product_category_serializer.rb index c698a13b..4fd01f89 100644 --- a/app/serializers/product_category_serializer.rb +++ b/app/serializers/product_category_serializer.rb @@ -1,5 +1,4 @@ class ProductCategorySerializer < Qwaiter::Serializer - embed :ids, include: true attributes :name, :supplier_id, :active_on_sunday, :active_on_monday, :active_on_tuesday, :active_on_wednesday, :active_on_thursday, :active_on_friday, :active_on_saturday, :full_day, :start_from, :end_on, :position diff --git a/app/serializers/product_order_serializer.rb b/app/serializers/product_order_serializer.rb index 7dff2f4e..d07f6385 100644 --- a/app/serializers/product_order_serializer.rb +++ b/app/serializers/product_order_serializer.rb @@ -1,5 +1,4 @@ # Used for user ember1 class ProductOrderSerializer < Qwaiter::Serializer - embed :ids attributes :order_id, :product_id, :quantity, :price, :product_name end diff --git a/app/serializers/product_serializer.rb b/app/serializers/product_serializer.rb index a658f134..294ceffd 100644 --- a/app/serializers/product_serializer.rb +++ b/app/serializers/product_serializer.rb @@ -1,5 +1,4 @@ class ProductSerializer < Qwaiter::Serializer - embed :ids, include: true attributes :name, :price, :description, :image, :code, :position, :visible, :product_category_id def image diff --git a/app/serializers/section_serializer.rb b/app/serializers/section_serializer.rb index 3fc782dc..de2063b0 100644 --- a/app/serializers/section_serializer.rb +++ b/app/serializers/section_serializer.rb @@ -1,5 +1,4 @@ class SectionSerializer < Qwaiter::Serializer - embed :ids, include: true attributes :title, :path, :width, :height has_many :tables end diff --git a/app/serializers/supplier_extended_list_serializer.rb b/app/serializers/supplier_extended_list_serializer.rb index 71b7247d..e942828b 100644 --- a/app/serializers/supplier_extended_list_serializer.rb +++ b/app/serializers/supplier_extended_list_serializer.rb @@ -1,6 +1,5 @@ class SupplierExtendedListSerializer < Qwaiter::Serializer # user ids for facebook pictures - embed :ids, include: true root 'list' attributes :state, :needs_help, :needs_payment, :user_requests_closing, :is_paid, :price, :table_id, :section_id, :supplier_id, :closed_at #, :has_active_orders diff --git a/app/serializers/supplier_list_serializer.rb b/app/serializers/supplier_list_serializer.rb index 30853159..0c20324e 100644 --- a/app/serializers/supplier_list_serializer.rb +++ b/app/serializers/supplier_list_serializer.rb @@ -1,7 +1,6 @@ class SupplierListSerializer < Qwaiter::Serializer # user ids for facebook pictures self.root = :list - embed :ids, include: true attributes :extended_version, :state, :needs_help, :needs_payment, :user_requests_closing, :is_paid, :price, :table_id, :table_number, :section_id, :user_ids, :supplier_id, :closed_at has_many :orders diff --git a/app/serializers/supplier_table_serializer.rb b/app/serializers/supplier_table_serializer.rb index c2af84bf..fd596248 100644 --- a/app/serializers/supplier_table_serializer.rb +++ b/app/serializers/supplier_table_serializer.rb @@ -1,6 +1,5 @@ class SupplierTableSerializer < Qwaiter::Serializer self.root = :table - embed :ids, include: true attributes :number, :width, :height, :position_x, :position_y, :section_id, :needs_help has_one :supplier, serializer: Suppliers::SupplierSerializer end diff --git a/app/serializers/suppliers/extended_section_serializer.rb b/app/serializers/suppliers/extended_section_serializer.rb index dd9a62de..0cbd1ce3 100644 --- a/app/serializers/suppliers/extended_section_serializer.rb +++ b/app/serializers/suppliers/extended_section_serializer.rb @@ -1,6 +1,5 @@ class Suppliers::ExtendedSectionSerializer < Qwaiter::Serializer root 'section' - embed :ids, include: true attributes :title, :path, :width, :height has_many :tables, serializer: Suppliers::ExtendedTableSerializer end diff --git a/app/serializers/suppliers/extended_table_serializer.rb b/app/serializers/suppliers/extended_table_serializer.rb index 0b7cf818..41d37bcf 100644 --- a/app/serializers/suppliers/extended_table_serializer.rb +++ b/app/serializers/suppliers/extended_table_serializer.rb @@ -1,6 +1,5 @@ class Suppliers::ExtendedTableSerializer < Qwaiter::Serializer root 'table' - embed :ids, include: true attributes :number, :width, :height, :position_x, :position_y, :section_id#, :active_list_id #def list_id diff --git a/app/serializers/suppliers/supplier_serializer.rb b/app/serializers/suppliers/supplier_serializer.rb index 8f6e9aad..96cbf1a8 100644 --- a/app/serializers/suppliers/supplier_serializer.rb +++ b/app/serializers/suppliers/supplier_serializer.rb @@ -1,6 +1,5 @@ class Suppliers::SupplierSerializer < Qwaiter::Serializer self.root = :supplier - embed :ids, include: true attributes :extended_version, :open, :name, :lat, :lng, :time_zone, :address, :house_number, :house_number_addition, :postal_code, :city, :country, :facebook_promotion_url, :iens_profile, :week_starts_on_monday, :orders_in_process_count, :orders_placed_count diff --git a/app/serializers/table_serializer.rb b/app/serializers/table_serializer.rb index 5b537277..50ee4850 100644 --- a/app/serializers/table_serializer.rb +++ b/app/serializers/table_serializer.rb @@ -1,5 +1,4 @@ class TableSerializer < Qwaiter::Serializer - embed :ids, include: true attributes :number, :width, :height, :position_x, :position_y, :section_id, :occupied #, :alist_id #def list_id diff --git a/app/serializers/user_extended_list_serializer.rb b/app/serializers/user_extended_list_serializer.rb index 9c07a9ef..9337c28c 100644 --- a/app/serializers/user_extended_list_serializer.rb +++ b/app/serializers/user_extended_list_serializer.rb @@ -8,7 +8,6 @@ class UserExtendedListSerializer < Qwaiter::Serializer # user ids for facebook pictures self.root = :list - embed :ids, include: true attributes :extended_version, :state, :needs_help, :needs_payment, :user_requests_closing, :is_paid, :price, :table_id, :table_number, :section_id, :user_ids, :supplier_id, :closed_at #:supplier_orders_in_process_count, :supplier_orders_placed_count diff --git a/app/serializers/user_extended_supplier_serializer.rb b/app/serializers/user_extended_supplier_serializer.rb index 1904cd96..c5a2541c 100644 --- a/app/serializers/user_extended_supplier_serializer.rb +++ b/app/serializers/user_extended_supplier_serializer.rb @@ -1,6 +1,5 @@ class UserExtendedSupplierSerializer < Qwaiter::Serializer self.root = :supplier - embed :ids, include: true attributes :extended_version, :open, :name, :orders_in_process_count, :orders_placed_count has_many :product_categories #has_many :products only product in category!!!!!! diff --git a/app/serializers/user_extended_table_serializer.rb b/app/serializers/user_extended_table_serializer.rb index 5d96e3c2..4ef4be04 100644 --- a/app/serializers/user_extended_table_serializer.rb +++ b/app/serializers/user_extended_table_serializer.rb @@ -1,6 +1,5 @@ class UserExtendedTableSerializer < Qwaiter::Serializer self.root = :table - embed :ids, include: true attributes :number, :width, :height, :position_x, :position_y, :section_id, :occupied, :needs_help has_one :supplier, serializer: UserExtendedSupplierSerializer end diff --git a/app/serializers/user_list_serializer.rb b/app/serializers/user_list_serializer.rb index f8cd233c..04d9442d 100644 --- a/app/serializers/user_list_serializer.rb +++ b/app/serializers/user_list_serializer.rb @@ -1,6 +1,5 @@ class UserListSerializer < Qwaiter::Serializer # user ids for facebook pictures - embed :ids, include: true attributes :state, :needs_help, :needs_payment, :user_requests_closing, :is_paid, :price, :table_id, :table_number, :section_id, :user_ids, :cached_supplier_name, :closed_at, :supplier_id, :extended_version diff --git a/app/views/theme1/_navigation.html.slim b/app/views/theme1/_navigation.html.slim index 2aaef26f..84c87df6 100644 --- a/app/views/theme1/_navigation.html.slim +++ b/app/views/theme1/_navigation.html.slim @@ -1,8 +1,8 @@ a.menu-secondary-toggle href="#" span ul.nav - li[class=(current_page?(controller: '/pages', action: 'home') ? ['home', :active] : ['home'])]= link_to find_page('home').try(:menu_text), locale_root_path - li[class=(current_page?(controller: '/pages', action: 'show', name: 'about') ? ['about', :active] : ['about'])]= link_to find_page('about').try(:menu_text), page_path('about') + li class=active_class('pages#home').push('home') = link_to find_page('home').try(:menu_text), locale_root_path + li class=active_class('pages#show', name: 'about').push('about') = link_to find_page('about').try(:menu_text), go_to_page_path('about') ul.nav.secondary - Page.menu_roots.each do |page| - li[class=(current_page?(controller: '/pages', action: 'show', name: page.name) ? [page.name, :active] : [page.name])]= link_to page.menu_text, page_path(page.name) + li class=active_class('pages#show', name: page.name).push(page.name) = link_to page.menu_text, go_to_page_path(page.name) diff --git a/config/environments/production.rb b/config/environments/production.rb index ed7bb8a0..84a9ca33 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -16,7 +16,7 @@ Qwaiter::Application.configure do config.action_controller.action_on_unpermitted_parameters = :log # Configure static asset server for tests with Cache-Control for performance. - config.serve_static_assets = true + config.serve_static_files = true config.static_cache_control = 'public, max-age=3600' # Compress JavaScripts and CSS