Sha256: 42765ea9387481dfc5f2234d8c0b5c59df39167e6724be07389ffe17751269d7

Contents?: true

Size: 1.03 KB

Versions: 11

Compression:

Stored size: 1.03 KB

Contents

module Spree
  class HomeController < Spree::StoreController
    include Spree::CacheHelper

    before_action :load_homepage, only: [:index]

    respond_to :html

    def index
      if @cms_home_page&.visible?
        @homepage = @cms_home_page
      elsif try_spree_current_user&.admin?
        @homepage = @cms_home_page
        @edit_mode = true
      end

      if http_cache_enabled?
        fresh_when etag: store_etag, last_modified: last_modified_index, public: true
      end
    end

    private

    def etag_index
      [
        store_etag,
        last_modified_index,
      ]
    end

    def last_modified_index
      page_last_modified = @cms_home_page&.maximum(:updated_at)&.utc if @cms_home_page.respond_to?(:maximum)
      current_store_last_modified = current_store.updated_at.utc

      [page_last_modified, current_store_last_modified].compact.max
    end

    def accurate_title
      @cms_home_page&.seo_title || super
    end

    def load_homepage
      @cms_home_page = current_store.homepage(I18n.locale)
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
spree_frontend-4.3.3 app/controllers/spree/home_controller.rb
spree_frontend-4.7.0 app/controllers/spree/home_controller.rb
spree_frontend-4.6.0 app/controllers/spree/home_controller.rb
spree_frontend-4.5.0 app/controllers/spree/home_controller.rb
spree_frontend-4.3.2 app/controllers/spree/home_controller.rb
spree_frontend-4.4.0 app/controllers/spree/home_controller.rb
spree_frontend-4.3.1 app/controllers/spree/home_controller.rb
spree_frontend-4.3.0 app/controllers/spree/home_controller.rb
spree_frontend-4.3.0.rc3 app/controllers/spree/home_controller.rb
spree_frontend-4.3.0.rc2 app/controllers/spree/home_controller.rb
spree_frontend-4.3.0.rc1 app/controllers/spree/home_controller.rb