katalyst-content 1.1.1 → 2.0.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/README.md +81 -7
- data/app/assets/builds/katalyst/content.esm.js +1004 -0
- data/app/assets/builds/katalyst/content.js +1004 -0
- data/app/assets/builds/katalyst/content.min.js +2 -0
- data/app/assets/builds/katalyst/content.min.js.map +1 -0
- data/app/assets/config/katalyst-content.js +1 -1
- data/app/assets/stylesheets/katalyst/content/editor/_index.scss +1 -1
- data/app/assets/stylesheets/katalyst/content/editor/_new-items.scss +36 -10
- data/app/assets/stylesheets/katalyst/content/editor/_status-bar.scss +3 -1
- data/app/{helpers/katalyst/content/editor/base.rb → components/katalyst/content/editor/base_component.rb} +15 -12
- data/app/components/katalyst/content/editor/errors_component.html.erb +12 -0
- data/app/components/katalyst/content/editor/errors_component.rb +15 -0
- data/app/components/katalyst/content/editor/item_component.html.erb +25 -0
- data/app/components/katalyst/content/editor/item_component.rb +28 -0
- data/app/components/katalyst/content/editor/new_item_component.html.erb +22 -0
- data/app/components/katalyst/content/editor/new_item_component.rb +52 -0
- data/app/{views/katalyst/content/editor/_new_items.html.erb → components/katalyst/content/editor/new_items_component.html.erb} +1 -1
- data/app/components/katalyst/content/editor/new_items_component.rb +20 -0
- data/app/{views/katalyst/content/editor/_list_item.html.erb → components/katalyst/content/editor/row_component.html.erb} +1 -1
- data/app/components/katalyst/content/editor/row_component.rb +13 -0
- data/app/{helpers/katalyst/content/editor/status_bar.rb → components/katalyst/content/editor/status_bar_component.rb} +17 -13
- data/app/components/katalyst/content/editor/table_component.html.erb +11 -0
- data/app/components/katalyst/content/editor/table_component.rb +36 -0
- data/app/components/katalyst/content/editor_component.html.erb +9 -0
- data/app/components/katalyst/content/editor_component.rb +49 -0
- data/app/controllers/katalyst/content/items_controller.rb +6 -3
- data/app/helpers/katalyst/content/editor_helper.rb +4 -48
- data/app/helpers/katalyst/content/frontend_helper.rb +3 -3
- data/app/javascript/content/application.js +35 -0
- data/app/{assets/javascripts/utils → javascript}/content/editor/container.js +1 -1
- data/app/{assets/javascripts/controllers → javascript}/content/editor/container_controller.js +3 -3
- data/app/{assets/javascripts/controllers → javascript}/content/editor/item_controller.js +1 -1
- data/app/{assets/javascripts/controllers → javascript}/content/editor/list_controller.js +12 -2
- data/app/models/katalyst/content/types/nodes_type.rb +2 -2
- data/app/views/active_storage/blobs/_blob.html.erb +1 -1
- data/app/views/katalyst/content/asides/_aside.html+form.erb +2 -2
- data/app/views/katalyst/content/columns/_column.html+form.erb +2 -2
- data/app/views/katalyst/content/contents/_content.html+form.erb +3 -3
- data/app/views/katalyst/content/figures/_figure.html+form.erb +2 -2
- data/app/views/katalyst/content/groups/_group.html+form.erb +2 -2
- data/app/views/katalyst/content/items/_item.html+form.erb +2 -2
- data/app/views/katalyst/content/items/update.turbo_stream.erb +2 -2
- data/app/views/katalyst/content/sections/_section.html+form.erb +2 -2
- data/config/importmap.rb +1 -6
- data/lib/katalyst/content.rb +0 -1
- metadata +61 -24
- data/app/helpers/katalyst/content/editor/container.rb +0 -43
- data/app/helpers/katalyst/content/editor/errors.rb +0 -24
- data/app/helpers/katalyst/content/editor/item.rb +0 -67
- data/app/helpers/katalyst/content/editor/list.rb +0 -41
- data/app/helpers/katalyst/content/editor/new_item.rb +0 -53
- data/app/views/katalyst/content/editor/_item.html.erb +0 -14
- data/app/views/katalyst/content/editor/_new_item.html.erb +0 -3
- data/lib/katalyst/content/version.rb +0 -7
- /data/app/{assets/javascripts/utils → javascript}/content/editor/item.js +0 -0
- /data/app/{assets/javascripts/controllers → javascript}/content/editor/new_item_controller.js +0 -0
- /data/app/{assets/javascripts/utils/content/editor/rules-engine.js → javascript/content/editor/rules_engine.js} +0 -0
- /data/app/{assets/javascripts/controllers → javascript}/content/editor/status_bar_controller.js +0 -0
- /data/app/{assets/javascripts/controllers → javascript}/content/editor/trix_controller.js +0 -0
@@ -1,67 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Katalyst
|
4
|
-
module Content
|
5
|
-
module Editor
|
6
|
-
class Item < Base
|
7
|
-
attr_accessor :item
|
8
|
-
|
9
|
-
def build(item, **options, &block)
|
10
|
-
self.item = item
|
11
|
-
tag.div **default_options(id: dom_id(item), **options) do
|
12
|
-
concat(capture { yield self }) if block
|
13
|
-
concat fields(item)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def accordion_actions
|
18
|
-
tag.div role: "toolbar", data: { tree_accordion_controls: "" } do
|
19
|
-
concat tag.span(role: "button", value: "collapse",
|
20
|
-
data: { action: "click->#{CONTAINER_CONTROLLER}#collapse", title: "Collapse tree" })
|
21
|
-
concat tag.span(role: "button", value: "expand",
|
22
|
-
data: { action: "click->#{CONTAINER_CONTROLLER}#expand", title: "Expand tree" })
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def item_actions
|
27
|
-
tag.div role: "toolbar", data: { tree_controls: "" } do
|
28
|
-
concat tag.span(role: "button", value: "de-nest",
|
29
|
-
data: { action: "click->#{CONTAINER_CONTROLLER}#deNest", title: "Outdent" })
|
30
|
-
concat tag.span(role: "button", value: "nest",
|
31
|
-
data: { action: "click->#{CONTAINER_CONTROLLER}#nest", title: "Indent" })
|
32
|
-
concat link_to("", edit_item_link,
|
33
|
-
role: "button", title: "Edit", value: "edit",
|
34
|
-
data: { turbo_frame: TURBO_FRAME })
|
35
|
-
concat tag.span(role: "button", value: "remove",
|
36
|
-
data: { action: "click->#{CONTAINER_CONTROLLER}#remove", title: "Remove" })
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def edit_item_link
|
41
|
-
if item.persisted?
|
42
|
-
katalyst_content.edit_item_path(item)
|
43
|
-
else
|
44
|
-
katalyst_content.new_item_path(item: item.attributes.slice("type", "container_id",
|
45
|
-
"container_type").compact)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def fields(item)
|
50
|
-
template.fields(attributes_scope, model: item, index: nil, skip_default_ids: true) do |f|
|
51
|
-
concat f.hidden_field(:id)
|
52
|
-
concat f.hidden_field(:depth)
|
53
|
-
concat f.hidden_field(:index)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
private
|
58
|
-
|
59
|
-
def default_options(options)
|
60
|
-
add_option(options, :data, :controller, ITEM_CONTROLLER)
|
61
|
-
|
62
|
-
options
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Katalyst
|
4
|
-
module Content
|
5
|
-
module Editor
|
6
|
-
class List < Base
|
7
|
-
ACTIONS = <<~ACTIONS.gsub(/\s+/, " ").freeze
|
8
|
-
dragstart->#{LIST_CONTROLLER}#dragstart
|
9
|
-
dragover->#{LIST_CONTROLLER}#dragover
|
10
|
-
dragenter->#{LIST_CONTROLLER}#dragenter
|
11
|
-
dragleave->#{LIST_CONTROLLER}#dragleave
|
12
|
-
drop->#{LIST_CONTROLLER}#drop
|
13
|
-
dragend->#{LIST_CONTROLLER}#dragend
|
14
|
-
ACTIONS
|
15
|
-
|
16
|
-
def build(options, &_block)
|
17
|
-
tag.ol **default_options(id: container_form_id, **options) do
|
18
|
-
yield self
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def items(*items)
|
23
|
-
render partial: "katalyst/content/editor/item",
|
24
|
-
layout: "katalyst/content/editor/list_item",
|
25
|
-
collection: items,
|
26
|
-
as: :item
|
27
|
-
end
|
28
|
-
|
29
|
-
private
|
30
|
-
|
31
|
-
def default_options(options)
|
32
|
-
add_option(options, :data, :controller, LIST_CONTROLLER)
|
33
|
-
add_option(options, :data, :action, ACTIONS)
|
34
|
-
add_option(options, :data, :"#{CONTAINER_CONTROLLER}_target", "container")
|
35
|
-
|
36
|
-
options
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Katalyst
|
4
|
-
module Content
|
5
|
-
module Editor
|
6
|
-
class NewItem < Base
|
7
|
-
ACTIONS = <<~ACTIONS.gsub(/\s+/, " ").freeze
|
8
|
-
dragstart->#{NEW_ITEM_CONTROLLER}#dragstart
|
9
|
-
ACTIONS
|
10
|
-
|
11
|
-
def build(item, **options, &block)
|
12
|
-
capture do
|
13
|
-
concat(tag.div(**default_options(options)) do
|
14
|
-
concat capture(&block)
|
15
|
-
concat item_template(item)
|
16
|
-
end)
|
17
|
-
concat turbo_replace_placeholder(item)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
# Remove items that are incomplete when rendering new items, this
|
22
|
-
# causes incomplete items to be removed from the list when the user
|
23
|
-
# cancels adding a new item by pressing 'discard' in the new item form.
|
24
|
-
def turbo_replace_placeholder(item)
|
25
|
-
turbo_stream.replace dom_id(item) do
|
26
|
-
content_editor_item(item: item, data: { delete: "" })
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
# Template is stored inside the new item dom, and copied into drag
|
31
|
-
# events when the user initiates drag so that it can be copied into the
|
32
|
-
# editor list on drop.
|
33
|
-
def item_template(item)
|
34
|
-
tag.template data: { "#{NEW_ITEM_CONTROLLER}-target" => "template" } do
|
35
|
-
content_editor_items(item: item)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
private
|
40
|
-
|
41
|
-
def default_options(options)
|
42
|
-
add_option(options, :draggable, true)
|
43
|
-
add_option(options, :role, "listitem")
|
44
|
-
add_option(options, :data, :turbo_frame, TURBO_FRAME)
|
45
|
-
add_option(options, :data, :controller, NEW_ITEM_CONTROLLER)
|
46
|
-
add_option(options, :data, :action, ACTIONS)
|
47
|
-
|
48
|
-
options
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<%= content_editor_item item: item do |builder| %>
|
2
|
-
<div class="tree" data-invisible="<%= !item.visible? %>">
|
3
|
-
<%= builder.accordion_actions %>
|
4
|
-
|
5
|
-
<span role="img" value="<%= item.model_name.param_key %>" title="Type"></span>
|
6
|
-
<h4 class="heading" title="<%= item.heading %>"><%= item.heading %></h4>
|
7
|
-
<span role="img" value="invisible" title="Hidden"></span>
|
8
|
-
</div>
|
9
|
-
|
10
|
-
<div class="item-background <%= item.background %>">
|
11
|
-
</div>
|
12
|
-
|
13
|
-
<%= builder.item_actions %>
|
14
|
-
<% end %>
|
File without changes
|
/data/app/{assets/javascripts/controllers → javascript}/content/editor/new_item_controller.js
RENAMED
File without changes
|
File without changes
|
/data/app/{assets/javascripts/controllers → javascript}/content/editor/status_bar_controller.js
RENAMED
File without changes
|
File without changes
|