effective_pages 3.2.0 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|