effective_pages 3.2.0 → 3.3.0
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/admin/page_sections_controller.rb +13 -0
- data/app/datatables/effective_page_sections_datatable.rb +29 -0
- data/app/helpers/effective_page_sections_helper.rb +24 -0
- data/app/models/effective/page_section.rb +49 -0
- data/app/views/admin/page_sections/_form.html.haml +7 -0
- data/app/views/admin/page_sections/_form_page_section.html.haml +25 -0
- data/config/effective_pages.rb +1 -0
- data/config/routes.rb +1 -0
- data/db/migrate/01_create_effective_pages.rb.erb +21 -0
- data/lib/effective_pages/engine.rb +1 -0
- data/lib/effective_pages/version.rb +1 -1
- data/lib/effective_pages.rb +1 -1
- data/lib/generators/effective_pages/install_generator.rb +1 -0
- metadata +7 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2620fbfec6b912fd31b7d9821fe5ef73eecbfb4c509063883f8c144a2aa66d30
|
|
4
|
+
data.tar.gz: d75935c05702f1328e32058f45874999a3b3b3f7f7becab1202c4d18b9dee743
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9dd4484e144bbbb2287dc399eb93bbae86b423c05fea8ca0bd0f7d5f716e384ebc1d935eef964166517b6358d1565f539c32894d6a2992e851a3e2d9104a6192
|
|
7
|
+
data.tar.gz: f1fa33f1bd839164cb281f23a3439f4d624458120061d7aeb7a0c2e16703d7b46d7043ae4abaf4878cea8bbf65e5a8a0710a02c00fbe0c8185f9df28e1e3e46c
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Admin
|
|
2
|
+
class PageSectionsController < ApplicationController
|
|
3
|
+
before_action(:authenticate_user!) if defined?(Devise)
|
|
4
|
+
before_action { EffectiveResources.authorize!(self, :admin, :effective_pages) }
|
|
5
|
+
|
|
6
|
+
include Effective::CrudController
|
|
7
|
+
|
|
8
|
+
def permitted_params
|
|
9
|
+
params.require(:effective_page_section).permit!
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
class EffectivePageSectionsDatatable < Effective::Datatable
|
|
2
|
+
|
|
3
|
+
datatable do
|
|
4
|
+
order :name, :asc
|
|
5
|
+
length :all
|
|
6
|
+
|
|
7
|
+
col :id, visible: false
|
|
8
|
+
col :updated_at, visible: false
|
|
9
|
+
|
|
10
|
+
col :name
|
|
11
|
+
col :hint
|
|
12
|
+
|
|
13
|
+
col :title
|
|
14
|
+
col :rich_text_body
|
|
15
|
+
|
|
16
|
+
col :files
|
|
17
|
+
|
|
18
|
+
col :link_label, visible: false
|
|
19
|
+
col :link_url, visible: false
|
|
20
|
+
col :caption, visible: false
|
|
21
|
+
|
|
22
|
+
actions_col
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
collection do
|
|
26
|
+
Effective::PageSection.deep.all
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module EffectivePageSectionsHelper
|
|
4
|
+
|
|
5
|
+
def effective_page_sections
|
|
6
|
+
@_effective_page_sections ||= Effective::PageSection.all
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def render_page_section(name, &block)
|
|
10
|
+
raise('expected a name') unless name.present?
|
|
11
|
+
|
|
12
|
+
name = name.to_s
|
|
13
|
+
|
|
14
|
+
page_section = effective_page_sections.find { |ps| ps.name == name }
|
|
15
|
+
raise("unable to find page section with name #{name}") unless page_section.present?
|
|
16
|
+
|
|
17
|
+
if block_given?
|
|
18
|
+
yield(page_section); nil
|
|
19
|
+
else
|
|
20
|
+
page_section.rich_text_body.to_s.html_safe
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
module Effective
|
|
2
|
+
class PageSection < ActiveRecord::Base
|
|
3
|
+
attr_accessor :current_user
|
|
4
|
+
|
|
5
|
+
# Not used
|
|
6
|
+
belongs_to :owner, polymorphic: true, optional: true
|
|
7
|
+
|
|
8
|
+
has_many_rich_texts
|
|
9
|
+
has_many_attached :files
|
|
10
|
+
|
|
11
|
+
log_changes if respond_to?(:log_changes)
|
|
12
|
+
|
|
13
|
+
self.table_name = EffectivePages.page_sections_table_name.to_s
|
|
14
|
+
|
|
15
|
+
effective_resource do
|
|
16
|
+
name :string # Unique name of this page section
|
|
17
|
+
|
|
18
|
+
title :string
|
|
19
|
+
caption :string
|
|
20
|
+
|
|
21
|
+
link_label :string
|
|
22
|
+
link_url :string
|
|
23
|
+
|
|
24
|
+
hint :text
|
|
25
|
+
|
|
26
|
+
timestamps
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
validates :name, presence: true, uniqueness: true
|
|
30
|
+
validates :title, presence: true, length: { maximum: 255 }
|
|
31
|
+
|
|
32
|
+
validates :link_url, presence: true, if: -> { link_label.present? }
|
|
33
|
+
validates :link_url, absence: true, if: -> { link_label.blank? }
|
|
34
|
+
|
|
35
|
+
scope :deep, -> { with_attached_files.includes(:rich_texts) }
|
|
36
|
+
scope :sorted, -> { order(:name) }
|
|
37
|
+
|
|
38
|
+
def to_s
|
|
39
|
+
name.presence || 'page section'
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# As per has_many_rich_texts
|
|
43
|
+
def body
|
|
44
|
+
rich_text_body
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
= effective_form_with(model: [:admin, page_section], engine: true) do |f|
|
|
2
|
+
- if f.object.new_record?
|
|
3
|
+
= f.text_field :name, hint: 'The name of this region must be unique'
|
|
4
|
+
- else
|
|
5
|
+
= f.static_field :name
|
|
6
|
+
|
|
7
|
+
- if f.object.hint.present?
|
|
8
|
+
.mb-4= f.object.hint.html_safe
|
|
9
|
+
|
|
10
|
+
= f.text_field :title
|
|
11
|
+
|
|
12
|
+
- if defined?(EffectiveArticleEditor)
|
|
13
|
+
= f.article_editor :rich_text_body, label: 'Body', hint: 'The main content'
|
|
14
|
+
- else
|
|
15
|
+
= f.rich_text_area :rich_text_body, label: 'Body', hint: 'The main content'
|
|
16
|
+
|
|
17
|
+
.row
|
|
18
|
+
.col= f.text_field :link_label
|
|
19
|
+
.col= f.url_field :link_url
|
|
20
|
+
|
|
21
|
+
= f.file_field :files, label: 'Attachment'
|
|
22
|
+
|
|
23
|
+
= f.text_field :caption
|
|
24
|
+
|
|
25
|
+
= effective_submit(f)
|
data/config/effective_pages.rb
CHANGED
data/config/routes.rb
CHANGED
|
@@ -30,10 +30,31 @@ class CreateEffectivePages < ActiveRecord::Migration[4.2]
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
add_index <%= @pages_table_name %>, :slug, :unique => true
|
|
33
|
+
|
|
34
|
+
create_table <%= @page_sections_table_name %> do |t|
|
|
35
|
+
t.string :owner_type
|
|
36
|
+
t.integer :owner_id
|
|
37
|
+
|
|
38
|
+
t.string :name
|
|
39
|
+
|
|
40
|
+
t.string :title
|
|
41
|
+
t.string :caption
|
|
42
|
+
|
|
43
|
+
t.string :link_label
|
|
44
|
+
t.string :link_url
|
|
45
|
+
|
|
46
|
+
t.text :hint
|
|
47
|
+
|
|
48
|
+
t.datetime :updated_at
|
|
49
|
+
t.datetime :created_at
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
add_index <%= @page_sections_table_name %>, :name, :unique => true
|
|
33
53
|
end
|
|
34
54
|
|
|
35
55
|
def self.down
|
|
36
56
|
drop_table <%= @pages_table_name %>
|
|
57
|
+
drop_table <%= @page_sections_table_name %>
|
|
37
58
|
end
|
|
38
59
|
|
|
39
60
|
end
|
data/lib/effective_pages.rb
CHANGED
|
@@ -7,7 +7,7 @@ require 'effective_pages/version'
|
|
|
7
7
|
module EffectivePages
|
|
8
8
|
def self.config_keys
|
|
9
9
|
[
|
|
10
|
-
:pages_table_name,
|
|
10
|
+
:pages_table_name, :page_sections_table_name,
|
|
11
11
|
:pages_path, :excluded_pages, :layouts_path, :excluded_layouts,
|
|
12
12
|
:site_og_image, :site_og_image_width, :site_og_image_height,
|
|
13
13
|
:site_title, :site_title_suffix, :fallback_meta_description,
|
|
@@ -21,6 +21,7 @@ module EffectivePages
|
|
|
21
21
|
|
|
22
22
|
def create_migration_file
|
|
23
23
|
@pages_table_name = ':' + EffectivePages.pages_table_name.to_s
|
|
24
|
+
@page_sections_table_name = ':' + EffectivePages.page_sections_table_name.to_s
|
|
24
25
|
migration_template ('../' * 3) + 'db/migrate/01_create_effective_pages.rb.erb', 'db/migrate/create_effective_pages.rb'
|
|
25
26
|
end
|
|
26
27
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: effective_pages
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Code and Effect
|
|
@@ -76,14 +76,20 @@ files:
|
|
|
76
76
|
- MIT-LICENSE
|
|
77
77
|
- README.md
|
|
78
78
|
- app/controllers/admin/menus_controller.rb
|
|
79
|
+
- app/controllers/admin/page_sections_controller.rb
|
|
79
80
|
- app/controllers/admin/pages_controller.rb
|
|
80
81
|
- app/controllers/effective/pages_controller.rb
|
|
82
|
+
- app/datatables/effective_page_sections_datatable.rb
|
|
81
83
|
- app/datatables/effective_pages_datatable.rb
|
|
82
84
|
- app/datatables/effective_pages_menu_datatable.rb
|
|
83
85
|
- app/helpers/effective_menus_helper.rb
|
|
86
|
+
- app/helpers/effective_page_sections_helper.rb
|
|
84
87
|
- app/helpers/effective_pages_helper.rb
|
|
85
88
|
- app/models/effective/page.rb
|
|
89
|
+
- app/models/effective/page_section.rb
|
|
86
90
|
- app/views/admin/menus/index.html.haml
|
|
91
|
+
- app/views/admin/page_sections/_form.html.haml
|
|
92
|
+
- app/views/admin/page_sections/_form_page_section.html.haml
|
|
87
93
|
- app/views/admin/pages/_additional_fields.html.haml
|
|
88
94
|
- app/views/admin/pages/_form.html.haml
|
|
89
95
|
- app/views/admin/pages/_form_access.html.haml
|