hancock_cms_pages 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/concerns/hancock/pages/blocksetable.rb +48 -14
- data/app/controllers/concerns/hancock/pages/localizeable.rb +5 -5
- data/app/controllers/concerns/hancock/pages/nav_menu.rb +10 -5
- data/app/controllers/concerns/hancock/pages/seo_pages.rb +3 -3
- data/app/helpers/hancock/pages/blocksets_helper.rb +26 -0
- data/app/helpers/hancock/pages/pages_helper.rb +11 -0
- data/app/models/concerns/hancock/pages/connectable.rb +1 -1
- data/app/views/blocks/_cached_blockset_navigation.html.slim +26 -0
- data/app/views/blocks/_cached_navigation.html.slim +26 -0
- data/app/views/blocks/_header.html.slim +9 -1
- data/app/views/hancock/pages/pages/show.html.slim +14 -1
- data/app/views/shared/_obj.html.slim +21 -25
- data/config/locales/hancock.pages.ru.yml +5 -0
- data/hancock_cms_pages.gemspec +3 -3
- data/lib/generators/hancock/pages/config/{install_generator.rb → config_generator.rb} +0 -0
- data/lib/generators/hancock/pages/config/templates/hancock_pages.erb +19 -6
- data/lib/generators/hancock/pages/controllers/decorators_generator.rb +24 -0
- data/lib/generators/hancock/pages/{migration_generator.rb → migrations/migrations_generator.rb} +3 -3
- data/lib/generators/hancock/pages/{templates → migrations/templates}/migration_blocks.rb +0 -0
- data/lib/generators/hancock/pages/{templates → migrations/templates}/migration_pages.rb +0 -0
- data/lib/generators/hancock/pages/models/templates/block.erb +5 -5
- data/lib/generators/hancock/pages/models/templates/blockset.erb +5 -5
- data/lib/generators/hancock/pages/models/templates/menu.erb +5 -5
- data/lib/generators/hancock/pages/models/templates/page.erb +7 -7
- data/lib/hancock/pages/admin.rb +35 -8
- data/lib/hancock/pages/admin/block.rb +14 -1
- data/lib/hancock/pages/admin/blockset.rb +34 -11
- data/lib/hancock/pages/admin/menu.rb +3 -1
- data/lib/hancock/pages/admin/page.rb +35 -5
- data/lib/hancock/pages/configuration.rb +28 -5
- data/lib/hancock/pages/controllers/pages.rb +10 -1
- data/lib/hancock/pages/engine.rb +59 -0
- data/lib/hancock/pages/models/active_record/blockset.rb +2 -1
- data/lib/hancock/pages/models/block.rb +234 -55
- data/lib/hancock/pages/models/blockset.rb +50 -38
- data/lib/hancock/pages/models/menu.rb +24 -15
- data/lib/hancock/pages/models/mongoid/block.rb +13 -0
- data/lib/hancock/pages/models/mongoid/blockset.rb +3 -0
- data/lib/hancock/pages/models/mongoid/menu.rb +4 -1
- data/lib/hancock/pages/models/mongoid/page.rb +19 -6
- data/lib/hancock/pages/models/page.rb +196 -90
- data/lib/hancock/pages/rails_admin_ext/hancock_connectable.rb +2 -0
- data/lib/hancock/pages/rails_admin_ext/menu.rb +11 -7
- data/lib/hancock/pages/version.rb +1 -1
- data/lib/hancock/pages/views_whitelist.rb +103 -0
- data/lib/hancock_cms_pages.rb +4 -6
- data/release.sh +1 -1
- metadata +19 -14
- data/app/helpers/hancock/pages/pages_helpers.rb +0 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 4430da0d6feb96e83d1442a5c2c2dac7799bb924
         | 
| 4 | 
            +
              data.tar.gz: ab34ce6ae8968be301e39944a3f3b5092c801daf
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 4e8ef56da42309a3a8805173bd68d3709c3d72a332279b7b379d81ce1128e8f6d55b84bf73951e6e0a83b5ef2607c06a47aeec75a32ae9e697352fce70610a65
         | 
| 7 | 
            +
              data.tar.gz: 97eedb3d142c691a1345a8ff3bbf67aaa6f15b1b4c9720d5a18f5570fc3e5590a20e83bbc9f07a671bde986fab3bc12e859d394ba62606b41b91ca473442725c
         | 
| @@ -5,7 +5,6 @@ module Hancock::Pages::Blocksetable | |
| 5 5 | 
             
                helper_method :blockset_navigation
         | 
| 6 6 | 
             
              end
         | 
| 7 7 |  | 
| 8 | 
            -
              private
         | 
| 9 8 | 
             
              def blockset_navigation(type)
         | 
| 10 9 | 
             
                Proc.new do |primary|
         | 
| 11 10 | 
             
                  SimpleNavigation.config.autogenerate_item_ids = false
         | 
| @@ -23,36 +22,63 @@ module Hancock::Pages::Blocksetable | |
| 23 22 | 
             
                    Rails.logger.error exception.backtrace.join("\n")
         | 
| 24 23 | 
             
                    puts exception.message
         | 
| 25 24 | 
             
                    puts exception.backtrace.join("\n")
         | 
| 26 | 
            -
                    capture_exception(exception) if  | 
| 25 | 
            +
                    Raven.capture_exception(exception) if Hancock::Pages.config.raven_support
         | 
| 27 26 | 
             
                    items || []
         | 
| 28 27 | 
             
                  end
         | 
| 29 28 | 
             
                end
         | 
| 30 29 | 
             
              end
         | 
| 31 30 |  | 
| 32 | 
            -
              def render_blockset( | 
| 31 | 
            +
              def render_blockset(*opts, &block)
         | 
| 32 | 
            +
                if opts.length == 1 and opts[0].is_a?(Hash)
         | 
| 33 | 
            +
                  type = opts.delete[:type]
         | 
| 34 | 
            +
                else
         | 
| 35 | 
            +
                  if opts[-1].is_a?(Hash)
         | 
| 36 | 
            +
                    type = opts[-2] #backward compatibility
         | 
| 37 | 
            +
                    opts = opts[-1]
         | 
| 38 | 
            +
                  else
         | 
| 39 | 
            +
                    type = opts[-1] #backward compatibility
         | 
| 40 | 
            +
                    opts = {}
         | 
| 41 | 
            +
                  end
         | 
| 42 | 
            +
                end
         | 
| 33 43 | 
             
                ret = []
         | 
| 44 | 
            +
                need_render_blockset = true
         | 
| 34 45 | 
             
                begin
         | 
| 35 46 | 
             
                  blockset = get_blockset(type)
         | 
| 36 | 
            -
                   | 
| 37 | 
            -
             | 
| 38 | 
            -
                     | 
| 39 | 
            -
             | 
| 40 | 
            -
                     | 
| 47 | 
            +
                  if block_given? and (blockset.new_record? or opts[:overwrite])
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                    # include ::Hancock::Pages::BlocksetsHelper
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                    need_render_blockset = false
         | 
| 52 | 
            +
                    blockset.blocks.delete_all if opts[:overwrite]
         | 
| 53 | 
            +
                    _block = blockset.blocks.new
         | 
| 54 | 
            +
                    _block.content_html = helpers.capture(&block) if block
         | 
| 55 | 
            +
                    # _block.content_html = helpers.capture_block(&block)
         | 
| 56 | 
            +
                    _block.render_file = false
         | 
| 57 | 
            +
                    _block.save
         | 
| 41 58 | 
             
                  end
         | 
| 42 | 
            -
                   | 
| 43 | 
            -
                     | 
| 59 | 
            +
                  if need_render_blockset
         | 
| 60 | 
            +
                    blocks = blockset_get_blocks_for_render(blockset)
         | 
| 61 | 
            +
                    blocks.each do |block|
         | 
| 62 | 
            +
                      ret << block.render_or_content_html(self, opts) do |html|
         | 
| 63 | 
            +
                        after_render_blockset_block block, html
         | 
| 64 | 
            +
                      end
         | 
| 65 | 
            +
                    end
         | 
| 66 | 
            +
                    ret = blockset.render(self, ret.join.html_safe) do |html|
         | 
| 67 | 
            +
                      after_render_blockset blockset, html
         | 
| 68 | 
            +
                    end
         | 
| 44 69 | 
             
                  end
         | 
| 45 70 | 
             
                rescue Exception => exception
         | 
| 46 71 | 
             
                  Rails.logger.error exception.message
         | 
| 47 72 | 
             
                  Rails.logger.error exception.backtrace.join("\n")
         | 
| 48 73 | 
             
                  puts exception.message
         | 
| 49 74 | 
             
                  puts exception.backtrace.join("\n")
         | 
| 50 | 
            -
                  capture_exception(exception) if  | 
| 75 | 
            +
                  Raven.capture_exception(exception) if Hancock::Pages.config.raven_support
         | 
| 51 76 | 
             
                  # ret << blocks || []
         | 
| 52 77 | 
             
                end
         | 
| 53 | 
            -
                ret.is_a?(Array) ? ret.join.html_safe : ret
         | 
| 78 | 
            +
                return (ret.is_a?(Array) ? ret.join.html_safe : ret)
         | 
| 54 79 | 
             
              end
         | 
| 55 80 |  | 
| 81 | 
            +
              private
         | 
| 56 82 | 
             
              def after_render_blockset_block(block, html)
         | 
| 57 83 | 
             
                html
         | 
| 58 84 | 
             
              end
         | 
| @@ -62,7 +88,15 @@ module Hancock::Pages::Blocksetable | |
| 62 88 | 
             
              end
         | 
| 63 89 |  | 
| 64 90 | 
             
              def get_blockset(type)
         | 
| 65 | 
            -
                type.is_a?( | 
| 91 | 
            +
                if type.is_a?(blockset_class)
         | 
| 92 | 
            +
                  type
         | 
| 93 | 
            +
                else
         | 
| 94 | 
            +
                  begin
         | 
| 95 | 
            +
                    blockset_class.find(type.to_s)
         | 
| 96 | 
            +
                  rescue
         | 
| 97 | 
            +
                    blockset_class.new(name: type.to_s, text_slug: type.to_s)
         | 
| 98 | 
            +
                  end
         | 
| 99 | 
            +
                end
         | 
| 66 100 | 
             
              end
         | 
| 67 101 |  | 
| 68 102 | 
             
              def blockset_get_blocks(type)
         | 
| @@ -79,7 +113,7 @@ module Hancock::Pages::Blocksetable | |
| 79 113 | 
             
                "Hancock::Pages::Blockset"
         | 
| 80 114 | 
             
              end
         | 
| 81 115 | 
             
              def blockset_class
         | 
| 82 | 
            -
                blockset_class_name.constantize
         | 
| 116 | 
            +
                @blockset_class ||= blockset_class_name.constantize
         | 
| 83 117 | 
             
              end
         | 
| 84 118 |  | 
| 85 119 | 
             
              def blockset_navigation_item(primary, item, block=nil)
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            module Hancock::Pages::Localizeable
         | 
| 2 2 | 
             
              extend ActiveSupport::Concern
         | 
| 3 3 | 
             
              included do
         | 
| 4 | 
            -
                 | 
| 4 | 
            +
                before_action do
         | 
| 5 5 | 
             
                  I18n.locale = params[:locale] || I18n.default_locale
         | 
| 6 6 | 
             
                  Settings.ns_default = "main_#{I18n.locale}".freeze
         | 
| 7 7 | 
             
                  Settings.ns_fallback = "main".freeze
         | 
| @@ -21,7 +21,7 @@ module Hancock::Pages::Localizeable | |
| 21 21 | 
             
                pages.sorted.to_a
         | 
| 22 22 | 
             
              end
         | 
| 23 23 | 
             
              def nav_get_url(item)
         | 
| 24 | 
            -
                _connectable = item. | 
| 24 | 
            +
                _connectable = item.hancock_connectable
         | 
| 25 25 | 
             
                if _connectable and _connectable.enabled
         | 
| 26 26 | 
             
                  begin
         | 
| 27 27 | 
             
                    _routes_namespace = _connectable.respond_to?(:routes_namespace) ? _connectable.routes_namespace : :main_app
         | 
| @@ -31,7 +31,7 @@ module Hancock::Pages::Localizeable | |
| 31 31 | 
             
                    Rails.logger.error exception.backtrace.join("\n")
         | 
| 32 32 | 
             
                    puts exception.message
         | 
| 33 33 | 
             
                    puts exception.backtrace.join("\n")
         | 
| 34 | 
            -
                    capture_exception(exception) if  | 
| 34 | 
            +
                    Raven.capture_exception(exception) if Hancock::Pages.config.raven_support
         | 
| 35 35 |  | 
| 36 36 | 
             
                    _url = item.redirect.blank? ? item.fullpath : item.redirect
         | 
| 37 37 | 
             
                  end
         | 
| @@ -54,13 +54,13 @@ module Hancock::Pages::Localizeable | |
| 54 54 | 
             
                "Hancock::Pages::Page"
         | 
| 55 55 | 
             
              end
         | 
| 56 56 | 
             
              def page_class
         | 
| 57 | 
            -
                page_class_name.constantize
         | 
| 57 | 
            +
                @page_class ||= page_class_name.constantize
         | 
| 58 58 | 
             
              end
         | 
| 59 59 |  | 
| 60 60 | 
             
              def menu_class_name
         | 
| 61 61 | 
             
                "Hancock::Pages::Menu"
         | 
| 62 62 | 
             
              end
         | 
| 63 63 | 
             
              def menu_class
         | 
| 64 | 
            -
                menu_class_name.constantize
         | 
| 64 | 
            +
                @menu_class ||= menu_class_name.constantize
         | 
| 65 65 | 
             
              end
         | 
| 66 66 | 
             
            end
         | 
| @@ -45,14 +45,14 @@ module Hancock::Pages::NavMenu | |
| 45 45 | 
             
                    Rails.logger.error exception.backtrace.join("\n")
         | 
| 46 46 | 
             
                    puts exception.message
         | 
| 47 47 | 
             
                    puts exception.backtrace.join("\n")
         | 
| 48 | 
            -
                    capture_exception(exception) if  | 
| 48 | 
            +
                    Raven.capture_exception(exception) if Hancock::Pages.config.raven_support
         | 
| 49 49 | 
             
                    items || []
         | 
| 50 50 | 
             
                  end
         | 
| 51 51 | 
             
                end
         | 
| 52 52 | 
             
              end
         | 
| 53 53 |  | 
| 54 54 | 
             
              def nav_get_url(item)
         | 
| 55 | 
            -
                _connectable = item. | 
| 55 | 
            +
                _connectable = item.hancock_connectable
         | 
| 56 56 | 
             
                if _connectable and _connectable.enabled
         | 
| 57 57 | 
             
                  begin
         | 
| 58 58 | 
             
                    _routes_namespace = _connectable.respond_to?(:routes_namespace) ? _connectable.routes_namespace : :main_app
         | 
| @@ -63,7 +63,7 @@ module Hancock::Pages::NavMenu | |
| 63 63 | 
             
                    Rails.logger.error exception.backtrace.join("\n")
         | 
| 64 64 | 
             
                    puts exception.message
         | 
| 65 65 | 
             
                    puts exception.backtrace.join("\n")
         | 
| 66 | 
            -
                    capture_exception(exception) if  | 
| 66 | 
            +
                    Raven.capture_exception(exception) if Hancock::Pages.config.raven_support
         | 
| 67 67 |  | 
| 68 68 | 
             
                    item.redirect.blank? ? item.fullpath : item.redirect
         | 
| 69 69 | 
             
                  end
         | 
| @@ -72,7 +72,12 @@ module Hancock::Pages::NavMenu | |
| 72 72 | 
             
                end
         | 
| 73 73 | 
             
              end
         | 
| 74 74 | 
             
              def nav_get_menu_items(type)
         | 
| 75 | 
            -
                 | 
| 75 | 
            +
                if type.is_a?(blockset_class)
         | 
| 76 | 
            +
                  type
         | 
| 77 | 
            +
                else
         | 
| 78 | 
            +
                  menu = menu_class.find(type.to_s) rescue menu_class.create(name: type.to_s, text_slug: type.to_s)
         | 
| 79 | 
            +
                end
         | 
| 80 | 
            +
             | 
| 76 81 | 
             
                menu.pages.enabled.sorted.to_a if menu
         | 
| 77 82 | 
             
              end
         | 
| 78 83 | 
             
              def nav_extra_data_before(type, primary)
         | 
| @@ -86,6 +91,6 @@ module Hancock::Pages::NavMenu | |
| 86 91 | 
             
                "Hancock::Pages::Menu"
         | 
| 87 92 | 
             
              end
         | 
| 88 93 | 
             
              def menu_class
         | 
| 89 | 
            -
                menu_class_name.constantize
         | 
| 94 | 
            +
                @menu_class ||= menu_class_name.constantize
         | 
| 90 95 | 
             
              end
         | 
| 91 96 | 
             
            end
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            module Hancock::Pages::SeoPages
         | 
| 2 2 | 
             
              extend ActiveSupport::Concern
         | 
| 3 3 | 
             
              included do
         | 
| 4 | 
            -
                 | 
| 4 | 
            +
                before_action :find_page
         | 
| 5 5 | 
             
              end
         | 
| 6 6 |  | 
| 7 7 | 
             
              private
         | 
| @@ -35,7 +35,7 @@ module Hancock::Pages::SeoPages | |
| 35 35 | 
             
                if page.nil?
         | 
| 36 36 | 
             
                  do_redirect = true
         | 
| 37 37 | 
             
                  spath = path.chomp(File.extname(path))
         | 
| 38 | 
            -
                  if spath != path and spath != "/" + params[:slug]
         | 
| 38 | 
            +
                  if spath and spath != path and (!params[:slug].blank? and spath != "/" + params[:slug])
         | 
| 39 39 | 
             
                    page = page_class.enabled.where(fullpath: spath).first
         | 
| 40 40 | 
             
                  end
         | 
| 41 41 | 
             
                end
         | 
| @@ -90,7 +90,7 @@ module Hancock::Pages::SeoPages | |
| 90 90 | 
             
                "Hancock::Pages::Page"
         | 
| 91 91 | 
             
              end
         | 
| 92 92 | 
             
              def page_class
         | 
| 93 | 
            -
                page_class_name.constantize
         | 
| 93 | 
            +
                @page_class ||= page_class_name.constantize
         | 
| 94 94 | 
             
              end
         | 
| 95 95 |  | 
| 96 96 | 
             
              def rails_admin?
         | 
| @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            module Hancock::Pages::BlocksetsHelper
         | 
| 2 | 
            +
             | 
| 3 | 
            +
              # def capture_block(&block)
         | 
| 4 | 
            +
              #   capture(&block)
         | 
| 5 | 
            +
              # end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              def hancock_pages_blocks_can_render_me(name = "", opts = {})
         | 
| 8 | 
            +
                if name.is_a?(Hash)
         | 
| 9 | 
            +
                  name, opts = (name.delete(:name) || ""), name
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
                _virtual_path = Hancock::Pages::format_virtual_path(@virtual_path, opts[:is_partial])
         | 
| 12 | 
            +
                Hancock::Pages::add_view_in_whitelist(_virtual_path, name)
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
              alias_method :hancock_pages_blocks_can_render_me_as, :hancock_pages_blocks_can_render_me
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              def hancock_pages_blocks_can_render_me?(opts = {})
         | 
| 17 | 
            +
                _virtual_path = Hancock::Pages::format_virtual_path(@virtual_path, opts[:is_partial])
         | 
| 18 | 
            +
                Hancock::Pages::whitelist_as_array(opts[:exclude_blacklist]).include?(_virtual_path)
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              def hancock_pages_blocks_cannot_render_me(opts = {})
         | 
| 22 | 
            +
                _virtual_path = Hancock::Pages::format_virtual_path(@virtual_path)
         | 
| 23 | 
            +
                Hancock::Pages::add_view_in_blacklist(_virtual_path)
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            end
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            module Hancock::Pages::PagesHelper
         | 
| 2 | 
            +
             | 
| 3 | 
            +
              def cached_navigation(menu_key = :main)
         | 
| 4 | 
            +
                render partial: 'blocks/cached_navigation', locals: {menu_key: menu_key}
         | 
| 5 | 
            +
              end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              def cached_blockset_navigation(blockset_key = :main)
         | 
| 8 | 
            +
                render partial: 'blocks/cached_blockset_navigation', locals: {blockset_key: blockset_key}
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            end
         | 
| @@ -25,7 +25,7 @@ module Hancock::Pages::Connectable | |
| 25 25 | 
             
                        if [true, 1, "1", "true", "t"].include?(self.hancock_connectable_autocreate_page)
         | 
| 26 26 | 
             
                          _p = #{class_name}.new
         | 
| 27 27 | 
             
                          _p.#{_name_attr} = self.#{_name_attr}
         | 
| 28 | 
            -
                          _p. | 
| 28 | 
            +
                          _p.hancock_connectable = self
         | 
| 29 29 | 
             
                          _p.save
         | 
| 30 30 | 
             
                        end
         | 
| 31 31 | 
             
                      end
         | 
| @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            - _cache_helper = (Hancock::Pages.config.cache_support ? :hancock_cache : :cache)
         | 
| 2 | 
            +
            - blockset_key ||= :main
         | 
| 3 | 
            +
            - blockset_key = blockset_key.to_s
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            - if @seo_page 
         | 
| 6 | 
            +
              - blockset = Hancock::Pages::Blockset.find(blockset_key)
         | 
| 7 | 
            +
              - if Hancock::Pages.config.cache_support
         | 
| 8 | 
            +
                - [blockset, @seo_page].compact.each do |obj|
         | 
| 9 | 
            +
                  - if obj.respond_to?(:cache_keys_str) and obj.respond_to?(:cache_keys) and obj.respond_to?(:cache_keys=)
         | 
| 10 | 
            +
                    - obj.cache_keys |= hancock_cache_views_keys
         | 
| 11 | 
            +
                    - obj.save if obj.cache_keys_str_changed?
         | 
| 12 | 
            +
              - send _cache_helper, [blockset, @seo_page] do
         | 
| 13 | 
            +
                = render_navigation &blockset_navigation(blockset_key)
         | 
| 14 | 
            +
                
         | 
| 15 | 
            +
            - elsif @seo_parent_page
         | 
| 16 | 
            +
              - blockset = Hancock::Pages::Blockset.find(blockset_key)
         | 
| 17 | 
            +
              - if Hancock::Pages.config.cache_support
         | 
| 18 | 
            +
                - [blockset, @seo_parent_page].compact.each do |obj|
         | 
| 19 | 
            +
                  - if obj.respond_to?(:cache_keys_str) and obj.respond_to?(:cache_keys) and obj.respond_to?(:cache_keys=)
         | 
| 20 | 
            +
                    - obj.cache_keys |= hancock_cache_views_keys
         | 
| 21 | 
            +
                    - obj.save if obj.cache_keys_str_changed?
         | 
| 22 | 
            +
              - send _cache_helper, [blockset, @seo_parent_page] do
         | 
| 23 | 
            +
                = render_navigation &blockset_navigation(blockset_key)
         | 
| 24 | 
            +
                
         | 
| 25 | 
            +
            - else
         | 
| 26 | 
            +
              = render_navigation &blockset_navigation(blockset_key)
         | 
| @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            - _cache_helper = (Hancock::Pages.config.cache_support ? :hancock_cache : :cache)
         | 
| 2 | 
            +
            - menu_key ||= :main
         | 
| 3 | 
            +
            - menu_key = menu_key.to_s
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            - if @seo_page 
         | 
| 6 | 
            +
              - menu = Hancock::Pages::Menu.find(menu_key)
         | 
| 7 | 
            +
              - if Hancock::Pages.config.cache_support
         | 
| 8 | 
            +
                - [menu, @seo_page].compact.each do |obj|
         | 
| 9 | 
            +
                  - if obj.respond_to?(:cache_keys_str) and obj.respond_to?(:cache_keys) and obj.respond_to?(:cache_keys=)
         | 
| 10 | 
            +
                    - obj.cache_keys |= hancock_cache_views_keys
         | 
| 11 | 
            +
                    - obj.save if obj.cache_keys_str_changed?
         | 
| 12 | 
            +
              - send _cache_helper, [menu, @seo_page] do
         | 
| 13 | 
            +
                = render_navigation &navigation(menu_key)
         | 
| 14 | 
            +
                
         | 
| 15 | 
            +
            - elsif @seo_parent_page
         | 
| 16 | 
            +
              - menu = Hancock::Pages::Menu.find(menu_key)
         | 
| 17 | 
            +
              - if Hancock::Pages.config.cache_support
         | 
| 18 | 
            +
                - [menu, @seo_parent_page].compact.each do |obj|
         | 
| 19 | 
            +
                  - if obj.respond_to?(:cache_keys_str) and obj.respond_to?(:cache_keys) and obj.respond_to?(:cache_keys=)
         | 
| 20 | 
            +
                    - obj.cache_keys |= hancock_cache_views_keys
         | 
| 21 | 
            +
                    - obj.save if obj.cache_keys_str_changed?
         | 
| 22 | 
            +
              - send _cache_helper, [menu, @seo_parent_page] do
         | 
| 23 | 
            +
                = render_navigation &navigation(menu_key)
         | 
| 24 | 
            +
                
         | 
| 25 | 
            +
            - else
         | 
| 26 | 
            +
              = render_navigation &navigation(menu_key)
         | 
| @@ -1,4 +1,12 @@ | |
| 1 1 | 
             
            #logo
         | 
| 2 2 |  | 
| 3 3 | 
             
            #main-nav
         | 
| 4 | 
            -
              =  | 
| 4 | 
            +
              = cached_navigation(:main)
         | 
| 5 | 
            +
              / - if @seo_page 
         | 
| 6 | 
            +
              /   - cache @seo_page do
         | 
| 7 | 
            +
              /     = render_navigation &navigation(:main)
         | 
| 8 | 
            +
              / - elsif @seo_parent_page
         | 
| 9 | 
            +
              /   - cache @seo_parent_page do
         | 
| 10 | 
            +
              /     = render_navigation &navigation(:main)
         | 
| 11 | 
            +
              / - else
         | 
| 12 | 
            +
              /   = render_navigation &navigation(:main)
         | 
| @@ -1 +1,14 @@ | |
| 1 | 
            -
            =  | 
| 1 | 
            +
            - _cache_helper = (Hancock::Pages.config.cache_support ? :hancock_cache : :cache)
         | 
| 2 | 
            +
            - _partial_path = (Hancock::Pages.config.seo_support ? 'shared/obj_with_seo' : 'shared/obj')
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            / - send _cache_helper, @seo_page do
         | 
| 5 | 
            +
            - if @seo_page.use_wrapper
         | 
| 6 | 
            +
              ruby: 
         | 
| 7 | 
            +
                _attrs = {
         | 
| 8 | 
            +
                  class: @seo_page.wrapper_class,
         | 
| 9 | 
            +
                  id: @seo_page.wrapper_id
         | 
| 10 | 
            +
                }.merge(@seo_page.wrapper_attributes)
         | 
| 11 | 
            +
              = content_tag @seo_page.wrapper_tag, _attrs do
         | 
| 12 | 
            +
                = render _partial_path, obj: @seo_page      
         | 
| 13 | 
            +
            - else
         | 
| 14 | 
            +
              = render _partial_path, obj: @seo_page
         | 
| @@ -1,26 +1,22 @@ | |
| 1 | 
            +
            - obj ||= nil
         | 
| 1 2 | 
             
            - unless obj.nil?
         | 
| 2 | 
            -
              . | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
               | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
                  = render 'shared/og', title: obj.get_og_title, image: obj.og_image
         | 
| 23 | 
            -
             | 
| 24 | 
            -
              - content_for :title do
         | 
| 25 | 
            -
                - if obj.respond_to?(:title) and obj.title
         | 
| 26 | 
            -
                  = obj.title
         | 
| 3 | 
            +
              - _cache_helper = (Hancock::Pages.config.cache_support ? :hancock_cache : :cache)
         | 
| 4 | 
            +
              / - send _cache_helper [obj, @seo_page, (current_user and current_user.admin?).to_s].uniq do
         | 
| 5 | 
            +
              - send _cache_helper [obj, @seo_page].uniq do
         | 
| 6 | 
            +
                .text_content
         | 
| 7 | 
            +
                      
         | 
| 8 | 
            +
                  - if obj.content.blank?
         | 
| 9 | 
            +
                    - unless @seo_page.nil?
         | 
| 10 | 
            +
                      == @seo_page.page_content(self) rescue @seo_page.page_content
         | 
| 11 | 
            +
                  - else
         | 
| 12 | 
            +
                    - if obj.is_a?(Hancock::Pages::Page)
         | 
| 13 | 
            +
                      == obj.page_content(self) rescue obj.page_content
         | 
| 14 | 
            +
                    - else
         | 
| 15 | 
            +
                      - if obj.respond_to?(:page_content)
         | 
| 16 | 
            +
                        == obj.page_content rescue obj.content
         | 
| 17 | 
            +
                      - else
         | 
| 18 | 
            +
                        == obj.content
         | 
| 19 | 
            +
                          
         | 
| 20 | 
            +
              / = render 'shared/admin_link', obj: obj
         | 
| 21 | 
            +
              / - if !@seo_page.nil? && (@seo_page.id != obj.id || @seo_page.class.name != obj.class.name)
         | 
| 22 | 
            +
              /   = render 'shared/admin_link', obj: @seo_page
         | 
    
        data/hancock_cms_pages.gemspec
    CHANGED
    
    | @@ -9,7 +9,7 @@ Gem::Specification.new do |spec| | |
| 9 9 | 
             
              spec.authors       = ["Alexander Kiseliev"]
         | 
| 10 10 | 
             
              spec.email         = ["dev@redrocks.pro"]
         | 
| 11 11 |  | 
| 12 | 
            -
              spec.description   = %q{hancock_cms_pages | 
| 12 | 
            +
              spec.description   = %q{hancock_cms_pages}
         | 
| 13 13 | 
             
              spec.summary       = %q{hancock_cms_pages}
         | 
| 14 14 | 
             
              spec.homepage      = 'https://github.com/red-rocks/hancock_cms_pages'
         | 
| 15 15 | 
             
              spec.license       = "MIT"
         | 
| @@ -30,8 +30,8 @@ Gem::Specification.new do |spec| | |
| 30 30 | 
             
              spec.add_development_dependency "bundler", "~> 1.10"
         | 
| 31 31 | 
             
              spec.add_development_dependency "rake", "~> 10.0"
         | 
| 32 32 |  | 
| 33 | 
            -
              spec.add_dependency 'hancock_cms', [">=1.0", " | 
| 34 | 
            -
              # spec.add_dependency 'hancock_cms', ["~> 1.0", "~> 2.0"]
         | 
| 33 | 
            +
              spec.add_dependency 'hancock_cms', [">=1.0.2", "<2.1.x"]
         | 
| 34 | 
            +
              # spec.add_dependency 'hancock_cms', ["~> 1.0.2", "~> 2.0"]
         | 
| 35 35 |  | 
| 36 36 | 
             
              spec.add_dependency 'simple-navigation'
         | 
| 37 37 | 
             
            end
         |