From d170a4d489346ab1662087f4716abbec76e9ad0f Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Tue, 7 Aug 2018 15:25:47 +0100 Subject: [PATCH 01/10] New domain Web (rails engine) with the following features extracted from the main app: - cookies banner - cookies policy page - cookies policy and privacy policy links in the footer --- .rubocop.yml | 2 ++ Gemfile | 2 ++ Gemfile.lock | 6 ++++ .../api/cookies_consent_controller.rb | 26 ---------------- app/services/cookies_consent.rb | 29 ----------------- app/views/layouts/darkswarm.html.haml | 2 ++ app/views/shared/_footer.html.haml | 2 +- config/routes.rb | 7 ++--- engines/web/README.md | 5 +++ engines/web/app/assets/javascripts/web/all.js | 13 ++++++++ .../cookies_banner_controller.js.coffee | 0 .../cookies_banner_directive.js.coffee | 0 .../cookies_banner_service.js.coffee | 2 +- .../cookies_policy_modal_controller.js.coffee | 0 .../cookies_policy_modal_directive.js.coffee | 0 .../cookies_policy_modal_service.js.coffee | 0 engines/web/app/assets/javascripts/web/web.js | 2 ++ .../web/app/assets/stylesheets/web/all.css | 13 ++++++++ .../web}/pages/cookies_banner.css.scss | 2 +- .../web}/pages/cookies_policy_modal.css.scss | 2 +- .../web/api/cookies_consent_controller.rb | 30 ++++++++++++++++++ .../controllers/web/application_controller.rb | 5 +++ .../_cookies_policy_entry.html.haml | 0 .../cookies_banner.html.haml | 0 .../cookies_policy.html.haml | 0 engines/web/config/routes.rb | 7 +++++ engines/web/lib/web.rb | 4 +++ engines/web/lib/web/cookies_consent.rb | 31 +++++++++++++++++++ engines/web/lib/web/engine.rb | 4 +++ engines/web/lib/web/version.rb | 3 ++ engines/web/spec/spec_helper.rb | 8 +++++ engines/web/web.gemspec | 13 ++++++++ 32 files changed, 157 insertions(+), 63 deletions(-) delete mode 100644 app/controllers/api/cookies_consent_controller.rb delete mode 100644 app/services/cookies_consent.rb create mode 100644 engines/web/README.md create mode 100644 engines/web/app/assets/javascripts/web/all.js rename {app/assets/javascripts/darkswarm => engines/web/app/assets/javascripts/web}/cookies_banner/cookies_banner_controller.js.coffee (100%) rename {app/assets/javascripts/darkswarm => engines/web/app/assets/javascripts/web}/cookies_banner/cookies_banner_directive.js.coffee (100%) rename {app/assets/javascripts/darkswarm => engines/web/app/assets/javascripts/web}/cookies_banner/cookies_banner_service.js.coffee (86%) rename {app/assets/javascripts/darkswarm => engines/web/app/assets/javascripts/web}/cookies_policy/cookies_policy_modal_controller.js.coffee (100%) rename {app/assets/javascripts/darkswarm => engines/web/app/assets/javascripts/web}/cookies_policy/cookies_policy_modal_directive.js.coffee (100%) rename {app/assets/javascripts/darkswarm => engines/web/app/assets/javascripts/web}/cookies_policy/cookies_policy_modal_service.js.coffee (100%) create mode 100644 engines/web/app/assets/javascripts/web/web.js create mode 100644 engines/web/app/assets/stylesheets/web/all.css rename {app/assets/stylesheets/darkswarm => engines/web/app/assets/stylesheets/web}/pages/cookies_banner.css.scss (87%) rename {app/assets/stylesheets/darkswarm => engines/web/app/assets/stylesheets/web}/pages/cookies_policy_modal.css.scss (86%) create mode 100644 engines/web/app/controllers/web/api/cookies_consent_controller.rb create mode 100644 engines/web/app/controllers/web/application_controller.rb rename {app => engines/web/app}/views/angular_templates/_cookies_policy_entry.html.haml (100%) rename {app/assets/javascripts/darkswarm/cookies_banner => engines/web/app/views/angular_templates}/cookies_banner.html.haml (100%) rename {app => engines/web/app}/views/angular_templates/cookies_policy.html.haml (100%) create mode 100644 engines/web/config/routes.rb create mode 100644 engines/web/lib/web.rb create mode 100644 engines/web/lib/web/cookies_consent.rb create mode 100644 engines/web/lib/web/engine.rb create mode 100644 engines/web/lib/web/version.rb create mode 100644 engines/web/spec/spec_helper.rb create mode 100644 engines/web/web.gemspec diff --git a/.rubocop.yml b/.rubocop.yml index 80d4c1bf7e..b49623c344 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -16,6 +16,8 @@ AllCops: - !ruby/regexp /old_and_unused\.rb$/ # The parser gem fails to parse this file with out current Ruby version. - 'spec/factories.rb' + # Excluding: inadequate Naming/FileName rule rejects GemFile name with camelcase + - 'engines/web/Gemfile' # OFN SETTINGS # Cop settings that have been agreed upon by the OFN community diff --git a/Gemfile b/Gemfile index 2b33c60993..2efad595c0 100644 --- a/Gemfile +++ b/Gemfile @@ -10,6 +10,8 @@ gem 'i18n-js', '~> 3.0.0' # Patched version. See http://rubysec.com/advisories/CVE-2015-5312/. gem 'nokogiri', '>= 1.6.7.1' +gem 'web', path: './engines/web' + gem 'pg' gem 'spree', github: 'openfoodfoundation/spree', branch: 'step-6a', ref: '69db1c090f3711088d84b524f1b94d25e6d21616' gem 'spree_i18n', github: 'spree/spree_i18n', branch: '1-3-stable' diff --git a/Gemfile.lock b/Gemfile.lock index 25844f45e9..2f2701fd55 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -133,6 +133,11 @@ GIT activemodel (>= 3.0) railties (>= 3.0) +PATH + remote: engines/web + specs: + web (0.0.1) + GEM remote: https://rubygems.org/ specs: @@ -767,6 +772,7 @@ DEPENDENCIES capybara (>= 2.15.4) coffee-rails (~> 3.2.1) compass-rails + web! custom_error_message! daemons dalli diff --git a/app/controllers/api/cookies_consent_controller.rb b/app/controllers/api/cookies_consent_controller.rb deleted file mode 100644 index 89016c2066..0000000000 --- a/app/controllers/api/cookies_consent_controller.rb +++ /dev/null @@ -1,26 +0,0 @@ -module Api - class CookiesConsentController < BaseController - include ActionController::Cookies - respond_to :json - - def show - render json: { cookies_consent: cookies_consent.exists? } - end - - def create - cookies_consent.set - show - end - - def destroy - cookies_consent.destroy - show - end - - private - - def cookies_consent - @cookies_consent ||= CookiesConsent.new(cookies, request.host) - end - end -end diff --git a/app/services/cookies_consent.rb b/app/services/cookies_consent.rb deleted file mode 100644 index 64c4dfa083..0000000000 --- a/app/services/cookies_consent.rb +++ /dev/null @@ -1,29 +0,0 @@ -class CookiesConsent - COOKIE_NAME = 'cookies_consent'.freeze - - def initialize(cookies, domain) - @cookies = cookies - @domain = domain - end - - def exists? - cookies.key?(COOKIE_NAME) - end - - def destroy - cookies.delete(COOKIE_NAME, domain: domain) - end - - def set - cookies[COOKIE_NAME] = { - value: COOKIE_NAME, - expires: 1.year.from_now, - domain: domain, - httponly: true - } - end - - private - - attr_reader :cookies, :domain -end diff --git a/app/views/layouts/darkswarm.html.haml b/app/views/layouts/darkswarm.html.haml index e3cd92951f..83173c16e3 100644 --- a/app/views/layouts/darkswarm.html.haml +++ b/app/views/layouts/darkswarm.html.haml @@ -19,6 +19,8 @@ %script{src: "//maps.googleapis.com/maps/api/js?libraries=places,geometry#{ ENV['GOOGLE_MAPS_API_KEY'] ? '&key=' + ENV['GOOGLE_MAPS_API_KEY'] : ''} "} = stylesheet_link_tag "darkswarm/all" = javascript_include_tag "darkswarm/all" + = stylesheet_link_tag "web/all" + = javascript_include_tag "web/all" = render "layouts/i18n_script" = render "layouts/bugherd_script" diff --git a/app/views/shared/_footer.html.haml b/app/views/shared/_footer.html.haml index 9c7126c999..21a9525e0a 100644 --- a/app/views/shared/_footer.html.haml +++ b/app/views/shared/_footer.html.haml @@ -140,7 +140,7 @@ = t '.footer_legal_text_html', {content_license: link_to('CC BY-SA 3.0', 'https://creativecommons.org/licenses/by-sa/3.0/'), code_license: link_to('AGPL 3', 'https://tldrlegal.com/license/gnu-affero-general-public-license-v3-(agpl-3.0)' )} %p.text-small %div - - cookies_policy_link = link_to( t( '.footer_data_cookies_policy' ), '', 'cookies-policy-modal' => true, 'cookies-banner' => !CookiesConsent.new(cookies, request.host).exists? && Spree::Config.cookies_consent_banner_toggle) + - cookies_policy_link = link_to( t( '.footer_data_cookies_policy' ), '', 'cookies-policy-modal' => true, 'cookies-banner' => !Web::CookiesConsent.new(cookies, request.host).exists? && Spree::Config.cookies_consent_banner_toggle) - privacy_policy_link = link_to( t( '.footer_data_privacy_policy' ), Spree::Config.privacy_policy_url, :target => '_blank' ) - if Spree::Config.privacy_policy_url.present? = t '.footer_data_text_with_privacy_policy_html', {cookies_policy: cookies_policy_link.html_safe, privacy_policy: privacy_policy_link.html_safe } diff --git a/config/routes.rb b/config/routes.rb index 4f6125c8ac..21d2346933 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -109,10 +109,6 @@ Openfoodnetwork::Application.routes.draw do get :job_queue end - scope '/cookies' do - resource :consent, only: [:show, :create, :destroy], :controller => "cookies_consent" - end - resources :customers, only: [:index, :update] post '/product_images/:product_id', to: 'product_images#update_product_image' @@ -120,6 +116,9 @@ Openfoodnetwork::Application.routes.draw do get 'sitemap.xml', to: 'sitemap#index', defaults: { format: 'xml' } + # Mount Web engine routes + mount Web::Engine, :at => '/' + # Mount Spree's routes mount Spree::Core::Engine, :at => '/' end diff --git a/engines/web/README.md b/engines/web/README.md new file mode 100644 index 0000000000..87945856ef --- /dev/null +++ b/engines/web/README.md @@ -0,0 +1,5 @@ +# Web + +This is the rails engine for the Web domain. + +See our wiki for [more info about domains and engines in OFN](https://github.com/openfoodfoundation/openfoodnetwork/wiki/Tech-Doc:-How-OFN-is-organized-in-Domains-using-Rails-Engines). diff --git a/engines/web/app/assets/javascripts/web/all.js b/engines/web/app/assets/javascripts/web/all.js new file mode 100644 index 0000000000..15ebed9422 --- /dev/null +++ b/engines/web/app/assets/javascripts/web/all.js @@ -0,0 +1,13 @@ +// This is a manifest file that'll be compiled into application.js, which will include all the files +// listed below. +// +// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, +// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. +// +// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the +// the compiled file. +// +// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD +// GO AFTER THE REQUIRES BELOW. +// +//= require_tree . diff --git a/app/assets/javascripts/darkswarm/cookies_banner/cookies_banner_controller.js.coffee b/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_controller.js.coffee similarity index 100% rename from app/assets/javascripts/darkswarm/cookies_banner/cookies_banner_controller.js.coffee rename to engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_controller.js.coffee diff --git a/app/assets/javascripts/darkswarm/cookies_banner/cookies_banner_directive.js.coffee b/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_directive.js.coffee similarity index 100% rename from app/assets/javascripts/darkswarm/cookies_banner/cookies_banner_directive.js.coffee rename to engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_directive.js.coffee diff --git a/app/assets/javascripts/darkswarm/cookies_banner/cookies_banner_service.js.coffee b/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_service.js.coffee similarity index 86% rename from app/assets/javascripts/darkswarm/cookies_banner/cookies_banner_service.js.coffee rename to engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_service.js.coffee index 139552a214..c9d2911f73 100644 --- a/app/assets/javascripts/darkswarm/cookies_banner/cookies_banner_service.js.coffee +++ b/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_service.js.coffee @@ -4,7 +4,7 @@ Darkswarm.factory "CookiesBannerService", (Navigation, $modal, $location, Redire modalMessage: null isEnabled: false - open: (path, template = 'darkswarm/cookies_banner/cookies_banner.html') => + open: (path, template = 'angular-templates/cookies_banner.html') => return unless @isEnabled @modalInstance = $modal.open templateUrl: template diff --git a/app/assets/javascripts/darkswarm/cookies_policy/cookies_policy_modal_controller.js.coffee b/engines/web/app/assets/javascripts/web/cookies_policy/cookies_policy_modal_controller.js.coffee similarity index 100% rename from app/assets/javascripts/darkswarm/cookies_policy/cookies_policy_modal_controller.js.coffee rename to engines/web/app/assets/javascripts/web/cookies_policy/cookies_policy_modal_controller.js.coffee diff --git a/app/assets/javascripts/darkswarm/cookies_policy/cookies_policy_modal_directive.js.coffee b/engines/web/app/assets/javascripts/web/cookies_policy/cookies_policy_modal_directive.js.coffee similarity index 100% rename from app/assets/javascripts/darkswarm/cookies_policy/cookies_policy_modal_directive.js.coffee rename to engines/web/app/assets/javascripts/web/cookies_policy/cookies_policy_modal_directive.js.coffee diff --git a/app/assets/javascripts/darkswarm/cookies_policy/cookies_policy_modal_service.js.coffee b/engines/web/app/assets/javascripts/web/cookies_policy/cookies_policy_modal_service.js.coffee similarity index 100% rename from app/assets/javascripts/darkswarm/cookies_policy/cookies_policy_modal_service.js.coffee rename to engines/web/app/assets/javascripts/web/cookies_policy/cookies_policy_modal_service.js.coffee diff --git a/engines/web/app/assets/javascripts/web/web.js b/engines/web/app/assets/javascripts/web/web.js new file mode 100644 index 0000000000..dee720facd --- /dev/null +++ b/engines/web/app/assets/javascripts/web/web.js @@ -0,0 +1,2 @@ +// Place all the behaviors and hooks related to the matching controller here. +// All this logic will automatically be available in application.js. diff --git a/engines/web/app/assets/stylesheets/web/all.css b/engines/web/app/assets/stylesheets/web/all.css new file mode 100644 index 0000000000..3192ec897b --- /dev/null +++ b/engines/web/app/assets/stylesheets/web/all.css @@ -0,0 +1,13 @@ +/* + * This is a manifest file that'll be compiled into application.css, which will include all the files + * listed below. + * + * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, + * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. + * + * You're free to add application-wide styles to this file and they'll appear at the top of the + * compiled file, but it's generally better to create a new file per style scope. + * + *= require_self + *= require_tree . + */ diff --git a/app/assets/stylesheets/darkswarm/pages/cookies_banner.css.scss b/engines/web/app/assets/stylesheets/web/pages/cookies_banner.css.scss similarity index 87% rename from app/assets/stylesheets/darkswarm/pages/cookies_banner.css.scss rename to engines/web/app/assets/stylesheets/web/pages/cookies_banner.css.scss index 6223220977..afd0d73d43 100644 --- a/app/assets/stylesheets/darkswarm/pages/cookies_banner.css.scss +++ b/engines/web/app/assets/stylesheets/web/pages/cookies_banner.css.scss @@ -1,4 +1,4 @@ -@import '../branding'; +@import '../../../../../../../app/assets/stylesheets/darkswarm/branding'; .cookies-banner { background: $dark-grey; diff --git a/app/assets/stylesheets/darkswarm/pages/cookies_policy_modal.css.scss b/engines/web/app/assets/stylesheets/web/pages/cookies_policy_modal.css.scss similarity index 86% rename from app/assets/stylesheets/darkswarm/pages/cookies_policy_modal.css.scss rename to engines/web/app/assets/stylesheets/web/pages/cookies_policy_modal.css.scss index 8cf87b1ebb..2279bf6983 100644 --- a/app/assets/stylesheets/darkswarm/pages/cookies_policy_modal.css.scss +++ b/engines/web/app/assets/stylesheets/web/pages/cookies_policy_modal.css.scss @@ -1,4 +1,4 @@ -@import '../branding'; +@import '../../../../../../../app/assets/stylesheets/darkswarm/branding'; .cookies-policy-modal { background: $disabled-light; diff --git a/engines/web/app/controllers/web/api/cookies_consent_controller.rb b/engines/web/app/controllers/web/api/cookies_consent_controller.rb new file mode 100644 index 0000000000..e0ea13bafe --- /dev/null +++ b/engines/web/app/controllers/web/api/cookies_consent_controller.rb @@ -0,0 +1,30 @@ +require_dependency 'web/cookies_consent' + +module Web + module Api + class CookiesConsentController < BaseController + include ActionController::Cookies + respond_to :json + + def show + render json: { cookies_consent: cookies_consent.exists? } + end + + def create + cookies_consent.set + show + end + + def destroy + cookies_consent.destroy + show + end + + private + + def cookies_consent + @cookies_consent ||= Web::CookiesConsent.new(cookies, request.host) + end + end + end +end diff --git a/engines/web/app/controllers/web/application_controller.rb b/engines/web/app/controllers/web/application_controller.rb new file mode 100644 index 0000000000..410b0ae531 --- /dev/null +++ b/engines/web/app/controllers/web/application_controller.rb @@ -0,0 +1,5 @@ +module Web + class ApplicationController < ActionController::Base + protect_from_forgery with: :exception + end +end diff --git a/app/views/angular_templates/_cookies_policy_entry.html.haml b/engines/web/app/views/angular_templates/_cookies_policy_entry.html.haml similarity index 100% rename from app/views/angular_templates/_cookies_policy_entry.html.haml rename to engines/web/app/views/angular_templates/_cookies_policy_entry.html.haml diff --git a/app/assets/javascripts/darkswarm/cookies_banner/cookies_banner.html.haml b/engines/web/app/views/angular_templates/cookies_banner.html.haml similarity index 100% rename from app/assets/javascripts/darkswarm/cookies_banner/cookies_banner.html.haml rename to engines/web/app/views/angular_templates/cookies_banner.html.haml diff --git a/app/views/angular_templates/cookies_policy.html.haml b/engines/web/app/views/angular_templates/cookies_policy.html.haml similarity index 100% rename from app/views/angular_templates/cookies_policy.html.haml rename to engines/web/app/views/angular_templates/cookies_policy.html.haml diff --git a/engines/web/config/routes.rb b/engines/web/config/routes.rb new file mode 100644 index 0000000000..e9143b1c7d --- /dev/null +++ b/engines/web/config/routes.rb @@ -0,0 +1,7 @@ +Web::Engine.routes.draw do + namespace :api do + scope '/cookies' do + resource :consent, only: [:show, :create, :destroy], controller: "cookies_consent" + end + end +end diff --git a/engines/web/lib/web.rb b/engines/web/lib/web.rb new file mode 100644 index 0000000000..613b763014 --- /dev/null +++ b/engines/web/lib/web.rb @@ -0,0 +1,4 @@ +require "web/engine" + +module Web +end diff --git a/engines/web/lib/web/cookies_consent.rb b/engines/web/lib/web/cookies_consent.rb new file mode 100644 index 0000000000..64f6c0c825 --- /dev/null +++ b/engines/web/lib/web/cookies_consent.rb @@ -0,0 +1,31 @@ +module Web + class CookiesConsent + COOKIE_NAME = 'cookies_consent'.freeze + + def initialize(cookies, domain) + @cookies = cookies + @domain = domain + end + + def exists? + cookies.key?(COOKIE_NAME) + end + + def destroy + cookies.delete(COOKIE_NAME, domain: domain) + end + + def set + cookies[COOKIE_NAME] = { + value: COOKIE_NAME, + expires: 1.year.from_now, + domain: domain, + httponly: true + } + end + + private + + attr_reader :cookies, :domain + end +end diff --git a/engines/web/lib/web/engine.rb b/engines/web/lib/web/engine.rb new file mode 100644 index 0000000000..11a353a3fd --- /dev/null +++ b/engines/web/lib/web/engine.rb @@ -0,0 +1,4 @@ +module Web + class Engine < ::Rails::Engine + end +end diff --git a/engines/web/lib/web/version.rb b/engines/web/lib/web/version.rb new file mode 100644 index 0000000000..ae51029b5c --- /dev/null +++ b/engines/web/lib/web/version.rb @@ -0,0 +1,3 @@ +module Web + VERSION = "0.0.1".freeze +end diff --git a/engines/web/spec/spec_helper.rb b/engines/web/spec/spec_helper.rb new file mode 100644 index 0000000000..3306063166 --- /dev/null +++ b/engines/web/spec/spec_helper.rb @@ -0,0 +1,8 @@ +ENV["RAILS_ENV"] = "test" + +require File.expand_path("dummy/config/environment.rb", __dir__) +require "rails/test_help" + +Rails.backtrace_cleaner.remove_silencers! + +Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f } diff --git a/engines/web/web.gemspec b/engines/web/web.gemspec new file mode 100644 index 0000000000..f44ee68909 --- /dev/null +++ b/engines/web/web.gemspec @@ -0,0 +1,13 @@ +$LOAD_PATH.push File.expand_path('lib', __dir__) + +require "web/version" + +Gem::Specification.new do |s| + s.name = "web" + s.version = Web::VERSION + s.authors = ["developers@ofn"] + s.summary = "Web domain of the OFN solution." + + s.files = Dir["{app,config,db,lib}/**/*"] + ["LICENSE.txt", "Rakefile", "README.rdoc"] + s.test_files = Dir["test/**/*"] +end From dc5eb6448e5d76ea579130d8584f55770aaefce5 Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Mon, 17 Sep 2018 12:45:06 +0100 Subject: [PATCH 02/10] Change web/all.css from sprockets to SASS and include web/all.css through darkswarm/all.css --- app/assets/stylesheets/darkswarm/all.scss | 1 + app/views/layouts/darkswarm.html.haml | 1 - engines/web/app/assets/stylesheets/web/all.css | 13 ------------- engines/web/app/assets/stylesheets/web/all.css.scss | 2 ++ .../stylesheets/web/pages/cookies_banner.css.scss | 2 +- .../web/pages/cookies_policy_modal.css.scss | 2 +- 6 files changed, 5 insertions(+), 16 deletions(-) delete mode 100644 engines/web/app/assets/stylesheets/web/all.css create mode 100644 engines/web/app/assets/stylesheets/web/all.css.scss diff --git a/app/assets/stylesheets/darkswarm/all.scss b/app/assets/stylesheets/darkswarm/all.scss index b3f5433d8e..2f73f5e796 100644 --- a/app/assets/stylesheets/darkswarm/all.scss +++ b/app/assets/stylesheets/darkswarm/all.scss @@ -12,6 +12,7 @@ @import 'base/*'; @import '*'; @import 'pages/*'; +@import '../web/all'; ofn-modal { display: block; diff --git a/app/views/layouts/darkswarm.html.haml b/app/views/layouts/darkswarm.html.haml index 83173c16e3..79d78c67ea 100644 --- a/app/views/layouts/darkswarm.html.haml +++ b/app/views/layouts/darkswarm.html.haml @@ -19,7 +19,6 @@ %script{src: "//maps.googleapis.com/maps/api/js?libraries=places,geometry#{ ENV['GOOGLE_MAPS_API_KEY'] ? '&key=' + ENV['GOOGLE_MAPS_API_KEY'] : ''} "} = stylesheet_link_tag "darkswarm/all" = javascript_include_tag "darkswarm/all" - = stylesheet_link_tag "web/all" = javascript_include_tag "web/all" = render "layouts/i18n_script" diff --git a/engines/web/app/assets/stylesheets/web/all.css b/engines/web/app/assets/stylesheets/web/all.css deleted file mode 100644 index 3192ec897b..0000000000 --- a/engines/web/app/assets/stylesheets/web/all.css +++ /dev/null @@ -1,13 +0,0 @@ -/* - * This is a manifest file that'll be compiled into application.css, which will include all the files - * listed below. - * - * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, - * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. - * - * You're free to add application-wide styles to this file and they'll appear at the top of the - * compiled file, but it's generally better to create a new file per style scope. - * - *= require_self - *= require_tree . - */ diff --git a/engines/web/app/assets/stylesheets/web/all.css.scss b/engines/web/app/assets/stylesheets/web/all.css.scss new file mode 100644 index 0000000000..53fb36eef5 --- /dev/null +++ b/engines/web/app/assets/stylesheets/web/all.css.scss @@ -0,0 +1,2 @@ +@import 'web/pages/cookies_banner'; +@import 'web/pages/cookies_policy_modal'; diff --git a/engines/web/app/assets/stylesheets/web/pages/cookies_banner.css.scss b/engines/web/app/assets/stylesheets/web/pages/cookies_banner.css.scss index afd0d73d43..a655c513a8 100644 --- a/engines/web/app/assets/stylesheets/web/pages/cookies_banner.css.scss +++ b/engines/web/app/assets/stylesheets/web/pages/cookies_banner.css.scss @@ -1,4 +1,4 @@ -@import '../../../../../../../app/assets/stylesheets/darkswarm/branding'; +@import 'darkswarm/branding'; .cookies-banner { background: $dark-grey; diff --git a/engines/web/app/assets/stylesheets/web/pages/cookies_policy_modal.css.scss b/engines/web/app/assets/stylesheets/web/pages/cookies_policy_modal.css.scss index 2279bf6983..490fe6e529 100644 --- a/engines/web/app/assets/stylesheets/web/pages/cookies_policy_modal.css.scss +++ b/engines/web/app/assets/stylesheets/web/pages/cookies_policy_modal.css.scss @@ -1,4 +1,4 @@ -@import '../../../../../../../app/assets/stylesheets/darkswarm/branding'; +@import 'darkswarm/branding'; .cookies-policy-modal { background: $disabled-light; From bded530137c2cb7ec85bdea06e17bc737721560c Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Mon, 17 Sep 2018 13:06:19 +0100 Subject: [PATCH 03/10] Moved web api endpoint from /api to /web/api --- .../cookies_banner/cookies_banner_controller.js.coffee | 2 +- engines/web/config/routes.rb | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_controller.js.coffee b/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_controller.js.coffee index a35951943a..d9444fbd78 100644 --- a/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_controller.js.coffee +++ b/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_controller.js.coffee @@ -1,6 +1,6 @@ Darkswarm.controller "CookiesBannerCtrl", ($scope, CookiesBannerService, $http, $window)-> $scope.acceptCookies = -> - $http.post('/api/cookies/consent') + $http.post('/web/api/cookies/consent') CookiesBannerService.close() CookiesBannerService.disable() diff --git a/engines/web/config/routes.rb b/engines/web/config/routes.rb index e9143b1c7d..26a1a21690 100644 --- a/engines/web/config/routes.rb +++ b/engines/web/config/routes.rb @@ -1,7 +1,9 @@ Web::Engine.routes.draw do - namespace :api do - scope '/cookies' do - resource :consent, only: [:show, :create, :destroy], controller: "cookies_consent" + namespace :web do + namespace :api do + scope '/cookies' do + resource :consent, only: [:show, :create, :destroy], controller: "cookies_consent" + end end end end From 95f2f92cf3a6d5fb7d9b7391315c384fef16fdbc Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Mon, 17 Sep 2018 13:42:48 +0100 Subject: [PATCH 04/10] Extracted cookies footer links from view to footer links helper --- app/helpers/footer_links_helper.rb | 11 +++++++++++ app/views/shared/_footer.html.haml | 2 -- 2 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 app/helpers/footer_links_helper.rb diff --git a/app/helpers/footer_links_helper.rb b/app/helpers/footer_links_helper.rb new file mode 100644 index 0000000000..71e8683da0 --- /dev/null +++ b/app/helpers/footer_links_helper.rb @@ -0,0 +1,11 @@ +require 'web/cookies_consent' + +module FooterLinksHelper + def cookies_policy_link + link_to( t( '.footer_data_cookies_policy' ), '', 'cookies-policy-modal' => true, 'cookies-banner' => !Web::CookiesConsent.new(cookies, request.host).exists? && Spree::Config.cookies_consent_banner_toggle) + end + + def privacy_policy_link + link_to( t( '.footer_data_privacy_policy' ), Spree::Config.privacy_policy_url, target: '_blank' ) + end +end diff --git a/app/views/shared/_footer.html.haml b/app/views/shared/_footer.html.haml index 21a9525e0a..4142a8fbec 100644 --- a/app/views/shared/_footer.html.haml +++ b/app/views/shared/_footer.html.haml @@ -140,8 +140,6 @@ = t '.footer_legal_text_html', {content_license: link_to('CC BY-SA 3.0', 'https://creativecommons.org/licenses/by-sa/3.0/'), code_license: link_to('AGPL 3', 'https://tldrlegal.com/license/gnu-affero-general-public-license-v3-(agpl-3.0)' )} %p.text-small %div - - cookies_policy_link = link_to( t( '.footer_data_cookies_policy' ), '', 'cookies-policy-modal' => true, 'cookies-banner' => !Web::CookiesConsent.new(cookies, request.host).exists? && Spree::Config.cookies_consent_banner_toggle) - - privacy_policy_link = link_to( t( '.footer_data_privacy_policy' ), Spree::Config.privacy_policy_url, :target => '_blank' ) - if Spree::Config.privacy_policy_url.present? = t '.footer_data_text_with_privacy_policy_html', {cookies_policy: cookies_policy_link.html_safe, privacy_policy: privacy_policy_link.html_safe } - else From c22ac0086b99e706890ad40f439e9b5bae0cf65e Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Mon, 17 Sep 2018 13:53:19 +0100 Subject: [PATCH 05/10] Moved cookies_policy_helper to Web engine and respective spec --- app/helpers/cookies_policy_helper.rb | 21 -------- .../app/helpers/web/cookies_policy_helper.rb | 23 ++++++++ .../helpers/cookies_policy_helper_spec.rb | 52 +++++++++++++++++++ spec/helpers/cookies_policy_helper_spec.rb | 51 ------------------ 4 files changed, 75 insertions(+), 72 deletions(-) delete mode 100644 app/helpers/cookies_policy_helper.rb create mode 100644 engines/web/app/helpers/web/cookies_policy_helper.rb create mode 100644 engines/web/spec/helpers/cookies_policy_helper_spec.rb delete mode 100644 spec/helpers/cookies_policy_helper_spec.rb diff --git a/app/helpers/cookies_policy_helper.rb b/app/helpers/cookies_policy_helper.rb deleted file mode 100644 index 5bcec92383..0000000000 --- a/app/helpers/cookies_policy_helper.rb +++ /dev/null @@ -1,21 +0,0 @@ -module CookiesPolicyHelper - def render_cookie_entry(cookie_name, cookie_desc, cookie_domain = nil) - render partial: 'cookies_policy_entry', - locals: { cookie_name: cookie_name, - cookie_desc: cookie_desc, - cookie_domain: cookie_domain } - end - - def matomo_iframe_src - "#{Spree::Config.matomo_url}"\ - "/index.php?module=CoreAdminHome&action=optOut"\ - "&language=#{locale_language}"\ - "&backgroundColor=&fontColor=222222&fontSize=16px&fontFamily=%22Roboto%22%2C%20Arial%2C%20sans-serif" - end - - # removes country from locale if needed - # for example, both locales en and en_GB return language en - def locale_language - I18n.locale[0..1] - end -end diff --git a/engines/web/app/helpers/web/cookies_policy_helper.rb b/engines/web/app/helpers/web/cookies_policy_helper.rb new file mode 100644 index 0000000000..0fb86f7793 --- /dev/null +++ b/engines/web/app/helpers/web/cookies_policy_helper.rb @@ -0,0 +1,23 @@ +module Web + module CookiesPolicyHelper + def render_cookie_entry(cookie_name, cookie_desc, cookie_domain = nil) + render partial: 'cookies_policy_entry', + locals: { cookie_name: cookie_name, + cookie_desc: cookie_desc, + cookie_domain: cookie_domain } + end + + def matomo_iframe_src + "#{Spree::Config.matomo_url}"\ + "/index.php?module=CoreAdminome&action=optOut"\ + "&language=#{locale_language}"\ + "&backgroundColor=&fontColor=222222&fontSize=16px&fontFamily=%22Roboto%22%2C%20Arial%2C%20sans-serif" + end + + # removes country from locale if needed + # for example, both locales en and en_GB return language en + def locale_language + I18n.locale[0..1] + end + end +end diff --git a/engines/web/spec/helpers/cookies_policy_helper_spec.rb b/engines/web/spec/helpers/cookies_policy_helper_spec.rb new file mode 100644 index 0000000000..b4d7f7fdf3 --- /dev/null +++ b/engines/web/spec/helpers/cookies_policy_helper_spec.rb @@ -0,0 +1,52 @@ +require 'spec_helper' + +module Web + describe CookiesPolicyHelper, type: :helper do + # keeps global state unchanged + around do |example| + original_locale = I18n.locale + original_matomo_url = Spree::Config.matomo_url + example.run + Spree::Config.matomo_url = original_matomo_url + I18n.locale = original_locale + end + + describe "matomo optout iframe src" do + describe "when matomo url is set" do + before do + Spree::Config.matomo_url = "http://matomo.org/" + end + + scenario "includes the matomo URL" do + expect(helper.matomo_iframe_src).to include Spree::Config.matomo_url + end + + scenario "is not equal to the matomo URL" do + expect(helper.matomo_iframe_src).to_not eq Spree::Config.matomo_url + end + end + + scenario "is not nil, when matomo url is nil" do + Spree::Config.matomo_url = nil + expect(helper.matomo_iframe_src).to_not eq nil + end + end + + describe "language from locale" do + scenario "when locale is the language" do + I18n.locale = "en" + expect(helper.locale_language).to eq "en" + end + + scenario "is empty when locale is empty" do + I18n.locale = "" + expect(helper.locale_language).to be_empty + end + + scenario "is only the language, when locale includes country" do + I18n.locale = "en_GB" + expect(helper.locale_language).to eq "en" + end + end + end +end diff --git a/spec/helpers/cookies_policy_helper_spec.rb b/spec/helpers/cookies_policy_helper_spec.rb deleted file mode 100644 index b09f578a32..0000000000 --- a/spec/helpers/cookies_policy_helper_spec.rb +++ /dev/null @@ -1,51 +0,0 @@ -require 'spec_helper' - -describe CookiesPolicyHelper, type: :helper do - - # keeps global state unchanged - around do |example| - original_locale = I18n.locale - original_matomo_url = Spree::Config.matomo_url - example.run - Spree::Config.matomo_url = original_matomo_url - I18n.locale = original_locale - end - - describe "matomo optout iframe src" do - describe "when matomo url is set" do - before do - Spree::Config.matomo_url = "http://matomo.org/" - end - - scenario "includes the matomo URL" do - expect(helper.matomo_iframe_src).to include Spree::Config.matomo_url - end - - scenario "is not equal to the matomo URL" do - expect(helper.matomo_iframe_src).to_not eq Spree::Config.matomo_url - end - end - - scenario "is not nil, when matomo url is nil" do - Spree::Config.matomo_url = nil - expect(helper.matomo_iframe_src).to_not eq nil - end - end - - describe "language from locale" do - scenario "when locale is the language" do - I18n.locale = "en" - expect(helper.locale_language).to eq "en" - end - - scenario "is empty when locale is empty" do - I18n.locale = "" - expect(helper.locale_language).to be_empty - end - - scenario "is only the language, when locale includes country" do - I18n.locale = "en_GB" - expect(helper.locale_language).to eq "en" - end - end -end From a23b1b980da5cf2eedd1b3fcab270537f972b63a Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Tue, 25 Sep 2018 12:34:38 +0100 Subject: [PATCH 06/10] =?UTF-8?q?Make=20Web=20engine=20an=20isolated=20nam?= =?UTF-8?q?espace=20engine=20mounted=20on=20/=20(without=20/web=20prefix)?= =?UTF-8?q?=20This=20approach=20is=20better=20to=20separate=20concerns,=20?= =?UTF-8?q?see=20=E2=80=9CIsolated=20Engine=E2=80=9D=20here:=20https://api?= =?UTF-8?q?.rubyonrails.org/v3.2/classes/Rails/Engine.html?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cookies_banner/cookies_banner_controller.js.coffee | 2 +- engines/web/config/routes.rb | 8 +++----- engines/web/lib/web/engine.rb | 1 + 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_controller.js.coffee b/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_controller.js.coffee index d9444fbd78..a35951943a 100644 --- a/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_controller.js.coffee +++ b/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_controller.js.coffee @@ -1,6 +1,6 @@ Darkswarm.controller "CookiesBannerCtrl", ($scope, CookiesBannerService, $http, $window)-> $scope.acceptCookies = -> - $http.post('/web/api/cookies/consent') + $http.post('/api/cookies/consent') CookiesBannerService.close() CookiesBannerService.disable() diff --git a/engines/web/config/routes.rb b/engines/web/config/routes.rb index 26a1a21690..e9143b1c7d 100644 --- a/engines/web/config/routes.rb +++ b/engines/web/config/routes.rb @@ -1,9 +1,7 @@ Web::Engine.routes.draw do - namespace :web do - namespace :api do - scope '/cookies' do - resource :consent, only: [:show, :create, :destroy], controller: "cookies_consent" - end + namespace :api do + scope '/cookies' do + resource :consent, only: [:show, :create, :destroy], controller: "cookies_consent" end end end diff --git a/engines/web/lib/web/engine.rb b/engines/web/lib/web/engine.rb index 11a353a3fd..5285d6726b 100644 --- a/engines/web/lib/web/engine.rb +++ b/engines/web/lib/web/engine.rb @@ -1,4 +1,5 @@ module Web class Engine < ::Rails::Engine + isolate_namespace Web end end From b1c7e6c0916f604572a2fb3712bb469f3f78292d Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Wed, 26 Sep 2018 12:30:45 +0100 Subject: [PATCH 07/10] Fix assets precompilation by including web/all.js and web/all.css in the assets precompilation list in application.rb --- config/application.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/config/application.rb b/config/application.rb index 33ad7f6011..9723ca795b 100644 --- a/config/application.rb +++ b/config/application.rb @@ -143,6 +143,7 @@ module Openfoodnetwork config.assets.initialize_on_precompile = true config.assets.precompile += ['store/all.css', 'store/all.js', 'store/shop_front.js', 'iehack.js'] config.assets.precompile += ['admin/all.css', 'admin/*.js', 'admin/**/*.js'] + config.assets.precompile += ['web/all.css', 'web/all.js'] config.assets.precompile += ['darkswarm/all.css', 'darkswarm/all.js'] config.assets.precompile += ['mail/all.css'] config.assets.precompile += ['search/all.css', 'search/*.js'] From 921105301ce51aaab18a0693a9087468d33b57db Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Tue, 25 Sep 2018 14:31:43 +0100 Subject: [PATCH 08/10] Move angular-templates route and controller into Web engine The route and controller were in the main app and the views in the engine, with this commit they stay all inside the engine This is done to keep it simple and remove the unnecessary dependency between main app and engine If we use this mechanism in the future for other things in the main app or other engines, we can find a way to extract/abstract this --- app/controllers/angular_templates_controller.rb | 5 ----- config/routes.rb | 2 -- .../app/controllers/web/angular_templates_controller.rb | 9 +++++++++ .../angular_templates/_cookies_policy_entry.html.haml | 0 .../{ => web}/angular_templates/cookies_banner.html.haml | 0 .../{ => web}/angular_templates/cookies_policy.html.haml | 0 engines/web/config/routes.rb | 2 ++ 7 files changed, 11 insertions(+), 7 deletions(-) delete mode 100644 app/controllers/angular_templates_controller.rb create mode 100644 engines/web/app/controllers/web/angular_templates_controller.rb rename engines/web/app/views/{ => web}/angular_templates/_cookies_policy_entry.html.haml (100%) rename engines/web/app/views/{ => web}/angular_templates/cookies_banner.html.haml (100%) rename engines/web/app/views/{ => web}/angular_templates/cookies_policy.html.haml (100%) diff --git a/app/controllers/angular_templates_controller.rb b/app/controllers/angular_templates_controller.rb deleted file mode 100644 index 44d870cc58..0000000000 --- a/app/controllers/angular_templates_controller.rb +++ /dev/null @@ -1,5 +0,0 @@ -class AngularTemplatesController < ApplicationController - def show - render params[:id].to_s, layout: nil - end -end diff --git a/config/routes.rb b/config/routes.rb index 21d2346933..bc3fc303f0 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -88,8 +88,6 @@ Openfoodnetwork::Application.routes.draw do get '/:id/shop', to: 'enterprises#shop', as: 'enterprise_shop' get "/enterprises/:permalink", to: redirect("/") # Legacy enterprise URL - get "/angular-templates/:id", to: "angular_templates#show", constraints: { name: %r{[\/\w\.]+} } - namespace :api do resources :enterprises do post :update_image, on: :member diff --git a/engines/web/app/controllers/web/angular_templates_controller.rb b/engines/web/app/controllers/web/angular_templates_controller.rb new file mode 100644 index 0000000000..d8670a4664 --- /dev/null +++ b/engines/web/app/controllers/web/angular_templates_controller.rb @@ -0,0 +1,9 @@ +module Web + class AngularTemplatesController < ApplicationController + helper Web::Engine.helpers + + def show + render params[:id].to_s, layout: nil + end + end +end diff --git a/engines/web/app/views/angular_templates/_cookies_policy_entry.html.haml b/engines/web/app/views/web/angular_templates/_cookies_policy_entry.html.haml similarity index 100% rename from engines/web/app/views/angular_templates/_cookies_policy_entry.html.haml rename to engines/web/app/views/web/angular_templates/_cookies_policy_entry.html.haml diff --git a/engines/web/app/views/angular_templates/cookies_banner.html.haml b/engines/web/app/views/web/angular_templates/cookies_banner.html.haml similarity index 100% rename from engines/web/app/views/angular_templates/cookies_banner.html.haml rename to engines/web/app/views/web/angular_templates/cookies_banner.html.haml diff --git a/engines/web/app/views/angular_templates/cookies_policy.html.haml b/engines/web/app/views/web/angular_templates/cookies_policy.html.haml similarity index 100% rename from engines/web/app/views/angular_templates/cookies_policy.html.haml rename to engines/web/app/views/web/angular_templates/cookies_policy.html.haml diff --git a/engines/web/config/routes.rb b/engines/web/config/routes.rb index e9143b1c7d..121f3bdd9a 100644 --- a/engines/web/config/routes.rb +++ b/engines/web/config/routes.rb @@ -4,4 +4,6 @@ Web::Engine.routes.draw do resource :consent, only: [:show, :create, :destroy], controller: "cookies_consent" end end + + get "/angular-templates/:id", to: "angular_templates#show", constraints: { name: %r{[\/\w\.]+} } end From 3cf10020bf8543b053974905ddfb3a2dc781195f Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Thu, 27 Sep 2018 17:47:36 +0100 Subject: [PATCH 09/10] Fix bug on slow page loads where banner and policy modal were both loaded This solution makes the banner aware of the policy modal: the banner doesnt open if the policy modal is enabled --- .../cookies_banner_directive.js.coffee | 3 ++- .../cookies_policy_modal_service.js.coffee | 16 +++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_directive.js.coffee b/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_directive.js.coffee index 0599646cb7..a00354774c 100644 --- a/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_directive.js.coffee +++ b/engines/web/app/assets/javascripts/web/cookies_banner/cookies_banner_directive.js.coffee @@ -1,6 +1,7 @@ -Darkswarm.directive 'cookiesBanner', (CookiesBannerService) -> +Darkswarm.directive 'cookiesBanner', (CookiesBannerService, CookiesPolicyModalService) -> restrict: 'A' link: (scope, elm, attr)-> return if not attr.cookiesBanner? || attr.cookiesBanner == 'false' CookiesBannerService.enable() + return if CookiesPolicyModalService.isEnabled() CookiesBannerService.open() diff --git a/engines/web/app/assets/javascripts/web/cookies_policy/cookies_policy_modal_service.js.coffee b/engines/web/app/assets/javascripts/web/cookies_policy/cookies_policy_modal_service.js.coffee index 0f91645cfd..a988b1eb0f 100644 --- a/engines/web/app/assets/javascripts/web/cookies_policy/cookies_policy_modal_service.js.coffee +++ b/engines/web/app/assets/javascripts/web/cookies_policy/cookies_policy_modal_service.js.coffee @@ -5,7 +5,7 @@ Darkswarm.factory "CookiesPolicyModalService", (Navigation, $modal, $location, C modalMessage: null constructor: -> - if $location.path() is @defaultPath || location.pathname is @defaultPath + if @isEnabled() @open '' open: (path = false, template = 'angular-templates/cookies_policy.html') => @@ -13,18 +13,16 @@ Darkswarm.factory "CookiesPolicyModalService", (Navigation, $modal, $location, C templateUrl: template windowClass: "cookies-policy-modal medium" - @closeCookiesBanner() - @onCloseReOpenCookiesBanner() + CookiesBannerService.close() + @onCloseOpenCookiesBanner() selectedPath = path || @defaultPath Navigation.navigate selectedPath - closeCookiesBanner: => - setTimeout -> - CookiesBannerService.close() - , 200 - - onCloseReOpenCookiesBanner: => + onCloseOpenCookiesBanner: => @modalInstance.result.then( -> CookiesBannerService.open(), -> CookiesBannerService.open() ) + + isEnabled: => + $location.path() is @defaultPath || location.pathname is @defaultPath From 574f031020f193e9db847f02f621fc794b06769f Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Fri, 5 Oct 2018 21:36:03 +0100 Subject: [PATCH 10/10] Fix typo in matomo optout iframe url in cookies_policy_helper --- engines/web/app/helpers/web/cookies_policy_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engines/web/app/helpers/web/cookies_policy_helper.rb b/engines/web/app/helpers/web/cookies_policy_helper.rb index 0fb86f7793..0274b2d6c7 100644 --- a/engines/web/app/helpers/web/cookies_policy_helper.rb +++ b/engines/web/app/helpers/web/cookies_policy_helper.rb @@ -9,7 +9,7 @@ module Web def matomo_iframe_src "#{Spree::Config.matomo_url}"\ - "/index.php?module=CoreAdminome&action=optOut"\ + "/index.php?module=CoreAdminHome&action=optOut"\ "&language=#{locale_language}"\ "&backgroundColor=&fontColor=222222&fontSize=16px&fontFamily=%22Roboto%22%2C%20Arial%2C%20sans-serif" end