phcdevworks_core_modules 1.0.0 → 2.0.1
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/assets/javascripts/phcdevworks_core_modules/marketing/optimizations.coffee +3 -0
- data/app/assets/javascripts/phcdevworks_core_modules/post/categories.coffee +3 -0
- data/app/assets/stylesheets/phcdevworks_core_modules/marketing/optimizations.scss +3 -0
- data/app/assets/stylesheets/phcdevworks_core_modules/post/categories.scss +3 -0
- data/app/assets/stylesheets/scaffolds.scss +65 -0
- data/app/controllers/phcdevworks_core_modules/marketing/optimizations_controller.rb +81 -0
- data/app/controllers/phcdevworks_core_modules/post/categories_controller.rb +81 -0
- data/app/helpers/phcdevworks_core_modules/marketing/optimizations_helper.rb +4 -0
- data/app/helpers/phcdevworks_core_modules/{modules → post}/categories_helper.rb +1 -1
- data/app/models/phcdevworks_core_modules/core_category_versions.rb +1 -1
- data/app/models/phcdevworks_core_modules/core_optimization_versions.rb +5 -0
- data/app/models/phcdevworks_core_modules/marketing.rb +7 -0
- data/app/models/phcdevworks_core_modules/marketing/optimization.rb +39 -0
- data/app/models/phcdevworks_core_modules/post.rb +7 -0
- data/app/models/phcdevworks_core_modules/{modules → post}/category.rb +11 -5
- data/app/views/layouts/phcdevworks_core_modules/components/backend/navigation/_top_menu.html.erb +1 -1
- data/app/views/layouts/phcdevworks_core_modules/components/backend/sidebars/_side_menu.html.erb +15 -4
- data/app/views/phcdevworks_core_modules/marketing/optimizations/_form.html.erb +87 -0
- data/app/views/phcdevworks_core_modules/marketing/optimizations/edit.html.erb +47 -0
- data/app/views/phcdevworks_core_modules/marketing/optimizations/index.html.erb +88 -0
- data/app/views/phcdevworks_core_modules/marketing/optimizations/new.html.erb +47 -0
- data/app/views/phcdevworks_core_modules/marketing/optimizations/show.html.erb +49 -0
- data/app/views/phcdevworks_core_modules/{modules → post}/categories/_form.html.erb +5 -5
- data/app/views/phcdevworks_core_modules/{modules → post}/categories/edit.html.erb +2 -2
- data/app/views/phcdevworks_core_modules/{modules → post}/categories/index.html.erb +7 -7
- data/app/views/phcdevworks_core_modules/{modules → post}/categories/new.html.erb +2 -2
- data/app/views/phcdevworks_core_modules/post/categories/show.html.erb +9 -0
- data/config/routes.rb +11 -6
- data/db/migrate/20170517064427_create_phcdevworks_core_modules_category_versions.rb +17 -0
- data/db/migrate/20200705223718_create_phcdevworks_core_modules_marketing_optimizations.rb +25 -0
- data/db/migrate/{20170517064427_create_phcdevworks_core_category_versions.rb → 20200705225433_create_phcdevworks_core_modules_optimization_versions.rb} +17 -17
- data/db/migrate/20200706091346_create_phcdevworks_core_modules_categories_optimizations.rb +10 -0
- data/db/migrate/{20200629113153_create_phcdevworks_core_modules_modules_categories.rb → 20200706094820_create_phcdevworks_core_modules_post_categories.rb} +2 -2
- data/lib/phcdevworks_core_modules/version.rb +1 -1
- metadata +33 -14
- data/app/controllers/phcdevworks_core_modules/modules/categories_controller.rb +0 -81
- data/app/views/phcdevworks_core_modules/modules/categories/show.html.erb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 908084ab1bac324f935acc7efeef54a089a3d9075ea4cc89ff11efb18631f4f8
|
4
|
+
data.tar.gz: 03c8009534ec11c3902b4b050b8de1658a70790a1d8123f83b46e17728da8b2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 379ef906193a9e52ed336055bf172cceee8d891cafb050c84e59df13033d07c2a4787a2c895389d1cfcfb9e6c5962475cc0e052a3f3cb9c2cc53c9d0834fe6fd
|
7
|
+
data.tar.gz: 24ca974763484f3df0db89d8687aa1fcf65f65947c9bb0b32064287ff9a36690ff3df8caeb083078591e96ac4fe4dd350116ee30bb3f7df085701bd9f9a68531
|
@@ -0,0 +1,65 @@
|
|
1
|
+
body {
|
2
|
+
background-color: #fff;
|
3
|
+
color: #333;
|
4
|
+
margin: 33px; }
|
5
|
+
|
6
|
+
body, p, ol, ul, td {
|
7
|
+
font-family: verdana, arial, helvetica, sans-serif;
|
8
|
+
font-size: 13px;
|
9
|
+
line-height: 18px; }
|
10
|
+
|
11
|
+
pre {
|
12
|
+
background-color: #eee;
|
13
|
+
padding: 10px;
|
14
|
+
font-size: 11px; }
|
15
|
+
|
16
|
+
a {
|
17
|
+
color: #000; }
|
18
|
+
|
19
|
+
a:visited {
|
20
|
+
color: #666; }
|
21
|
+
|
22
|
+
a:hover {
|
23
|
+
color: #fff;
|
24
|
+
background-color: #000; }
|
25
|
+
|
26
|
+
th {
|
27
|
+
padding-bottom: 5px; }
|
28
|
+
|
29
|
+
td {
|
30
|
+
padding: 0 5px 7px; }
|
31
|
+
|
32
|
+
div.field,
|
33
|
+
div.actions {
|
34
|
+
margin-bottom: 10px; }
|
35
|
+
|
36
|
+
#notice {
|
37
|
+
color: green; }
|
38
|
+
|
39
|
+
.field_with_errors {
|
40
|
+
padding: 2px;
|
41
|
+
background-color: red;
|
42
|
+
display: table; }
|
43
|
+
|
44
|
+
#error_explanation {
|
45
|
+
width: 450px;
|
46
|
+
border: 2px solid red;
|
47
|
+
padding: 7px 7px 0;
|
48
|
+
margin-bottom: 20px;
|
49
|
+
background-color: #f0f0f0; }
|
50
|
+
|
51
|
+
#error_explanation h2 {
|
52
|
+
text-align: left;
|
53
|
+
font-weight: bold;
|
54
|
+
padding: 5px 5px 5px 15px;
|
55
|
+
font-size: 12px;
|
56
|
+
margin: -7px -7px 0;
|
57
|
+
background-color: #c00;
|
58
|
+
color: #fff; }
|
59
|
+
|
60
|
+
#error_explanation ul li {
|
61
|
+
font-size: 12px;
|
62
|
+
list-style: square; }
|
63
|
+
|
64
|
+
label {
|
65
|
+
display: block; }
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require_dependency "phcdevworks_core_modules/application_controller"
|
2
|
+
|
3
|
+
module PhcdevworksCoreModules
|
4
|
+
class Marketing::OptimizationsController < ApplicationController
|
5
|
+
|
6
|
+
# Filters & Security
|
7
|
+
#include PhcdevworksCore::PhcpluginsHelper
|
8
|
+
before_action :authenticate_user!
|
9
|
+
before_action :set_paper_trail_whodunnit
|
10
|
+
before_action :set_marketing_optimization, only: [:show, :edit, :update, :destroy]
|
11
|
+
|
12
|
+
# GET /marketing/optimizations
|
13
|
+
def index
|
14
|
+
@marketing_optimizations = Marketing::Optimization.order('seo_title ASC')
|
15
|
+
end
|
16
|
+
|
17
|
+
# GET /marketing/optimizations/1
|
18
|
+
def show
|
19
|
+
end
|
20
|
+
|
21
|
+
# GET /marketing/optimizations/new
|
22
|
+
def new
|
23
|
+
@marketing_optimization = Marketing::Optimization.new
|
24
|
+
end
|
25
|
+
|
26
|
+
# GET /marketing/optimizations/1/edit
|
27
|
+
def edit
|
28
|
+
end
|
29
|
+
|
30
|
+
# POST /marketing/optimizations
|
31
|
+
def create
|
32
|
+
@marketing_optimization = Marketing::Optimization.new(marketing_optimization_params)
|
33
|
+
@marketing_optimization.user_id = current_user.id
|
34
|
+
@marketing_optimization.org_id = current_user.org_id
|
35
|
+
respond_to do |format|
|
36
|
+
if @marketing_optimization.save
|
37
|
+
format.html { redirect_to marketing_optimizations_path, :flash => { :success => 'SEO Attributes has been Added.' }}
|
38
|
+
format.json { render :show, status: :created, location: @marketing_optimization }
|
39
|
+
else
|
40
|
+
format.html { render :new }
|
41
|
+
format.json { render json: @marketing_optimization.errors, status: :unprocessable_entity }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# PATCH/PUT /marketing/optimizations/1
|
47
|
+
def update
|
48
|
+
respond_to do |format|
|
49
|
+
if @marketing_optimization.update(marketing_optimization_params)
|
50
|
+
format.html { redirect_to marketing_optimizations_path, :flash => { :notice => 'Tutorial has been Updated.' }}
|
51
|
+
format.json { render :show, status: :ok, location: @marketing_optimization }
|
52
|
+
else
|
53
|
+
format.html { render :edit }
|
54
|
+
format.json { render json: @marketing_optimization.errors, status: :unprocessable_entity }
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# DELETE /marketing/optimizations/1
|
60
|
+
def destroy
|
61
|
+
@marketing_optimization.destroy
|
62
|
+
respond_to do |format|
|
63
|
+
format.html { redirect_to marketing_optimizations_path, :flash => { :error => 'SEO Attributes and Post Connections have all been Removed.' }}
|
64
|
+
format.json { head :no_content }
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
# Common Callbacks
|
71
|
+
def set_marketing_optimization
|
72
|
+
@marketing_optimization = Marketing::Optimization.find(params[:id])
|
73
|
+
end
|
74
|
+
|
75
|
+
# Whitelist
|
76
|
+
def marketing_optimization_params
|
77
|
+
params.require(:marketing_optimization).permit(:seo_title, :seo_description, :seo_open_graph_post_type, :seo_open_graph_url, :seo_open_graph_title, :seo_open_graph_description, :seo_open_graph_image, :seo_twitter_post_type, :seo_twitter_url, :seo_twitter_title, :seo_twitter_description, :seo_twitter_image, :slug, :user_id, :org_id)
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require_dependency "phcdevworks_core_modules/application_controller"
|
2
|
+
|
3
|
+
module PhcdevworksCoreModules
|
4
|
+
class Post::CategoriesController < ApplicationController
|
5
|
+
|
6
|
+
# Filters & Security
|
7
|
+
#include PhcdevworksCore::PhcpluginsHelper
|
8
|
+
before_action :authenticate_user!
|
9
|
+
before_action :set_paper_trail_whodunnit
|
10
|
+
before_action :set_post_category, only: [:show, :edit, :update, :destroy]
|
11
|
+
|
12
|
+
# GET /post/categories
|
13
|
+
def index
|
14
|
+
@post_categories = Post::Category.order('category_name ASC')
|
15
|
+
end
|
16
|
+
|
17
|
+
# GET /post/categories/1
|
18
|
+
def show
|
19
|
+
end
|
20
|
+
|
21
|
+
# GET /post/categories/new
|
22
|
+
def new
|
23
|
+
@post_category = Post::Category.new
|
24
|
+
end
|
25
|
+
|
26
|
+
# GET /post/categories/1/edit
|
27
|
+
def edit
|
28
|
+
end
|
29
|
+
|
30
|
+
# POST /post/categories
|
31
|
+
def create
|
32
|
+
@post_category = Post::Category.new(post_category_params)
|
33
|
+
@post_category.user_id = current_user.id
|
34
|
+
@post_category.org_id = current_user.org_id
|
35
|
+
respond_to do |format|
|
36
|
+
if @post_category.save
|
37
|
+
format.html { redirect_to post_categories_path, :flash => { :success => 'Category has been Added.' }}
|
38
|
+
format.json { render :show, status: :created, location: @post_category }
|
39
|
+
else
|
40
|
+
format.html { render :new }
|
41
|
+
format.json { render json: @post_category.errors, status: :unprocessable_entity }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# PATCH/PUT /post/categories/1
|
47
|
+
def update
|
48
|
+
respond_to do |format|
|
49
|
+
if @post_category.update(post_category_params)
|
50
|
+
format.html { redirect_to post_categories_path, :flash => { :notice => 'Category has been Updated.' }}
|
51
|
+
format.json { render :show, status: :ok, location: @post_category }
|
52
|
+
else
|
53
|
+
format.html { render :edit }
|
54
|
+
format.json { render json: @post_category.errors, status: :unprocessable_entity }
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# DELETE /post/categories/1
|
60
|
+
def destroy
|
61
|
+
@post_category.destroy
|
62
|
+
respond_to do |format|
|
63
|
+
format.html { redirect_to post_categories_path, :flash => { :error => 'Categories and Category Connections have all been Removed.' }}
|
64
|
+
format.json { head :no_content }
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
# Common Callbacks
|
71
|
+
def set_post_category
|
72
|
+
@post_category = Post::Category.find(params[:id])
|
73
|
+
end
|
74
|
+
|
75
|
+
# Whitelist
|
76
|
+
def post_category_params
|
77
|
+
params.require(:post_category).permit(:category_name, :slug, :user_id, :org_id)
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module PhcdevworksCoreModules
|
2
|
+
class Marketing::Optimization < ApplicationRecord
|
3
|
+
|
4
|
+
# Clean URL Initialize
|
5
|
+
extend FriendlyId
|
6
|
+
|
7
|
+
# Image Upload
|
8
|
+
has_one_attached :seo_twitter_image
|
9
|
+
has_one_attached :seo_open_graph_image
|
10
|
+
|
11
|
+
# Paper Trail Initialize
|
12
|
+
has_paper_trail :class_name => "PhcdevworksCoreModules::CoreOptimizationVersions"
|
13
|
+
|
14
|
+
# Relationships
|
15
|
+
belongs_to :user, class_name: "PhcdevworksAccounts::User"
|
16
|
+
has_and_belongs_to_many :posts, class_name: "PhcdevworksPress::Article::Post", :join_table => "phcdevworks_press_categories_posts", :dependent => :destroy
|
17
|
+
has_and_belongs_to_many :posts, class_name: "PhcdevworksPortfolio::Project::Post", :join_table => "phcdevworks_portfolio_categories_posts", :dependent => :destroy
|
18
|
+
has_and_belongs_to_many :posts, class_name: "PhcdevworksTutorials::Tutorial::Post", :join_table => "phcdevworks_tutorials_categories_posts", :dependent => :destroy
|
19
|
+
has_and_belongs_to_many :posts, class_name: "PhcdevworksTutorials::Command::Post", :join_table => "phcdevworks_tutorials_categories_commands", :dependent => :destroy
|
20
|
+
|
21
|
+
# Form Fields Validation
|
22
|
+
validates :seo_title,
|
23
|
+
presence: true
|
24
|
+
|
25
|
+
validates :seo_open_graph_title,
|
26
|
+
presence: true
|
27
|
+
|
28
|
+
validates :seo_twitter_title,
|
29
|
+
presence: true
|
30
|
+
|
31
|
+
# Clean URL Define
|
32
|
+
friendly_id :phcdev_core_optimization_nice_urls, use: [:slugged, :finders]
|
33
|
+
|
34
|
+
def phcdev_core_optimization_nice_urls
|
35
|
+
[:seo_title].join("-")
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
@@ -1,9 +1,13 @@
|
|
1
1
|
module PhcdevworksCoreModules
|
2
|
-
class
|
2
|
+
class Post::Category < ApplicationRecord
|
3
3
|
|
4
4
|
# Clean URL Initialize
|
5
5
|
extend FriendlyId
|
6
6
|
|
7
|
+
# Image Upload
|
8
|
+
has_one_attached :seo_twitter_image
|
9
|
+
has_one_attached :seo_open_graph_image
|
10
|
+
|
7
11
|
# Paper Trail Initialize
|
8
12
|
has_paper_trail :class_name => "PhcdevworksCoreModules::CoreCategoryVersions"
|
9
13
|
|
@@ -13,18 +17,20 @@ module PhcdevworksCoreModules
|
|
13
17
|
has_and_belongs_to_many :posts, class_name: "PhcdevworksPortfolio::Project::Post", :join_table => "phcdevworks_portfolio_categories_posts", :dependent => :destroy
|
14
18
|
has_and_belongs_to_many :posts, class_name: "PhcdevworksTutorials::Tutorial::Post", :join_table => "phcdevworks_tutorials_categories_posts", :dependent => :destroy
|
15
19
|
has_and_belongs_to_many :posts, class_name: "PhcdevworksTutorials::Command::Post", :join_table => "phcdevworks_tutorials_categories_commands", :dependent => :destroy
|
20
|
+
has_and_belongs_to_many :optimizations, class_name: 'PhcdevworksCoreModules::Core::Optimization', :join_table => "phcdevworks_core_modules_categories_optimizations", :dependent => :destroy
|
16
21
|
|
17
22
|
# Form Fields Validation
|
18
23
|
validates :category_name,
|
19
24
|
presence: true,
|
20
25
|
uniqueness: true
|
21
|
-
|
26
|
+
|
22
27
|
# Clean URL Define
|
23
28
|
friendly_id :phcdev_core_category_nice_urls, use: [:slugged, :finders]
|
24
|
-
|
29
|
+
|
25
30
|
def phcdev_core_category_nice_urls
|
26
|
-
|
31
|
+
[:category_name]
|
27
32
|
end
|
28
|
-
|
33
|
+
|
34
|
+
|
29
35
|
end
|
30
36
|
end
|
data/app/views/layouts/phcdevworks_core_modules/components/backend/navigation/_top_menu.html.erb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
<!-- -PHC- Topbar - Navigation Header -->
|
2
2
|
<div class="navbar-header">
|
3
3
|
|
4
|
-
<%= link_to phcdevworks_core_modules.
|
4
|
+
<%= link_to phcdevworks_core_modules.post_categories_path, class: "navbar-brand" do %>
|
5
5
|
<strong>PHCDevworks</strong>Press
|
6
6
|
<% end %>
|
7
7
|
|
data/app/views/layouts/phcdevworks_core_modules/components/backend/sidebars/_side_menu.html.erb
CHANGED
@@ -113,7 +113,7 @@
|
|
113
113
|
<% end %>
|
114
114
|
|
115
115
|
<% if defined?phcdevworks_core_modules %>
|
116
|
-
<!-- -PHC- Sidebar - Sidebar Navigation - PHCDevworks
|
116
|
+
<!-- -PHC- Sidebar - Sidebar Navigation - PHCDevworks Core Modules -->
|
117
117
|
<li class="nav-header">Core Modules</li>
|
118
118
|
<li class="has-sub">
|
119
119
|
<a href="javascript:;">
|
@@ -122,11 +122,22 @@
|
|
122
122
|
<span>Categories</span>
|
123
123
|
</a>
|
124
124
|
<ul class="sub-menu">
|
125
|
-
<li class="<%= phc_menu_active_controller("phcdevworks_core_modules/
|
126
|
-
<li class="<%= phc_menu_active_controller("phcdevworks_core_modules/
|
125
|
+
<li class="<%= phc_menu_active_controller("phcdevworks_core_modules/post/categories") %>"><%= link_to("Category Index", phcdevworks_core_modules.post_categories_path) %></li>
|
126
|
+
<li class="<%= phc_menu_active_controller("phcdevworks_core_modules/post/categories#new") %>"><%= link_to("New Category", phcdevworks_core_modules.new_post_category_path) %></li>
|
127
127
|
</ul>
|
128
128
|
</li>
|
129
|
-
|
129
|
+
<li class="has-sub">
|
130
|
+
<a href="javascript:;">
|
131
|
+
<b class="caret"></b>
|
132
|
+
<i class="fad fa-analytics"></i>
|
133
|
+
<span>Marketing</span>
|
134
|
+
</a>
|
135
|
+
<ul class="sub-menu">
|
136
|
+
<li class="<%= phc_menu_active_controller("phcdevworks_core_modules/marketing/optimizations") %>"><%= link_to("SEO Data Index", phcdevworks_core_modules.marketing_optimizations_path) %></li>
|
137
|
+
<li class="<%= phc_menu_active_controller("phcdevworks_core_modules/marketing/optimizations#new") %>"><%= link_to("Add SEO Data", phcdevworks_core_modules.new_marketing_optimization_path) %></li>
|
138
|
+
</ul>
|
139
|
+
</li>
|
140
|
+
<!-- -PHC- Sidebar - Sidebar Navigation - PHCDevworks Core Modules -->
|
130
141
|
<% end %>
|
131
142
|
|
132
143
|
<% if defined?phcdevworks_members %>
|
@@ -0,0 +1,87 @@
|
|
1
|
+
<!-- Form - Optimization - Post -->
|
2
|
+
<%= form_with(model: marketing_optimization, local: true) do |form| %>
|
3
|
+
|
4
|
+
<!-- PHCNotifi Render Validation -->
|
5
|
+
<%= render "phcdevworks_notifications/bootstrap/validations", :object => @marketing_optimization %>
|
6
|
+
<!-- PHCNotifi Render Validation -->
|
7
|
+
|
8
|
+
<!-- Form Input Fields -->
|
9
|
+
<div class="form-group">
|
10
|
+
<%= form.label :seo_title, "SEO Title" %>
|
11
|
+
<%= form.text_field :seo_title, class: "form-control" %>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div class="form-group">
|
15
|
+
<%= form.label :seo_description, "SEO Description" %>
|
16
|
+
<%= form.text_area :seo_description, class: "form-control" %>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div class="form-group">
|
20
|
+
<%= form.label :seo_open_graph_title, "SEO OG Title" %>
|
21
|
+
<%= form.text_field :seo_open_graph_title, class: "form-control" %>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div class="form-group">
|
25
|
+
<%= form.label :seo_open_graph_description, "SEO OG Description" %>
|
26
|
+
<%= form.text_field :seo_open_graph_description, class: "form-control" %>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<div class="form-group">
|
30
|
+
<%= form.label :seo_open_graph_post_type, "SEO OG Type" %>
|
31
|
+
<%= form.text_field :seo_open_graph_post_type, class: "form-control" %>
|
32
|
+
</div>
|
33
|
+
|
34
|
+
<div class="form-group field_with_errors">
|
35
|
+
<%= form.label :seo_open_graph_image, "Featured Image" %>
|
36
|
+
<%= form.file_field :seo_open_graph_image, class: "form-control" %>
|
37
|
+
<% if form.object.seo_open_graph_image.attached? %>
|
38
|
+
<%= image_tag main_app.url_for(form.object.seo_open_graph_image), class: "img-responsive img-thumbnail" %>
|
39
|
+
<%= form.label :remove_seo_open_graph_image %>
|
40
|
+
<%= form.check_box :remove_seo_open_graph_image %>
|
41
|
+
<% end %>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<div class="form-group">
|
45
|
+
<%= form.label :seo_open_graph_url, "SEO OG URL" %>
|
46
|
+
<%= form.text_field :seo_open_graph_url, class: "form-control" %>
|
47
|
+
</div>
|
48
|
+
|
49
|
+
<div class="form-group">
|
50
|
+
<%= form.label :seo_twitter_title, "SEO Twitter Title" %>
|
51
|
+
<%= form.text_field :seo_twitter_title, class: "form-control" %>
|
52
|
+
</div>
|
53
|
+
|
54
|
+
<div class="form-group">
|
55
|
+
<%= form.label :seo_twitter_description, "SEO Twitter Description" %>
|
56
|
+
<%= form.text_area :seo_twitter_description, class: "form-control" %>
|
57
|
+
</div>
|
58
|
+
|
59
|
+
<div class="form-group">
|
60
|
+
<%= form.label :seo_twitter_post_type, "SEO Twitter Type" %>
|
61
|
+
<%= form.text_field :seo_twitter_post_type, class: "form-control" %>
|
62
|
+
</div>
|
63
|
+
|
64
|
+
<div class="form-group field_with_errors">
|
65
|
+
<%= form.label :seo_twitter_image, "Featured Image" %>
|
66
|
+
<%= form.file_field :seo_twitter_image, class: "form-control" %>
|
67
|
+
<% if form.object.seo_twitter_image.attached? %>
|
68
|
+
<%= image_tag main_app.url_for(form.object.seo_twitter_image), class: "img-responsive img-thumbnail" %>
|
69
|
+
<%= form.label :remove_seo_twitter_image %>
|
70
|
+
<%= form.check_box :remove_seo_twitter_image %>
|
71
|
+
<% end %>
|
72
|
+
</div>
|
73
|
+
|
74
|
+
<div class="form-group">
|
75
|
+
<%= form.label :seo_twitter_url, "SEO Twitter URL" %>
|
76
|
+
<%= form.text_field :seo_twitter_url, class: "form-control" %>
|
77
|
+
</div>
|
78
|
+
<!-- Form Input Fields -->
|
79
|
+
|
80
|
+
<!-- Form Submition Button -->
|
81
|
+
<div class="actions">
|
82
|
+
<%= form.submit class: "btn btn-primary" %>
|
83
|
+
</div>
|
84
|
+
<!-- For Submition Button -->
|
85
|
+
|
86
|
+
<% end %>
|
87
|
+
<!-- Form - Optimization - Post -->
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<!-- PHCTitleSEO Title Variables -->
|
2
|
+
<% phc_title "Marketing Manager" %>
|
3
|
+
<% phc_title_tagline "Update SEO Data" %>
|
4
|
+
<% phc_breadcrumb_one yield(:phc_title_tagline) %>
|
5
|
+
<% phc_breadcrumb_two link_to "SEO Data Index", phcdevworks_core_modules.marketing_optimizations_path %>
|
6
|
+
<!-- PHCTitleSEO Title Variables -->
|
7
|
+
|
8
|
+
<!-- Page Bradcrumbs -->
|
9
|
+
<ol class="breadcrumb pull-right">
|
10
|
+
<li class="breadcrumb-item"><%= yield(:phc_breadcrumb_one) %></li>
|
11
|
+
<li class="breadcrumb-item active"><%= yield(:phc_breadcrumb_two) %></li>
|
12
|
+
</ol>
|
13
|
+
<!-- Page Bradcrumbs -->
|
14
|
+
|
15
|
+
<!-- Page Header -->
|
16
|
+
<h2 class="page-header"><%= yield(:phc_title) %></h2>
|
17
|
+
<!-- Page Header -->
|
18
|
+
|
19
|
+
<!-- Page Content -->
|
20
|
+
<div class="row">
|
21
|
+
<div class="col-lg-12">
|
22
|
+
|
23
|
+
<!-- Panel -->
|
24
|
+
<div class="panel panel-inverse">
|
25
|
+
|
26
|
+
<!-- Panel - Heading -->
|
27
|
+
<div class="panel-heading">
|
28
|
+
<h4 class="panel-title"><%= yield(:phc_title) %></h4>
|
29
|
+
</div>
|
30
|
+
<!-- Panel - Heading -->
|
31
|
+
|
32
|
+
<!-- Panel - Body -->
|
33
|
+
<div class="panel-body">
|
34
|
+
|
35
|
+
<!-- Edit Form -->
|
36
|
+
<%= render 'form', marketing_optimization: @marketing_optimization %>
|
37
|
+
<!-- Edit Form -->
|
38
|
+
|
39
|
+
</div>
|
40
|
+
<!-- Panel - Body -->
|
41
|
+
|
42
|
+
</div>
|
43
|
+
<!-- Panel -->
|
44
|
+
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
<!-- Page Content -->
|
@@ -0,0 +1,88 @@
|
|
1
|
+
<!-- PHCTitleSEO Title Variables -->
|
2
|
+
<% phc_title "Marketing Manager" %>
|
3
|
+
<% phc_title_tagline "SEO Data Index" %>
|
4
|
+
<% phc_breadcrumb_one yield(:phc_title_tagline) %>
|
5
|
+
<% phc_breadcrumb_two link_to "SEO Data Index", phcdevworks_core_modules.marketing_optimizations_path %>
|
6
|
+
<!-- PHCTitleSEO Title Variables -->
|
7
|
+
|
8
|
+
<!-- Page Bradcrumbs -->
|
9
|
+
<ol class="breadcrumb pull-right">
|
10
|
+
<li class="breadcrumb-item"><%= yield(:phc_breadcrumb_one) %></li>
|
11
|
+
<li class="breadcrumb-item active"><%= yield(:phc_breadcrumb_two) %></li>
|
12
|
+
</ol>
|
13
|
+
<!-- Page Bradcrumbs -->
|
14
|
+
|
15
|
+
<!-- Page Header -->
|
16
|
+
<h2 class="page-header"><%= yield(:phc_title) %></h2>
|
17
|
+
<!-- Page Header -->
|
18
|
+
|
19
|
+
<!-- Page Content -->
|
20
|
+
<div class="row">
|
21
|
+
<div class="col-lg-12">
|
22
|
+
|
23
|
+
<!-- Panel -->
|
24
|
+
<div class="panel panel-inverse">
|
25
|
+
|
26
|
+
<!-- Panel - Heading -->
|
27
|
+
<div class="panel-heading">
|
28
|
+
<h4 class="panel-title"><%= yield(:phc_title) %></h4>
|
29
|
+
</div>
|
30
|
+
<!-- Panel - Heading -->
|
31
|
+
|
32
|
+
<!-- Panel - Body -->
|
33
|
+
<div class="panel-body">
|
34
|
+
|
35
|
+
<!-- Index - Table -->
|
36
|
+
<div class="table-responsive">
|
37
|
+
<table class="table table-striped table-bordered">
|
38
|
+
|
39
|
+
<thead>
|
40
|
+
<tr>
|
41
|
+
<th>SEO Title</th>
|
42
|
+
<th>SEO OG Title</th>
|
43
|
+
<th>SEO OG Type</th>
|
44
|
+
<th>SEO Twitter Title</th>
|
45
|
+
<th>SEO Twitter Type</th>
|
46
|
+
<th></th>
|
47
|
+
</tr>
|
48
|
+
</thead>
|
49
|
+
|
50
|
+
<tbody>
|
51
|
+
<% @marketing_optimizations.each do |marketing_optimization| %>
|
52
|
+
<tr>
|
53
|
+
<td><%= marketing_optimization.seo_title %></td>
|
54
|
+
<td><%= marketing_optimization.seo_open_graph_title %></td>
|
55
|
+
<td><%= marketing_optimization.seo_open_graph_post_type %></td>
|
56
|
+
<td><%= marketing_optimization.seo_twitter_title %></td>
|
57
|
+
<td><%= marketing_optimization.seo_twitter_post_type %></td>
|
58
|
+
<td>
|
59
|
+
<div class="btn-group d-flex" role="group">
|
60
|
+
<%= link_to "SEO Details", marketing_optimization, class: "btn btn-purple btn-xs" %>
|
61
|
+
<%= link_to "Update Information", edit_marketing_optimization_path(marketing_optimization), class: "btn btn-primary btn-xs" %>
|
62
|
+
<%= link_to "Remove", marketing_optimization, method: :delete, data: { confirm: "Are you sure? This action cannot be reversed." }, class: "btn btn-danger btn-xs" %>
|
63
|
+
</div>
|
64
|
+
</td>
|
65
|
+
</tr>
|
66
|
+
<% end %>
|
67
|
+
</tbody>
|
68
|
+
|
69
|
+
</table>
|
70
|
+
</div>
|
71
|
+
<!-- Index - Table -->
|
72
|
+
|
73
|
+
<!-- New Button -->
|
74
|
+
<%= link_to phcdevworks_core_modules.new_marketing_optimization_path, class: "btn btn-primary btn-sm" do %>
|
75
|
+
<i class="fad fa-plus-circle"></i>
|
76
|
+
Add a SEO Data for a Post
|
77
|
+
<% end %>
|
78
|
+
<!-- New Button -->
|
79
|
+
|
80
|
+
</div>
|
81
|
+
<!-- Panel - Body -->
|
82
|
+
|
83
|
+
</div>
|
84
|
+
<!-- Panel -->
|
85
|
+
|
86
|
+
</div>
|
87
|
+
</div>
|
88
|
+
<!-- Page Content -->
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<!-- PHCTitleSEO Title Variables -->
|
2
|
+
<% phc_title "Marketing Manager" %>
|
3
|
+
<% phc_title_tagline "Add New SEO Data" %>
|
4
|
+
<% phc_breadcrumb_one yield(:phc_title_tagline) %>
|
5
|
+
<% phc_breadcrumb_two link_to "SEO Data Index", phcdevworks_core_modules.marketing_optimizations_path %>
|
6
|
+
<!-- PHCTitleSEO Title Variables -->
|
7
|
+
|
8
|
+
<!-- Page Bradcrumbs -->
|
9
|
+
<ol class="breadcrumb pull-right">
|
10
|
+
<li class="breadcrumb-item"><%= yield(:phc_breadcrumb_one) %></li>
|
11
|
+
<li class="breadcrumb-item active"><%= yield(:phc_breadcrumb_two) %></li>
|
12
|
+
</ol>
|
13
|
+
<!-- Page Bradcrumbs -->
|
14
|
+
|
15
|
+
<!-- Page Header -->
|
16
|
+
<h2 class="page-header"><%= yield(:phc_title) %></h2>
|
17
|
+
<!-- Page Header -->
|
18
|
+
|
19
|
+
<!-- Page Content -->
|
20
|
+
<div class="row">
|
21
|
+
<div class="col-lg-12">
|
22
|
+
|
23
|
+
<!-- Panel -->
|
24
|
+
<div class="panel panel-inverse">
|
25
|
+
|
26
|
+
<!-- Panel - Heading -->
|
27
|
+
<div class="panel-heading">
|
28
|
+
<h4 class="panel-title"><%= yield(:phc_title) %></h4>
|
29
|
+
</div>
|
30
|
+
<!-- Panel - Heading -->
|
31
|
+
|
32
|
+
<!-- Panel - Body -->
|
33
|
+
<div class="panel-body">
|
34
|
+
|
35
|
+
<!-- New Form -->
|
36
|
+
<%= render 'form', marketing_optimization: @marketing_optimization %>
|
37
|
+
<!-- Edit Form -->
|
38
|
+
|
39
|
+
</div>
|
40
|
+
<!-- Panel - Body -->
|
41
|
+
|
42
|
+
</div>
|
43
|
+
<!-- Panel -->
|
44
|
+
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
<!-- Page Content -->
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<p id="notice"><%= notice %></p>
|
2
|
+
|
3
|
+
<p>
|
4
|
+
<strong>Seo title:</strong>
|
5
|
+
<%= @marketing_optimization.seo_title %>
|
6
|
+
</p>
|
7
|
+
|
8
|
+
<p>
|
9
|
+
<strong>Seo description:</strong>
|
10
|
+
<%= @marketing_optimization.seo_description %>
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<p>
|
14
|
+
<strong>Seo open graph type:</strong>
|
15
|
+
<%= @marketing_optimization.seo_open_graph_type %>
|
16
|
+
</p>
|
17
|
+
|
18
|
+
<p>
|
19
|
+
<strong>Seo open graph url:</strong>
|
20
|
+
<%= @marketing_optimization.seo_open_graph_url %>
|
21
|
+
</p>
|
22
|
+
|
23
|
+
<p>
|
24
|
+
<strong>Seo open graph title:</strong>
|
25
|
+
<%= @marketing_optimization.seo_open_graph_title %>
|
26
|
+
</p>
|
27
|
+
|
28
|
+
<p>
|
29
|
+
<strong>Seo open graph description:</strong>
|
30
|
+
<%= @marketing_optimization.seo_open_graph_description %>
|
31
|
+
</p>
|
32
|
+
|
33
|
+
<p>
|
34
|
+
<strong>Seo twitter url:</strong>
|
35
|
+
<%= @marketing_optimization.seo_twitter_url %>
|
36
|
+
</p>
|
37
|
+
|
38
|
+
<p>
|
39
|
+
<strong>Seo twitter title:</strong>
|
40
|
+
<%= @marketing_optimization.seo_twitter_title %>
|
41
|
+
</p>
|
42
|
+
|
43
|
+
<p>
|
44
|
+
<strong>Seo twitter description:</strong>
|
45
|
+
<%= @marketing_optimization.seo_twitter_description %>
|
46
|
+
</p>
|
47
|
+
|
48
|
+
<%= link_to 'Edit', edit_marketing_optimization_path(@marketing_optimization) %> |
|
49
|
+
<%= link_to 'Back', marketing_optimizations_path %>
|
@@ -1,8 +1,8 @@
|
|
1
|
-
<!-- Form -
|
2
|
-
<%= form_with(model:
|
1
|
+
<!-- Form - Category -->
|
2
|
+
<%= form_with(model: post_category, local: true) do |form| %>
|
3
3
|
|
4
|
-
|
5
|
-
<%= render "phcdevworks_notifications/bootstrap/validations", :object => @
|
4
|
+
<!-- PHCNotifi Render Validation -->
|
5
|
+
<%= render "phcdevworks_notifications/bootstrap/validations", :object => @post_category %>
|
6
6
|
<!-- PHCNotifi Render Validation -->
|
7
7
|
|
8
8
|
<!-- Form Input Fields -->
|
@@ -19,4 +19,4 @@
|
|
19
19
|
<!-- For Submition Button -->
|
20
20
|
|
21
21
|
<% end %>
|
22
|
-
<!-- Form -
|
22
|
+
<!-- Form - Category -->
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<% phc_title "Category Manager" %>
|
3
3
|
<% phc_title_tagline "Update Category" %>
|
4
4
|
<% phc_breadcrumb_one yield(:phc_title_tagline) %>
|
5
|
-
<% phc_breadcrumb_two link_to "Category Index", phcdevworks_core_modules.
|
5
|
+
<% phc_breadcrumb_two link_to "Category Index", phcdevworks_core_modules.post_categories_path %>
|
6
6
|
<!-- PHCTitleSEO Title Variables -->
|
7
7
|
|
8
8
|
<!-- Page Bradcrumbs -->
|
@@ -33,7 +33,7 @@
|
|
33
33
|
<div class="panel-body">
|
34
34
|
|
35
35
|
<!-- Edit Form -->
|
36
|
-
<%= render 'form',
|
36
|
+
<%= render 'form', post_category: @post_category %>
|
37
37
|
<!-- Edit Form -->
|
38
38
|
|
39
39
|
</div>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<% phc_title "Category Manager" %>
|
3
3
|
<% phc_title_tagline "Category Index" %>
|
4
4
|
<% phc_breadcrumb_one yield(:phc_title_tagline) %>
|
5
|
-
<% phc_breadcrumb_two link_to "Category Index", phcdevworks_core_modules.
|
5
|
+
<% phc_breadcrumb_two link_to "Category Index", phcdevworks_core_modules.post_categories_path %>
|
6
6
|
<!-- PHCTitleSEO Title Variables -->
|
7
7
|
|
8
8
|
<!-- Page Bradcrumbs -->
|
@@ -44,14 +44,14 @@
|
|
44
44
|
</thead>
|
45
45
|
|
46
46
|
<tbody>
|
47
|
-
<% @
|
47
|
+
<% @post_categories.each do |post_category| %>
|
48
48
|
<tr>
|
49
|
-
<td><%=
|
49
|
+
<td><%= post_category.category_name %></td>
|
50
50
|
<td>
|
51
51
|
<div class="btn-group d-flex" role="group">
|
52
|
-
<%= link_to "Category Details",
|
53
|
-
<%= link_to "Update Category",
|
54
|
-
<%= link_to "Remove Category",
|
52
|
+
<%= link_to "Category Details", post_category, class: "btn btn-purple btn-xs" %>
|
53
|
+
<%= link_to "Update Category", edit_post_category_path(post_category), class: "btn btn-primary btn-xs" %>
|
54
|
+
<%= link_to "Remove Category", post_category, method: :delete, data: { confirm: "Are you sure? This action cannot be reversed." }, class: "btn btn-danger btn-xs" %>
|
55
55
|
</div>
|
56
56
|
</td>
|
57
57
|
</tr>
|
@@ -63,7 +63,7 @@
|
|
63
63
|
<!-- Index - Table -->
|
64
64
|
|
65
65
|
<!-- New Button -->
|
66
|
-
<%= link_to phcdevworks_core_modules.
|
66
|
+
<%= link_to phcdevworks_core_modules.new_post_category_path, class: "btn btn-primary btn-sm" do %>
|
67
67
|
<i class="fad fa-plus-circle"></i>
|
68
68
|
Add a New Category
|
69
69
|
<% end %>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<% phc_title "Category Manager" %>
|
3
3
|
<% phc_title_tagline "Add a New Category" %>
|
4
4
|
<% phc_breadcrumb_one yield(:phc_title_tagline) %>
|
5
|
-
<% phc_breadcrumb_two link_to "Category Index", phcdevworks_core_modules.
|
5
|
+
<% phc_breadcrumb_two link_to "Category Index", phcdevworks_core_modules.post_categories_path %>
|
6
6
|
<!-- PHCTitleSEO Title Variables -->
|
7
7
|
|
8
8
|
<!-- Page Bradcrumbs -->
|
@@ -33,7 +33,7 @@
|
|
33
33
|
<div class="panel-body">
|
34
34
|
|
35
35
|
<!-- New Form -->
|
36
|
-
<%= render 'form',
|
36
|
+
<%= render 'form', post_category: @post_category %>
|
37
37
|
<!-- Edit Form -->
|
38
38
|
|
39
39
|
</div>
|
data/config/routes.rb
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
PhcdevworksCoreModules::Engine.routes.draw do
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
# Routes for Posts
|
4
|
+
namespace :post do
|
5
|
+
resources :categories, class_name: 'Post::Category'
|
6
|
+
end
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
# Routes for Marketing
|
9
|
+
namespace :marketing do
|
10
|
+
resources :optimizations, class_name: 'Marketing::Optimization'
|
11
|
+
end
|
12
|
+
|
13
|
+
# Mount Routes
|
14
|
+
mount PhcdevworksAccounts::Engine, :at => '/'
|
10
15
|
|
11
16
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class CreatePhcdevworksCoreModulesCategoryVersions < ActiveRecord::Migration[6.0]
|
2
|
+
TEXT_BYTES = 1_073_741_823
|
3
|
+
def change
|
4
|
+
|
5
|
+
create_table :phcdevworks_core_modules_category_versions do |t|
|
6
|
+
t.string :item_type, {:null=>false}
|
7
|
+
t.integer :item_id, null: false
|
8
|
+
t.string :event, null: false
|
9
|
+
t.string :whodunnit
|
10
|
+
t.text :object, limit: TEXT_BYTES
|
11
|
+
t.datetime :created_at
|
12
|
+
end
|
13
|
+
|
14
|
+
add_index :phcdevworks_core_modules_category_versions, %i(item_type item_id), :name => 'core_category_versions'
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class CreatePhcdevworksCoreModulesMarketingOptimizations < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :phcdevworks_core_modules_marketing_optimizations do |t|
|
4
|
+
|
5
|
+
t.string :seo_title
|
6
|
+
t.text :seo_description
|
7
|
+
|
8
|
+
t.string :seo_open_graph_post_type
|
9
|
+
t.string :seo_open_graph_url
|
10
|
+
t.string :seo_open_graph_title
|
11
|
+
t.text :seo_open_graph_description
|
12
|
+
|
13
|
+
t.string :seo_twitter_post_type
|
14
|
+
t.string :seo_twitter_url
|
15
|
+
t.string :seo_twitter_title
|
16
|
+
t.text :seo_twitter_description
|
17
|
+
|
18
|
+
t.string :slug
|
19
|
+
t.string :user_id
|
20
|
+
t.string :org_id
|
21
|
+
t.timestamps
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -1,17 +1,17 @@
|
|
1
|
-
class
|
2
|
-
TEXT_BYTES = 1_073_741_823
|
3
|
-
def change
|
4
|
-
|
5
|
-
create_table :
|
6
|
-
t.string :item_type, {:null=>false}
|
7
|
-
t.integer :item_id, null: false
|
8
|
-
t.string :event, null: false
|
9
|
-
t.string :whodunnit
|
10
|
-
t.text :object, limit: TEXT_BYTES
|
11
|
-
t.datetime :created_at
|
12
|
-
end
|
13
|
-
|
14
|
-
add_index :
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
1
|
+
class CreatePhcdevworksCoreModulesOptimizationVersions < ActiveRecord::Migration[6.0]
|
2
|
+
TEXT_BYTES = 1_073_741_823
|
3
|
+
def change
|
4
|
+
|
5
|
+
create_table :phcdevworks_core_modules_optimization_versions do |t|
|
6
|
+
t.string :item_type, {:null=>false}
|
7
|
+
t.integer :item_id, null: false
|
8
|
+
t.string :event, null: false
|
9
|
+
t.string :whodunnit
|
10
|
+
t.text :object, limit: TEXT_BYTES
|
11
|
+
t.datetime :created_at
|
12
|
+
end
|
13
|
+
|
14
|
+
add_index :phcdevworks_core_modules_optimization_versions, %i(item_type item_id), :name => 'core_optimize_versions'
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
class
|
1
|
+
class CreatePhcdevworksCoreModulesPostCategories < ActiveRecord::Migration[6.0]
|
2
2
|
def change
|
3
|
-
create_table :
|
3
|
+
create_table :phcdevworks_core_modules_post_categories do |t|
|
4
4
|
|
5
5
|
t.string :category_name
|
6
6
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phcdevworks_core_modules
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- PHCDevworks
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06
|
11
|
+
date: 2020-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -232,14 +232,14 @@ dependencies:
|
|
232
232
|
requirements:
|
233
233
|
- - "~>"
|
234
234
|
- !ruby/object:Gem::Version
|
235
|
-
version: '1.
|
235
|
+
version: '1.13'
|
236
236
|
type: :runtime
|
237
237
|
prerelease: false
|
238
238
|
version_requirements: !ruby/object:Gem::Requirement
|
239
239
|
requirements:
|
240
240
|
- - "~>"
|
241
241
|
- !ruby/object:Gem::Version
|
242
|
-
version: '1.
|
242
|
+
version: '1.13'
|
243
243
|
- !ruby/object:Gem::Dependency
|
244
244
|
name: sqlite3
|
245
245
|
requirement: !ruby/object:Gem::Requirement
|
@@ -266,29 +266,48 @@ files:
|
|
266
266
|
- Rakefile
|
267
267
|
- app/assets/config/phcdevworks_core_modules_manifest.js
|
268
268
|
- app/assets/javascripts/phcdevworks_core_modules/application.js
|
269
|
+
- app/assets/javascripts/phcdevworks_core_modules/marketing/optimizations.coffee
|
270
|
+
- app/assets/javascripts/phcdevworks_core_modules/post/categories.coffee
|
269
271
|
- app/assets/stylesheets/phcdevworks_core_modules/application.scss
|
272
|
+
- app/assets/stylesheets/phcdevworks_core_modules/marketing/optimizations.scss
|
273
|
+
- app/assets/stylesheets/phcdevworks_core_modules/post/categories.scss
|
274
|
+
- app/assets/stylesheets/scaffolds.scss
|
270
275
|
- app/controllers/phcdevworks_core_modules/application_controller.rb
|
271
|
-
- app/controllers/phcdevworks_core_modules/
|
276
|
+
- app/controllers/phcdevworks_core_modules/marketing/optimizations_controller.rb
|
277
|
+
- app/controllers/phcdevworks_core_modules/post/categories_controller.rb
|
272
278
|
- app/helpers/phcdevworks_core_modules/application_helper.rb
|
273
|
-
- app/helpers/phcdevworks_core_modules/
|
279
|
+
- app/helpers/phcdevworks_core_modules/marketing/optimizations_helper.rb
|
280
|
+
- app/helpers/phcdevworks_core_modules/post/categories_helper.rb
|
274
281
|
- app/jobs/phcdevworks_core_modules/application_job.rb
|
275
282
|
- app/mailers/phcdevworks_core_modules/application_mailer.rb
|
276
283
|
- app/models/phcdevworks_core_modules/application_record.rb
|
277
284
|
- app/models/phcdevworks_core_modules/core_category_versions.rb
|
285
|
+
- app/models/phcdevworks_core_modules/core_optimization_versions.rb
|
286
|
+
- app/models/phcdevworks_core_modules/marketing.rb
|
287
|
+
- app/models/phcdevworks_core_modules/marketing/optimization.rb
|
278
288
|
- app/models/phcdevworks_core_modules/modules.rb
|
279
|
-
- app/models/phcdevworks_core_modules/
|
289
|
+
- app/models/phcdevworks_core_modules/post.rb
|
290
|
+
- app/models/phcdevworks_core_modules/post/category.rb
|
280
291
|
- app/views/layouts/phcdevworks_core_modules/application.html.erb
|
281
292
|
- app/views/layouts/phcdevworks_core_modules/components/backend/footer/_footer.html.erb
|
282
293
|
- app/views/layouts/phcdevworks_core_modules/components/backend/navigation/_top_menu.html.erb
|
283
294
|
- app/views/layouts/phcdevworks_core_modules/components/backend/sidebars/_side_menu.html.erb
|
284
|
-
- app/views/phcdevworks_core_modules/
|
285
|
-
- app/views/phcdevworks_core_modules/
|
286
|
-
- app/views/phcdevworks_core_modules/
|
287
|
-
- app/views/phcdevworks_core_modules/
|
288
|
-
- app/views/phcdevworks_core_modules/
|
295
|
+
- app/views/phcdevworks_core_modules/marketing/optimizations/_form.html.erb
|
296
|
+
- app/views/phcdevworks_core_modules/marketing/optimizations/edit.html.erb
|
297
|
+
- app/views/phcdevworks_core_modules/marketing/optimizations/index.html.erb
|
298
|
+
- app/views/phcdevworks_core_modules/marketing/optimizations/new.html.erb
|
299
|
+
- app/views/phcdevworks_core_modules/marketing/optimizations/show.html.erb
|
300
|
+
- app/views/phcdevworks_core_modules/post/categories/_form.html.erb
|
301
|
+
- app/views/phcdevworks_core_modules/post/categories/edit.html.erb
|
302
|
+
- app/views/phcdevworks_core_modules/post/categories/index.html.erb
|
303
|
+
- app/views/phcdevworks_core_modules/post/categories/new.html.erb
|
304
|
+
- app/views/phcdevworks_core_modules/post/categories/show.html.erb
|
289
305
|
- config/routes.rb
|
290
|
-
- db/migrate/
|
291
|
-
- db/migrate/
|
306
|
+
- db/migrate/20170517064427_create_phcdevworks_core_modules_category_versions.rb
|
307
|
+
- db/migrate/20200705223718_create_phcdevworks_core_modules_marketing_optimizations.rb
|
308
|
+
- db/migrate/20200705225433_create_phcdevworks_core_modules_optimization_versions.rb
|
309
|
+
- db/migrate/20200706091346_create_phcdevworks_core_modules_categories_optimizations.rb
|
310
|
+
- db/migrate/20200706094820_create_phcdevworks_core_modules_post_categories.rb
|
292
311
|
- lib/phcdevworks_core_modules.rb
|
293
312
|
- lib/phcdevworks_core_modules/engine.rb
|
294
313
|
- lib/phcdevworks_core_modules/version.rb
|
@@ -1,81 +0,0 @@
|
|
1
|
-
require_dependency "phcdevworks_core_modules/application_controller"
|
2
|
-
|
3
|
-
module PhcdevworksCoreModules
|
4
|
-
class Modules::CategoriesController < ApplicationController
|
5
|
-
|
6
|
-
# Filters & Security
|
7
|
-
#include PhcdevworksCore::PhcpluginsHelper
|
8
|
-
before_action :authenticate_user!
|
9
|
-
before_action :set_paper_trail_whodunnit
|
10
|
-
before_action :set_modules_category, only: [:show, :edit, :update, :destroy]
|
11
|
-
|
12
|
-
# GET /modules/categories
|
13
|
-
def index
|
14
|
-
@modules_categories = Modules::Category.all
|
15
|
-
end
|
16
|
-
|
17
|
-
# GET /modules/categories/1
|
18
|
-
def show
|
19
|
-
end
|
20
|
-
|
21
|
-
# GET /modules/categories/new
|
22
|
-
def new
|
23
|
-
@modules_category = Modules::Category.new
|
24
|
-
end
|
25
|
-
|
26
|
-
# GET /modules/categories/1/edit
|
27
|
-
def edit
|
28
|
-
end
|
29
|
-
|
30
|
-
# POST /modules/categories
|
31
|
-
def create
|
32
|
-
@modules_category = Modules::Category.new(modules_category_params)
|
33
|
-
@modules_category.user_id = current_user.id
|
34
|
-
@modules_category.org_id = current_user.org_id
|
35
|
-
respond_to do |format|
|
36
|
-
if @modules_category.save
|
37
|
-
format.html { redirect_to modules_categories_path, :flash => { :success => 'Category has been Added.' }}
|
38
|
-
format.json { render :show, status: :created, location: @modules_category }
|
39
|
-
else
|
40
|
-
format.html { render :new }
|
41
|
-
format.json { render json: @modules_category.errors, status: :unprocessable_entity }
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
# PATCH/PUT /modules/categories/1
|
47
|
-
def update
|
48
|
-
respond_to do |format|
|
49
|
-
if @modules_category.update(modules_category_params)
|
50
|
-
format.html { redirect_to modules_categories_path, :flash => { :notice => 'Tutorial has been Updated.' }}
|
51
|
-
format.json { render :show, status: :ok, location: @modules_category }
|
52
|
-
else
|
53
|
-
format.html { render :edit }
|
54
|
-
format.json { render json: @modules_category.errors, status: :unprocessable_entity }
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
# DELETE /modules/categories/1
|
60
|
-
def destroy
|
61
|
-
@modules_category.destroy
|
62
|
-
respond_to do |format|
|
63
|
-
format.html { redirect_to modules_categories_path, :flash => { :error => 'Categories and Category Connections have all been Removed.' }}
|
64
|
-
format.json { head :no_content }
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
private
|
69
|
-
|
70
|
-
# Common Callbacks
|
71
|
-
def set_modules_category
|
72
|
-
@modules_category = Modules::Category.find(params[:id])
|
73
|
-
end
|
74
|
-
|
75
|
-
# Whitelist
|
76
|
-
def modules_category_params
|
77
|
-
params.require(:modules_category).permit(:category_name)
|
78
|
-
end
|
79
|
-
|
80
|
-
end
|
81
|
-
end
|