pulitzer 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/pulitzer.scss +14 -0
- data/app/controllers/pulitzer/content_elements_controller.rb +28 -6
- data/app/controllers/pulitzer/posts_controller.rb +1 -1
- data/app/controllers/pulitzer/versions_controller.rb +1 -1
- data/app/interactions/pulitzer/create_post_content_elements.rb +20 -0
- data/app/interactions/pulitzer/create_post_type_content_elements.rb +5 -2
- data/app/interactions/pulitzer/create_singleton_post.rb +1 -1
- data/app/interactions/pulitzer/update_post_type_content_elements.rb +7 -2
- data/app/models/pulitzer/content_element.rb +12 -1
- data/app/models/pulitzer/post_type.rb +11 -2
- data/app/models/pulitzer/post_type_content_element_type.rb +1 -0
- data/app/models/pulitzer/version.rb +8 -0
- data/app/views/pulitzer/content_elements/_form.html.erb +0 -1
- data/app/views/pulitzer/content_elements/_new.html.erb +25 -0
- data/app/views/pulitzer/content_elements/_show.html.erb +10 -1
- data/app/views/pulitzer/content_elements/index.html.erb +20 -3
- data/app/views/pulitzer/post_types/_form.html.erb +2 -7
- data/app/views/pulitzer/post_types/_form_fields.html.erb +5 -0
- data/app/views/pulitzer/post_types/_new.html.erb +2 -7
- data/app/views/pulitzer/post_types/_show.html.erb +5 -3
- data/app/views/pulitzer/shared/_drag_handle.html.erb +5 -0
- data/config/routes.rb +5 -1
- data/db/migrate/20151113183344_add_post_type_content_element_attributes_to_content_elements.rb +21 -0
- data/db/migrate/20151116162508_change_template_to_pulitzer_post_types.rb +11 -0
- data/db/migrate/20151118031237_add_kind_to_pulitzer_content_elements.rb +5 -0
- data/lib/pulitzer/version.rb +1 -1
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20151113220908_add_post_type_content_element_attributes_to_content_elements.pulitzer.rb +22 -0
- data/test/dummy/db/migrate/20151116162913_change_template_to_pulitzer_post_types.pulitzer.rb +12 -0
- data/test/dummy/db/migrate/20151118032759_add_kind_to_pulitzer_content_elements.pulitzer.rb +6 -0
- data/test/dummy/db/schema.rb +11 -6
- data/test/dummy/log/development.log +59506 -0
- data/test/dummy/public/uploads/pulitzer/content_element/image/19/pic05.jpeg +0 -0
- data/test/dummy/public/uploads/pulitzer/content_element/image/19/thumb_pic05.jpeg +0 -0
- data/test/dummy/public/uploads/pulitzer/content_element/image/3/pic05.jpeg +0 -0
- data/test/dummy/public/uploads/pulitzer/content_element/image/3/thumb_pic05.jpeg +0 -0
- data/test/dummy/public/uploads/pulitzer/content_element/image/9/pic09.jpeg +0 -0
- data/test/dummy/public/uploads/pulitzer/content_element/image/9/thumb_pic09.jpeg +0 -0
- data/test/dummy/tmp/cache/assets/development/sass/be077259a59c14e0a5302a785899c0b92a0ab91a/pulitzer.scssc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/06862801abb8c401568d01a7b3970906 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/16350d0e2f0ffb7c3b31e13f258e3156 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/184aa42aaf70a897286717ad9402c2b6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/35abf4d57a1db03bc7222f13bb471ed6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3b7b7eee503242b1d315d26c7b5cddee +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3d7cea3aafdb779f3c95b4622ee7fe69 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/441051494a96f6dc5a93d5f1de2509a8 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6874b7cce999f4e5a651c0057aa61887 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/716a56329ace76625a8413db5ce5b9bd +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/7b287d7c33e17041f8f5577f59cc9259 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/832a1e5e324a689cbe7b649c5b62a2a4 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8ad2677bfa97184ea04003bbc872d39f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/94c7ec6491f0f98ab102d34dda6b2923 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ac2cc187578b49d22d5abf2234f78969 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ae53ef709d6f5d0222ec079134304c87 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c96181a2cb6ed1e5bed0c307492314dd +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c9fb0a1fca85341be25487d4f49c2919 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/cf69498eaa29a42d5020469d6ca1ae64 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d992a7e563789c6fc0b51e4aaa59ce58 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e820891ae5f960b3ff5216476234fbe2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/fe22c42cc33c405b1fdc1105e0972a77 +0 -0
- metadata +63 -3
- data/app/interactions/pulitzer/setup_post_elements.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1a21389d2d52313083f4e7d7ea067ac90ae0dab
|
4
|
+
data.tar.gz: 52b6aa62689710bdd817773fdb4384aa18c3d8d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc2ee6693517dcf76fe0ec32f6f090e5fef6b71bfdeb663bfc68f1078164e5f17856202b2057a9ac276d51be45af18e7d0171c4411104dcd11bb03de1af23b4a
|
7
|
+
data.tar.gz: 71c364ad79775cca1f5141bc79a2e0d40eb7c9dad265b77f4173727b1964ae867b7c8223bf6a22373d3bc552defefdb5078170da249c6ce7f5af02fa5cb28c8b
|
@@ -159,3 +159,17 @@ textarea {
|
|
159
159
|
.wysihtml5-sandbox {
|
160
160
|
width: 100% !important;
|
161
161
|
}
|
162
|
+
|
163
|
+
.drag_handle {
|
164
|
+
margin-top: 6px;
|
165
|
+
width: 12px;
|
166
|
+
height: 9px;
|
167
|
+
.drag_handle_indent {
|
168
|
+
width: 100%;
|
169
|
+
height: 2px;
|
170
|
+
margin-bottom: 1px;
|
171
|
+
background-color: #e6e6e6;
|
172
|
+
border-top: 1px solid #636564;
|
173
|
+
border-left: 1px solid #636564;
|
174
|
+
}
|
175
|
+
}
|
@@ -1,11 +1,24 @@
|
|
1
1
|
class Pulitzer::ContentElementsController < Pulitzer::ApplicationController
|
2
|
-
before_filter :
|
2
|
+
before_filter :set_content_element, only: [:show, :edit, :update]
|
3
3
|
|
4
4
|
def index
|
5
|
-
@post
|
6
|
-
@content_elements
|
7
|
-
|
8
|
-
|
5
|
+
@post = Pulitzer::Post.find(params[:post_id])
|
6
|
+
@content_elements = @post.preview_version.template_content_elements
|
7
|
+
@free_form_content_elements = @post.preview_version.free_form_content_elements
|
8
|
+
route = "pulitzer_preview_#{@post.title.parameterize('_')}_path"
|
9
|
+
@preview_path = main_app.public_send(route) if main_app.respond_to?(route)
|
10
|
+
end
|
11
|
+
|
12
|
+
def new
|
13
|
+
@version = Pulitzer::Version.find params[:version_id]
|
14
|
+
@content_element = @version.content_elements.build
|
15
|
+
render partial: 'new', locals: { content_element: @content_element, version: @version }
|
16
|
+
end
|
17
|
+
|
18
|
+
def create
|
19
|
+
@version = Pulitzer::Version.find content_element_params[:version_id]
|
20
|
+
@content_element = @version.content_elements.create content_element_params
|
21
|
+
render partial: 'show_wrapper', locals: { content_element: @content_element }
|
9
22
|
end
|
10
23
|
|
11
24
|
def show
|
@@ -21,13 +34,22 @@ class Pulitzer::ContentElementsController < Pulitzer::ApplicationController
|
|
21
34
|
render partial: 'show', locals: { content_element: @content_element }
|
22
35
|
end
|
23
36
|
|
37
|
+
def update_all
|
38
|
+
content_elements = Pulitzer::ContentElement.find params[:content_element]
|
39
|
+
content_elements.each do |ce|
|
40
|
+
new_sort_order = params[:content_element].index(ce.id.to_s)
|
41
|
+
ce.update_attribute(:sort_order, new_sort_order)
|
42
|
+
end
|
43
|
+
render nothing: true
|
44
|
+
end
|
45
|
+
|
24
46
|
protected
|
25
47
|
|
26
48
|
def content_element_params
|
27
49
|
params[:content_element].permit!
|
28
50
|
end
|
29
51
|
|
30
|
-
def
|
52
|
+
def set_content_element
|
31
53
|
@content_element = Pulitzer::ContentElement.find(params[:id])
|
32
54
|
end
|
33
55
|
end
|
@@ -13,7 +13,7 @@ class Pulitzer::PostsController < Pulitzer::ApplicationController
|
|
13
13
|
|
14
14
|
def create
|
15
15
|
@post = Pulitzer::Post.create(post_params)
|
16
|
-
Pulitzer::
|
16
|
+
Pulitzer::CreatePostContentElements.new(@post).call if @post
|
17
17
|
render partial: 'show_wrapper', locals: { post: @post }
|
18
18
|
end
|
19
19
|
|
@@ -8,7 +8,7 @@ class Pulitzer::VersionsController < Pulitzer::ApplicationController
|
|
8
8
|
if @active_version
|
9
9
|
Pulitzer::CloneVersion.new(@active_version, new_version).call
|
10
10
|
else
|
11
|
-
Pulitzer::
|
11
|
+
Pulitzer::CreatePostContentElements.new(@post).call
|
12
12
|
end
|
13
13
|
redirect_to post_content_elements_path(@post), notice: "Post #{@status}"
|
14
14
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Pulitzer::CreatePostContentElements
|
2
|
+
attr_accessor :post
|
3
|
+
|
4
|
+
def initialize(post)
|
5
|
+
self.post = post
|
6
|
+
end
|
7
|
+
|
8
|
+
def call
|
9
|
+
post.post_type_content_element_types.each do |cet|
|
10
|
+
post.preview_version.content_elements.create do |ce|
|
11
|
+
ce.label = cet.label
|
12
|
+
ce.height = cet.height
|
13
|
+
ce.width = cet.width
|
14
|
+
ce.text_editor = cet.text_editor
|
15
|
+
ce.content_element_type = cet.content_element_type
|
16
|
+
ce.post_type_content_element_type = cet
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -9,8 +9,11 @@ class Pulitzer::CreatePostTypeContentElements
|
|
9
9
|
def call
|
10
10
|
post_type.posts.each do |post|
|
11
11
|
post.preview_version.content_elements.create do |ce|
|
12
|
-
ce.label
|
13
|
-
ce.
|
12
|
+
ce.label = ptcet.label
|
13
|
+
ce.height = ptcet.height
|
14
|
+
ce.width = ptcet.width
|
15
|
+
ce.text_editor = ptcet.text_editor
|
16
|
+
ce.content_element_type = ptcet.content_element_type
|
14
17
|
ce.post_type_content_element_type = ptcet
|
15
18
|
end
|
16
19
|
end
|
@@ -9,7 +9,7 @@ class Pulitzer::CreateSingletonPost
|
|
9
9
|
def call
|
10
10
|
if post_type.singular? && !post_type.singleton_post?
|
11
11
|
singleton_post = post_type.posts.create(title: title)
|
12
|
-
Pulitzer::
|
12
|
+
Pulitzer::CreatePostContentElements.new(singleton_post).call
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
@@ -9,8 +9,13 @@ class Pulitzer::UpdatePostTypeContentElements
|
|
9
9
|
|
10
10
|
def call
|
11
11
|
post_type.posts.each do |post|
|
12
|
-
post.preview_version.content_elements.where(label: old_label).each do |
|
13
|
-
|
12
|
+
post.preview_version.content_elements.where(label: old_label).each do |content_element|
|
13
|
+
content_element.update(label: ptcet.label,
|
14
|
+
height: ptcet.height,
|
15
|
+
width: ptcet.width,
|
16
|
+
text_editor: ptcet.text_editor,
|
17
|
+
content_element_type: ptcet.content_element_type,
|
18
|
+
post_type_content_element_type: ptcet)
|
14
19
|
end
|
15
20
|
end
|
16
21
|
end
|
@@ -1,13 +1,18 @@
|
|
1
1
|
module Pulitzer
|
2
2
|
class ContentElement < ActiveRecord::Base
|
3
3
|
mount_uploader :image, Pulitzer::ImageUploader
|
4
|
+
enum kind: [ :template, :free_form ]
|
5
|
+
|
4
6
|
belongs_to :version
|
5
7
|
belongs_to :content_element_type
|
6
8
|
belongs_to :post_type_content_element_type
|
7
9
|
delegate :type, :text_type?, :image_type?, :video_type?, to: :content_element_type
|
8
|
-
delegate :height, :width, :text_editor, to: :post_type_content_element_type
|
9
10
|
delegate :post, to: :version
|
11
|
+
|
12
|
+
before_save :handle_sort_order
|
13
|
+
|
10
14
|
default_scope { order(id: :asc) }
|
15
|
+
scope :free_form, -> { unscoped.where(kind: kinds[:free_form]).order(sort_order: :asc) }
|
11
16
|
|
12
17
|
def video_link
|
13
18
|
if video_type? && !body.nil?
|
@@ -36,5 +41,11 @@ private
|
|
36
41
|
end
|
37
42
|
end
|
38
43
|
|
44
|
+
def handle_sort_order
|
45
|
+
if new_record? && sort_order.nil? && free_form?
|
46
|
+
self.sort_order = version.free_form_content_elements.maximum(:sort_order).to_i + 1
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
39
50
|
end
|
40
51
|
end
|
@@ -1,10 +1,15 @@
|
|
1
1
|
class Pulitzer::PostType < ActiveRecord::Base
|
2
|
+
enum kind: [ :template, :free_form, :hybrid ]
|
2
3
|
has_many :posts, dependent: :destroy
|
3
4
|
has_many :post_type_content_element_types, dependent: :destroy
|
4
5
|
has_many :content_element_types, through: :post_type_content_element_types
|
5
6
|
|
6
7
|
validates :name, presence: true
|
7
8
|
|
9
|
+
def self.named(label)
|
10
|
+
self.find_by(name: label)
|
11
|
+
end
|
12
|
+
|
8
13
|
def singular?
|
9
14
|
!plural
|
10
15
|
end
|
@@ -17,7 +22,11 @@ class Pulitzer::PostType < ActiveRecord::Base
|
|
17
22
|
!!singleton_post
|
18
23
|
end
|
19
24
|
|
20
|
-
def
|
21
|
-
|
25
|
+
def allow_template?
|
26
|
+
template? || hybrid?
|
27
|
+
end
|
28
|
+
|
29
|
+
def allow_free_form?
|
30
|
+
free_form? || hybrid?
|
22
31
|
end
|
23
32
|
end
|
@@ -8,5 +8,13 @@ module Pulitzer
|
|
8
8
|
def content_element(label)
|
9
9
|
self.content_elements.find_by(label: label)
|
10
10
|
end
|
11
|
+
|
12
|
+
def template_content_elements
|
13
|
+
content_elements.template
|
14
|
+
end
|
15
|
+
|
16
|
+
def free_form_content_elements
|
17
|
+
content_elements.free_form
|
18
|
+
end
|
11
19
|
end
|
12
20
|
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
<%= form_for content_element, html: ajax_form_hash(dom_target(content_element)), multipart: true,
|
2
2
|
data: { server_endpoint: content_element_path(content_element) } do |f| %>
|
3
|
-
<%= f.label content_element.label %>
|
4
3
|
<%= f.text_field :title, placeholder: 'Title' %>
|
5
4
|
<%= render partial: "#{content_element.type}_fields", locals: { f: f, content_element: content_element } %>
|
6
5
|
<%= submit_tag "Update" %>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%= form_for content_element, html: ajax_form_hash("#version_content_element_container_#{dom_id(version)}", insert_method: 'append', sub_class: "AddALineForm", container: "#new_version_content_element_#{dom_id(version)}") do |f| %>
|
2
|
+
<%= f.collection_select :content_element_type_id, Pulitzer::ContentElementType.all, :id, :name, {},
|
3
|
+
{ data: { "revealer" => true, "sub-type" => "FormFieldRevealer", "revealer-children-id" => dom_id(version, :revealer) }} %>
|
4
|
+
|
5
|
+
<div data-revealer-target="<%= dom_id(version, :revealer) %>"></div>
|
6
|
+
|
7
|
+
<div data-revealer_id="<%= dom_id(version, :revealer) %>" data-revealer-triggers="['<%= Pulitzer::ContentElementType.find_by(name: 'Image').id %>']">
|
8
|
+
<%= f.label :height %>
|
9
|
+
<%= f.text_field :height, placeholder: 'Height' %>
|
10
|
+
<%= f.label :width %>
|
11
|
+
<%= f.text_field :width, placeholder: 'Width' %>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div data-revealer_id="<%= dom_id(version, :revealer) %>" data-revealer-triggers="['<%= Pulitzer::ContentElementType.find_by(name: 'Text').id %>']">
|
15
|
+
<%= f.label :text_editor, "Text editor" %>
|
16
|
+
<%= f.select :text_editor, Pulitzer.text_editor_toolbars.map { |t| t[:name] } %>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<%= f.hidden_field :version_id %>
|
20
|
+
<%= f.hidden_field :kind, value: :free_form %>
|
21
|
+
|
22
|
+
<%= submit_tag "Create" %>
|
23
|
+
<%= link_to('Cancel', '#', :class => 'button',
|
24
|
+
data: { emptier: true, target: "#new_version_content_element_#{dom_id(version)}" } ) %>
|
25
|
+
<% end %>
|
@@ -1,6 +1,15 @@
|
|
1
|
+
<% if content_element.free_form? %>
|
2
|
+
<div class="pulitzer-row">
|
3
|
+
<div class="pulitzer-span right">
|
4
|
+
<%= render partial: '/pulitzer/shared/drag_handle' %>
|
5
|
+
</div>
|
6
|
+
</div>
|
7
|
+
<% end %>
|
1
8
|
<div class="pulitzer-row">
|
2
9
|
<ul class="list">
|
3
|
-
|
10
|
+
<% if content_element.free_form? %>
|
11
|
+
<li><h2><%= content_element.label %></h2></li>
|
12
|
+
<% end %>
|
4
13
|
<li><%= render_element(content_element) %></li>
|
5
14
|
<li><%= ajax_link "Edit", edit_post_content_element_path(content_element.post, content_element), {}, dom_target(content_element) %></li>
|
6
15
|
</ul>
|
@@ -4,17 +4,34 @@
|
|
4
4
|
<%= link_back_to_posts(@post.post_type, "Back to #{@post.post_type.name.singularize} Posts", 'Back to post types') %>
|
5
5
|
</div>
|
6
6
|
|
7
|
+
<% if @post.post_type.allow_free_form? %>
|
8
|
+
<div class="pulitzer-row margin-bottom list-item">
|
9
|
+
<%= ajax_link "add a new content element for #{@post.title}", new_content_element_path(version_id: @post.preview_version), {}, "#new_version_content_element_#{dom_id(@post.preview_version)}" %>
|
10
|
+
<div id="new_version_content_element_<%= dom_id(@post.preview_version) %>"></div>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
|
7
14
|
<div class="pulitzer-row margin-bottom list-item">
|
8
15
|
<h2>Tags</h2>
|
9
|
-
|
10
16
|
<% Pulitzer::Post::TAG_MODELS.each do |tag_model| %>
|
11
17
|
<%= render partial: 'pulitzer/post_tags/show_wrapper', locals: { post: @post, tag_model: tag_model } %>
|
12
18
|
<% end %>
|
19
|
+
</div>
|
13
20
|
|
21
|
+
<div class="pulitzer-row margin-bottom list-item">
|
22
|
+
<h2>Template content elements</h2>
|
23
|
+
<% @content_elements.each do |content_element| %>
|
24
|
+
<%= render partial: 'show_wrapper', locals: { content_element: content_element } %>
|
25
|
+
<% end %>
|
14
26
|
</div>
|
15
27
|
|
16
|
-
<% @
|
17
|
-
|
28
|
+
<% if @post.post_type.allow_free_form? %>
|
29
|
+
<h2>Free form content elements</h2>
|
30
|
+
<div class="pulitzer-row margin-bottom list-item" id="version_content_element_container_<%= dom_id(@post.preview_version) %>" id="content_element_list" data-sorter href="<%= update_all_content_elements_path %>">
|
31
|
+
<% @free_form_content_elements.each do |content_element| %>
|
32
|
+
<%= render partial: 'show_wrapper', locals: { content_element: content_element } %>
|
33
|
+
<% end %>
|
34
|
+
</div>
|
18
35
|
<% end %>
|
19
36
|
|
20
37
|
<div class="pulitzer-row">
|
@@ -1,11 +1,6 @@
|
|
1
1
|
<%= form_for post_type, html: ajax_form_hash(dom_target(post_type)) do |f| %>
|
2
|
-
<%=
|
3
|
-
<%= f.
|
4
|
-
<%= f.label :plural %>
|
5
|
-
<%= f.check_box :plural %>
|
6
|
-
<%= f.label :template %>
|
7
|
-
<%= f.check_box :template %>
|
8
|
-
<%= f.submit "Update post type" %>
|
2
|
+
<%= render partial: 'form_fields', locals: { f: f } %>
|
3
|
+
<%= f.submit "Update" %>
|
9
4
|
<%= link_to('Cancel', post_type_path(post_type), :class => 'button',
|
10
5
|
data: { ajax_link: true, ajax_target: dom_target(post_type) } ) %>
|
11
6
|
<% end %>
|
@@ -1,11 +1,6 @@
|
|
1
1
|
<%= form_for post_type, html: ajax_form_hash('#post_types_container', insert_method: 'append', sub_class: "AddALineForm", container: '#new_post_type') do |f| %>
|
2
|
-
<%=
|
3
|
-
<%= f.
|
4
|
-
<%= f.label :plural %>
|
5
|
-
<%= f.check_box :plural %>
|
6
|
-
<%= f.label :template %>
|
7
|
-
<%= f.check_box :template %>
|
8
|
-
<%= f.submit %>
|
2
|
+
<%= render partial: 'form_fields', locals: { f: f } %>
|
3
|
+
<%= f.submit "Create" %>
|
9
4
|
<%= link_to('Cancel', '#', :class => 'button',
|
10
5
|
data: { emptier: true, target: '#new_post_type' } ) %>
|
11
6
|
<% end %>
|
@@ -2,9 +2,11 @@
|
|
2
2
|
<ul class="inline-list">
|
3
3
|
<li><%= post_type.name %></li>
|
4
4
|
<li><%= link_to_posts(post_type, 'Index', 'Manage') %></li>
|
5
|
-
|
6
|
-
<%=
|
7
|
-
|
5
|
+
<% if post_type.allow_template? %>
|
6
|
+
<li <%= expander("post_type_content_element_types_#{dom_id(post_type)}") %>>
|
7
|
+
<%= link_to "Template", '#', class: 'toggle-post-type-content-elements', data: { post_types: post_type.id } %>
|
8
|
+
</li>
|
9
|
+
<% end %>
|
8
10
|
<li>
|
9
11
|
<% if Pulitzer.skip_metadata_auth? || self.instance_eval(&Pulitzer.metadata_closure) %>
|
10
12
|
<%= ajax_link "Details", edit_post_type_path(post_type), {}, dom_target(post_type) %>
|
data/config/routes.rb
CHANGED
@@ -3,7 +3,11 @@ Pulitzer::Engine.routes.draw do
|
|
3
3
|
resources :content_elements
|
4
4
|
resources :post_tags
|
5
5
|
end
|
6
|
-
resources :content_elements
|
6
|
+
resources :content_elements do
|
7
|
+
collection do
|
8
|
+
patch :update_all
|
9
|
+
end
|
10
|
+
end
|
7
11
|
resources :post_types
|
8
12
|
resources :versions
|
9
13
|
resources :content_element_types
|
data/db/migrate/20151113183344_add_post_type_content_element_attributes_to_content_elements.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
class AddPostTypeContentElementAttributesToContentElements < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
add_column :pulitzer_content_elements, :text_editor, :string
|
4
|
+
add_column :pulitzer_content_elements, :height, :integer, default: 100
|
5
|
+
add_column :pulitzer_content_elements, :width, :integer, default: 100
|
6
|
+
add_column :pulitzer_content_elements, :sort_order, :integer
|
7
|
+
Pulitzer::ContentElement.reset_column_information
|
8
|
+
Pulitzer::ContentElement.find_each do |ce|
|
9
|
+
if ptce = ce.post_type_content_element_type
|
10
|
+
ce.update(text_editor: ptce.text_editor, height: ptce.height, width: ptce.width)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def down
|
16
|
+
remove_column :pulitzer_content_elements, :text_editor
|
17
|
+
remove_column :pulitzer_content_elements, :height
|
18
|
+
remove_column :pulitzer_content_elements, :width
|
19
|
+
remove_column :pulitzer_content_elements, :sort_order
|
20
|
+
end
|
21
|
+
end
|