alchemy_cms 4.0.1 → 4.0.6
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/.travis.yml +4 -5
 - data/CHANGELOG.md +26 -0
 - data/alchemy_cms.gemspec +2 -2
 - data/app/controllers/alchemy/admin/elements_controller.rb +4 -1
 - data/app/controllers/alchemy/pages_controller.rb +1 -1
 - data/app/models/alchemy/folded_page.rb +5 -0
 - data/app/serializers/alchemy/page_tree_serializer.rb +10 -9
 - data/app/views/alchemy/admin/elements/index.html.erb +4 -2
 - data/app/views/alchemy/admin/elements/new.html.erb +2 -1
 - data/app/views/alchemy/admin/pages/index.html.erb +4 -0
 - data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +1 -1
 - data/lib/alchemy/tasks/tidy.rb +9 -1
 - data/lib/alchemy/version.rb +1 -1
 - data/lib/tasks/alchemy/tidy.rake +6 -0
 - metadata +19 -8
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: a09c975c4f08333ff19d8d65ec1ccbffbb9d379b6b51c5ae72394b0f9407ad93
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 6639c81d4b059fc5281de173792aec47281d86958d2aadf30a64e566d193d15e
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: fb6fadb1c5daf32aed6e4e74331b1a30fbb8da2b6d6ca3c638a3e0d6974046ef64de59a478a59702775787f233a8b07c9520d853f1b20f4eae4c811358e2f24a
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 041b34771016cc0d83d445f9bd358a9ec2428e86dc6eb8778bc218497394c4b329bc10dc508d28f4028834841df6756e9233b5079dffe436ed704539e58012ec
         
     | 
    
        data/.travis.yml
    CHANGED
    
    | 
         @@ -6,9 +6,8 @@ cache: 
     | 
|
| 
       6 
6 
     | 
    
         
             
              directories:
         
     | 
| 
       7 
7 
     | 
    
         
             
                - "travis_phantomjs"
         
     | 
| 
       8 
8 
     | 
    
         
             
            rvm:
         
     | 
| 
       9 
     | 
    
         
            -
            - 2. 
     | 
| 
       10 
     | 
    
         
            -
            - 2. 
     | 
| 
       11 
     | 
    
         
            -
            - 2.4.2
         
     | 
| 
      
 9 
     | 
    
         
            +
              - 2.3.5
         
     | 
| 
      
 10 
     | 
    
         
            +
              - 2.4.2
         
     | 
| 
       12 
11 
     | 
    
         
             
            before_install:
         
     | 
| 
       13 
12 
     | 
    
         
             
              - "phantomjs --version"
         
     | 
| 
       14 
13 
     | 
    
         
             
              - "export PATH=$PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH"
         
     | 
| 
         @@ -22,8 +21,8 @@ before_script: bundle exec rake alchemy:spec:prepare 
     | 
|
| 
       22 
21 
     | 
    
         
             
            script: bundle exec rspec
         
     | 
| 
       23 
22 
     | 
    
         
             
            after_success: bundle exec codeclimate-test-reporter
         
     | 
| 
       24 
23 
     | 
    
         
             
            env:
         
     | 
| 
       25 
     | 
    
         
            -
            - DB=mysql
         
     | 
| 
       26 
     | 
    
         
            -
            - DB=postgresql
         
     | 
| 
      
 24 
     | 
    
         
            +
              - DB=mysql
         
     | 
| 
      
 25 
     | 
    
         
            +
              - DB=postgresql
         
     | 
| 
       27 
26 
     | 
    
         
             
            notifications:
         
     | 
| 
       28 
27 
     | 
    
         
             
              slack:
         
     | 
| 
       29 
28 
     | 
    
         
             
                secure: QzOFw1Ph69pzwWBFgtIVkOnjbcRxB9HPRQ+RYjK+2tg+fsbiTJ+wYgHcZL49tPYcLAls4kymkFWzWBF3PCAXJMfKgUCqXzdQ2FuJC/JoVRTLll4wDnZFPG33jsm5tVznmycZ3ma4+ZWfJQ+C+elEBOba6v1kG9eGIy6sH2cvXfE=
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,5 +1,31 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Change Log
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            ## 4.0.6 (2021-05-28)
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            - Allow "data" key for module navigations [#1512](https://github.com/AlchemyCMS/alchemy_cms/pull/1512) ([mamhoff](https://github.com/mamhoff))
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            ## 4.0.5 (2018-09-17)
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            - Do not cache sitemap in Turbolinks [#1463](https://github.com/AlchemyCMS/alchemy_cms/pull/1463) ([tvdeyen](https://github.com/tvdeyen))
         
     | 
| 
      
 10 
     | 
    
         
            +
            - Skip folded deeper levels when rendering page tree [#1324](https://github.com/AlchemyCMS/alchemy_cms/pull/1324) ([pascalj](https://github.com/pascalj))
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            ## 4.0.4 (2018-09-05)
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            - Allow Kaminari 1.x [#1467](https://github.com/AlchemyCMS/alchemy_cms/pull/1467) ([tvdeyen](https://github.com/tvdeyen))
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            ## 4.0.3 (2018-05-14)
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            - Add must_revalidate to cache-control header [#1340](https://github.com/AlchemyCMS/alchemy_cms/pull/1340) ([afdev82](https://github.com/afdev82))
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            ## 4.0.2 (2018-05-08)
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            - Fix draggable trash item feature [#1429](https://github.com/AlchemyCMS/alchemy_cms/pull/1429) ([tvdeyen](https://github.com/tvdeyen))
         
     | 
| 
      
 23 
     | 
    
         
            +
            - Allow CanCanCan 2.x [#1418](https://github.com/AlchemyCMS/alchemy_cms/pull/1418) ([tvdeyen](https://github.com/tvdeyen))
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            ## 4.0.1 (2018-04-23)
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            - Add more classes to YAML.safe_load [#1414](https://github.com/AlchemyCMS/alchemy_cms/pull/1414) ([tvdeyen](https://github.com/tvdeyen))
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
       3 
29 
     | 
    
         
             
            ## 4.0.0 (2017-11-06)
         
     | 
| 
       4 
30 
     | 
    
         | 
| 
       5 
31 
     | 
    
         
             
            * Fixes image cropping issues [#1320](https://github.com/AlchemyCMS/alchemy_cms/pull/1320) and [#1321](https://github.com/AlchemyCMS/alchemy_cms/pull/1321) by [tvdeyen](https://github.com/tvdeyen)
         
     | 
    
        data/alchemy_cms.gemspec
    CHANGED
    
    | 
         @@ -23,14 +23,14 @@ Gem::Specification.new do |gem| 
     | 
|
| 
       23 
23 
     | 
    
         
             
              gem.add_runtime_dependency 'acts-as-taggable-on',              ['~> 5.0']
         
     | 
| 
       24 
24 
     | 
    
         
             
              gem.add_runtime_dependency 'awesome_nested_set',               ['~> 3.1']
         
     | 
| 
       25 
25 
     | 
    
         
             
              gem.add_runtime_dependency 'bourbon',                          ['~> 4.2']
         
     | 
| 
       26 
     | 
    
         
            -
              gem.add_runtime_dependency 'cancancan',                        [' 
     | 
| 
      
 26 
     | 
    
         
            +
              gem.add_runtime_dependency 'cancancan',                        ['>= 1.9', '< 3.0']
         
     | 
| 
       27 
27 
     | 
    
         
             
              gem.add_runtime_dependency 'coffee-rails',                     ['~> 4.0']
         
     | 
| 
       28 
28 
     | 
    
         
             
              gem.add_runtime_dependency 'dragonfly',                        ['~> 1.0', '>= 1.0.7']
         
     | 
| 
       29 
29 
     | 
    
         
             
              gem.add_runtime_dependency 'dragonfly_svg',                    ['~> 0.0.4']
         
     | 
| 
       30 
30 
     | 
    
         
             
              gem.add_runtime_dependency 'handlebars_assets',                ['~> 0.23']
         
     | 
| 
       31 
31 
     | 
    
         
             
              gem.add_runtime_dependency 'jquery-rails',                     ['~> 4.0']
         
     | 
| 
       32 
32 
     | 
    
         
             
              gem.add_runtime_dependency 'jquery-ui-rails',                  ['~> 5.0.0']
         
     | 
| 
       33 
     | 
    
         
            -
              gem.add_runtime_dependency 'kaminari',                         [' 
     | 
| 
      
 33 
     | 
    
         
            +
              gem.add_runtime_dependency 'kaminari',                         ['>= 0.15', '< 2.0']
         
     | 
| 
       34 
34 
     | 
    
         
             
              gem.add_runtime_dependency 'originator',                       ['~> 3.1']
         
     | 
| 
       35 
35 
     | 
    
         
             
              gem.add_runtime_dependency 'non-stupid-digest-assets',         ['~> 1.0.8']
         
     | 
| 
       36 
36 
     | 
    
         
             
              gem.add_runtime_dependency 'rails',                            ['~> 5.0', '< 6.0']
         
     | 
| 
         @@ -147,7 +147,10 @@ module Alchemy 
     | 
|
| 
       147 
147 
     | 
    
         | 
| 
       148 
148 
     | 
    
         
             
                  def paste_element_from_clipboard
         
     | 
| 
       149 
149 
     | 
    
         
             
                    @source_element = Element.find(element_from_clipboard['id'])
         
     | 
| 
       150 
     | 
    
         
            -
                    new_attributes = { 
     | 
| 
      
 150 
     | 
    
         
            +
                    new_attributes = {
         
     | 
| 
      
 151 
     | 
    
         
            +
                      parent_element_id: create_element_params[:parent_element_id],
         
     | 
| 
      
 152 
     | 
    
         
            +
                      page_id: @page.id
         
     | 
| 
      
 153 
     | 
    
         
            +
                    }
         
     | 
| 
       151 
154 
     | 
    
         
             
                    if @page.can_have_cells?
         
     | 
| 
       152 
155 
     | 
    
         
             
                      new_attributes = new_attributes.merge({cell_id: find_or_create_cell.try(:id)})
         
     | 
| 
       153 
156 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -156,7 +156,7 @@ module Alchemy 
     | 
|
| 
       156 
156 
     | 
    
         | 
| 
       157 
157 
     | 
    
         
             
                def set_expiration_headers
         
     | 
| 
       158 
158 
     | 
    
         
             
                  if @page.cache_page?
         
     | 
| 
       159 
     | 
    
         
            -
                    expires_in @page.expiration_time, public: !@page.restricted
         
     | 
| 
      
 159 
     | 
    
         
            +
                    expires_in @page.expiration_time, public: !@page.restricted, must_revalidate: true
         
     | 
| 
       160 
160 
     | 
    
         
             
                  else
         
     | 
| 
       161 
161 
     | 
    
         
             
                    expires_now
         
     | 
| 
       162 
162 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -15,5 +15,10 @@ module Alchemy 
     | 
|
| 
       15 
15 
     | 
    
         
             
                belongs_to :page, required: true
         
     | 
| 
       16 
16 
     | 
    
         
             
                belongs_to :user, required: true,
         
     | 
| 
       17 
17 
     | 
    
         
             
                  class_name: Alchemy.user_class_name
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                def self.folded_for_user(user)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  return none unless Alchemy.user_class < ActiveRecord::Base
         
     | 
| 
      
 21 
     | 
    
         
            +
                  where(user: user, folded: true)
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
       18 
23 
     | 
    
         
             
              end
         
     | 
| 
       19 
24 
     | 
    
         
             
            end
         
     | 
| 
         @@ -10,23 +10,24 @@ module Alchemy 
     | 
|
| 
       10 
10 
     | 
    
         
             
                  tree = []
         
     | 
| 
       11 
11 
     | 
    
         
             
                  path = [{id: object.parent_id, children: tree}]
         
     | 
| 
       12 
12 
     | 
    
         
             
                  page_list = object.self_and_descendants
         
     | 
| 
       13 
     | 
    
         
            -
                  skip_branch = false
         
     | 
| 
       14 
13 
     | 
    
         
             
                  base_level = object.level - 1
         
     | 
| 
      
 14 
     | 
    
         
            +
                  # Load folded pages in advance
         
     | 
| 
      
 15 
     | 
    
         
            +
                  folded_user_pages = FoldedPage.folded_for_user(opts[:user]).pluck(:page_id)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  folded_depth = Float::INFINITY
         
     | 
| 
       15 
17 
     | 
    
         | 
| 
       16 
18 
     | 
    
         
             
                  page_list.each_with_index do |page, i|
         
     | 
| 
       17 
19 
     | 
    
         
             
                    has_children = page_list[i + 1] && page_list[i + 1].parent_id == page.id
         
     | 
| 
       18 
     | 
    
         
            -
                    folded = has_children &&  
     | 
| 
      
 20 
     | 
    
         
            +
                    folded = has_children && folded_user_pages.include?(page.id)
         
     | 
| 
       19 
21 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
                    if  
     | 
| 
       21 
     | 
    
         
            -
                      next 
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                       
     | 
| 
      
 22 
     | 
    
         
            +
                    if page.depth > folded_depth
         
     | 
| 
      
 23 
     | 
    
         
            +
                      next
         
     | 
| 
      
 24 
     | 
    
         
            +
                    else
         
     | 
| 
      
 25 
     | 
    
         
            +
                      folded_depth = Float::INFINITY
         
     | 
| 
       24 
26 
     | 
    
         
             
                    end
         
     | 
| 
       25 
27 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
                    #  
     | 
| 
       27 
     | 
    
         
            -
                    # full tree.
         
     | 
| 
      
 28 
     | 
    
         
            +
                    # If this page is folded, skip all pages that are on a higher level (further down the tree).
         
     | 
| 
       28 
29 
     | 
    
         
             
                    if folded && !opts[:full]
         
     | 
| 
       29 
     | 
    
         
            -
                       
     | 
| 
      
 30 
     | 
    
         
            +
                      folded_depth = page.depth
         
     | 
| 
       30 
31 
     | 
    
         
             
                    end
         
     | 
| 
       31 
32 
     | 
    
         | 
| 
       32 
33 
     | 
    
         
             
                    if page.parent_id != path.last[:id]
         
     | 
| 
         @@ -10,7 +10,9 @@ 
     | 
|
| 
       10 
10 
     | 
    
         
             
                    </li>
         
     | 
| 
       11 
11 
     | 
    
         
             
                  <% end %>
         
     | 
| 
       12 
12 
     | 
    
         
             
                </ul>
         
     | 
| 
       13 
     | 
    
         
            -
                <div id="cell_for_other_elements" 
     | 
| 
      
 13 
     | 
    
         
            +
                <div id="cell_for_other_elements"
         
     | 
| 
      
 14 
     | 
    
         
            +
                  class="sortable_cell for_other_elements_cell"
         
     | 
| 
      
 15 
     | 
    
         
            +
                  data-droppable-elements="<%= @page.element_names_from_definition.join(' ') %>">
         
     | 
| 
       14 
16 
     | 
    
         
             
                  <%= render partial: 'alchemy/admin/elements/element',
         
     | 
| 
       15 
17 
     | 
    
         
             
                    collection: @page.elements.not_trashed.not_in_cell %>
         
     | 
| 
       16 
18 
     | 
    
         
             
                </div>
         
     | 
| 
         @@ -18,7 +20,7 @@ 
     | 
|
| 
       18 
20 
     | 
    
         
             
                  <%= content_tag :div,
         
     | 
| 
       19 
21 
     | 
    
         
             
                    id: "cell_#{cell.name}",
         
     | 
| 
       20 
22 
     | 
    
         
             
                    class: ["sortable_cell", "#{cell.name}_cell"].join(' '),
         
     | 
| 
       21 
     | 
    
         
            -
                    data: {'cell-id' => cell.id, ' 
     | 
| 
      
 23 
     | 
    
         
            +
                    data: {'cell-id' => cell.id, 'droppable-elements' => cell.element_definitions.join(' ')} do %>
         
     | 
| 
       22 
24 
     | 
    
         
             
                    <%= render partial: 'alchemy/admin/elements/element', collection: elements %>
         
     | 
| 
       23 
25 
     | 
    
         
             
                  <% end %>
         
     | 
| 
       24 
26 
     | 
    
         
             
                <% end %>
         
     | 
| 
         @@ -11,7 +11,8 @@ 
     | 
|
| 
       11 
11 
     | 
    
         
             
              </div>
         
     | 
| 
       12 
12 
     | 
    
         
             
              <div id="paste_element_tab">
         
     | 
| 
       13 
13 
     | 
    
         
             
                <%= alchemy_form_for([:admin, @element]) do |f| %>
         
     | 
| 
       14 
     | 
    
         
            -
                  <%= f.hidden_field 
     | 
| 
      
 14 
     | 
    
         
            +
                  <%= f.hidden_field :page_id %>
         
     | 
| 
      
 15 
     | 
    
         
            +
                  <%= f.hidden_field :parent_element_id, value: @parent_element.try(:id) %>
         
     | 
| 
       15 
16 
     | 
    
         
             
                  <div class="input select">
         
     | 
| 
       16 
17 
     | 
    
         
             
                    <label for="paste_from_clipboard" class="control-label"><%= Alchemy.t("Element") %></label>
         
     | 
| 
       17 
18 
     | 
    
         
             
                    <%= select_tag 'paste_from_clipboard',
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            <% if can? *navigate_module(navigation) %>
         
     | 
| 
       2 
     | 
    
         
            -
              <%= content_tag :div, class: main_navigation_css_classes(navigation) do %>
         
     | 
| 
      
 2 
     | 
    
         
            +
              <%= content_tag :div, class: main_navigation_css_classes(navigation), data: navigation["data"] do %>
         
     | 
| 
       3 
3 
     | 
    
         
             
                <%= link_to url_for_module(alchemy_module) do %>
         
     | 
| 
       4 
4 
     | 
    
         
             
                  <% if navigation["image"] %>
         
     | 
| 
       5 
5 
     | 
    
         
             
                    <%= image_tag(navigation["image"]) %>
         
     | 
    
        data/lib/alchemy/tasks/tidy.rb
    CHANGED
    
    | 
         @@ -117,12 +117,20 @@ module Alchemy 
     | 
|
| 
       117 
117 
     | 
    
         
             
                    end
         
     | 
| 
       118 
118 
     | 
    
         
             
                  end
         
     | 
| 
       119 
119 
     | 
    
         | 
| 
      
 120 
     | 
    
         
            +
                  def remove_duplicate_folded_pages
         
     | 
| 
      
 121 
     | 
    
         
            +
                    Alchemy::FoldedPage.select(:page_id, :user_id).group(:page_id, :user_id).having("count(*) > 1").each do |duplicate_page|
         
     | 
| 
      
 122 
     | 
    
         
            +
                      duplicate_page_ids = Alchemy::FoldedPage.where(duplicate_page.attributes.except("id")).pluck(:id)
         
     | 
| 
      
 123 
     | 
    
         
            +
                      duplicate_page_ids_except_oldest = duplicate_page_ids.reject { |i| i == duplicate_page_ids.min }
         
     | 
| 
      
 124 
     | 
    
         
            +
                      Alchemy::FoldedPage.where(id: duplicate_page_ids_except_oldest).delete_all
         
     | 
| 
      
 125 
     | 
    
         
            +
                    end
         
     | 
| 
      
 126 
     | 
    
         
            +
                  end
         
     | 
| 
      
 127 
     | 
    
         
            +
             
     | 
| 
       120 
128 
     | 
    
         
             
                  private
         
     | 
| 
       121 
129 
     | 
    
         | 
| 
       122 
130 
     | 
    
         
             
                  def destroy_orphaned_records(records, class_name)
         
     | 
| 
       123 
131 
     | 
    
         
             
                    records.each do |record|
         
     | 
| 
       124 
132 
     | 
    
         
             
                      log "Destroy orphaned #{class_name}: #{record.inspect}"
         
     | 
| 
       125 
     | 
    
         
            -
                      record.destroy
         
     | 
| 
      
 133 
     | 
    
         
            +
                      record.reload.try(:destroy)
         
     | 
| 
       126 
134 
     | 
    
         
             
                    end
         
     | 
| 
       127 
135 
     | 
    
         
             
                  end
         
     | 
| 
       128 
136 
     | 
    
         
             
                end
         
     | 
    
        data/lib/alchemy/version.rb
    CHANGED
    
    
    
        data/lib/tasks/alchemy/tidy.rake
    CHANGED
    
    | 
         @@ -8,6 +8,7 @@ namespace :alchemy do 
     | 
|
| 
       8 
8 
     | 
    
         
             
                  Rake::Task['alchemy:tidy:element_positions'].invoke
         
     | 
| 
       9 
9 
     | 
    
         
             
                  Rake::Task['alchemy:tidy:content_positions'].invoke
         
     | 
| 
       10 
10 
     | 
    
         
             
                  Rake::Task['alchemy:tidy:remove_orphaned_records'].invoke
         
     | 
| 
      
 11 
     | 
    
         
            +
                  Rake::Task['alchemy:tidy:remove_duplicate_folded_pages'].invoke
         
     | 
| 
       11 
12 
     | 
    
         
             
                end
         
     | 
| 
       12 
13 
     | 
    
         | 
| 
       13 
14 
     | 
    
         
             
                desc "Creates missing cells for pages."
         
     | 
| 
         @@ -56,5 +57,10 @@ namespace :alchemy do 
     | 
|
| 
       56 
57 
     | 
    
         
             
                task remove_orphaned_contents: [:environment] do
         
     | 
| 
       57 
58 
     | 
    
         
             
                  Alchemy::Tidy.remove_orphaned_contents
         
     | 
| 
       58 
59 
     | 
    
         
             
                end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                desc "Remove duplicate folded pages."
         
     | 
| 
      
 62 
     | 
    
         
            +
                task remove_duplicate_folded_pages: [:environment] do
         
     | 
| 
      
 63 
     | 
    
         
            +
                  Alchemy::Tidy.remove_duplicate_folded_pages
         
     | 
| 
      
 64 
     | 
    
         
            +
                end
         
     | 
| 
       59 
65 
     | 
    
         
             
              end
         
     | 
| 
       60 
66 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: alchemy_cms
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 4.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 4.0.6
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Thomas von Deyen
         
     | 
| 
         @@ -13,7 +13,7 @@ authors: 
     | 
|
| 
       13 
13 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       15 
15 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       16 
     | 
    
         
            -
            date:  
     | 
| 
      
 16 
     | 
    
         
            +
            date: 2021-05-28 00:00:00.000000000 Z
         
     | 
| 
       17 
17 
     | 
    
         
             
            dependencies:
         
     | 
| 
       18 
18 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       19 
19 
     | 
    
         
             
              name: active_model_serializers
         
     | 
| 
         @@ -89,16 +89,22 @@ dependencies: 
     | 
|
| 
       89 
89 
     | 
    
         
             
              name: cancancan
         
     | 
| 
       90 
90 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       91 
91 
     | 
    
         
             
                requirements:
         
     | 
| 
       92 
     | 
    
         
            -
                - - " 
     | 
| 
      
 92 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       93 
93 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       94 
94 
     | 
    
         
             
                    version: '1.9'
         
     | 
| 
      
 95 
     | 
    
         
            +
                - - "<"
         
     | 
| 
      
 96 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 97 
     | 
    
         
            +
                    version: '3.0'
         
     | 
| 
       95 
98 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       96 
99 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       97 
100 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       98 
101 
     | 
    
         
             
                requirements:
         
     | 
| 
       99 
     | 
    
         
            -
                - - " 
     | 
| 
      
 102 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       100 
103 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       101 
104 
     | 
    
         
             
                    version: '1.9'
         
     | 
| 
      
 105 
     | 
    
         
            +
                - - "<"
         
     | 
| 
      
 106 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 107 
     | 
    
         
            +
                    version: '3.0'
         
     | 
| 
       102 
108 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       103 
109 
     | 
    
         
             
              name: coffee-rails
         
     | 
| 
       104 
110 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -193,16 +199,22 @@ dependencies: 
     | 
|
| 
       193 
199 
     | 
    
         
             
              name: kaminari
         
     | 
| 
       194 
200 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       195 
201 
     | 
    
         
             
                requirements:
         
     | 
| 
       196 
     | 
    
         
            -
                - - " 
     | 
| 
      
 202 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       197 
203 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       198 
204 
     | 
    
         
             
                    version: '0.15'
         
     | 
| 
      
 205 
     | 
    
         
            +
                - - "<"
         
     | 
| 
      
 206 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 207 
     | 
    
         
            +
                    version: '2.0'
         
     | 
| 
       199 
208 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       200 
209 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       201 
210 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       202 
211 
     | 
    
         
             
                requirements:
         
     | 
| 
       203 
     | 
    
         
            -
                - - " 
     | 
| 
      
 212 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       204 
213 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       205 
214 
     | 
    
         
             
                    version: '0.15'
         
     | 
| 
      
 215 
     | 
    
         
            +
                - - "<"
         
     | 
| 
      
 216 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 217 
     | 
    
         
            +
                    version: '2.0'
         
     | 
| 
       206 
218 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       207 
219 
     | 
    
         
             
              name: originator
         
     | 
| 
       208 
220 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -1001,8 +1013,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       1001 
1013 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       1002 
1014 
     | 
    
         
             
            requirements:
         
     | 
| 
       1003 
1015 
     | 
    
         
             
            - ImageMagick (libmagick), v6.6 or greater.
         
     | 
| 
       1004 
     | 
    
         
            -
             
     | 
| 
       1005 
     | 
    
         
            -
            rubygems_version: 2.7.6
         
     | 
| 
      
 1016 
     | 
    
         
            +
            rubygems_version: 3.1.4
         
     | 
| 
       1006 
1017 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       1007 
1018 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       1008 
1019 
     | 
    
         
             
            summary: A powerful, userfriendly and flexible CMS for Rails 4
         
     |