action_mosaico 0.1.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 +7 -0
- data/.rubocop.yml +6 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +5 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +19 -0
- data/Gemfile.lock +114 -0
- data/LICENSE.txt +21 -0
- data/README.md +45 -0
- data/Rakefile +16 -0
- data/action_mosaico.gemspec +45 -0
- data/app/assets/javascripts/action_mosaico.js +0 -0
- data/app/assets/stylesheets/action_mosaico.css +0 -0
- data/app/helpers/action_mosaico/content_helper.rb +51 -0
- data/app/helpers/action_mosaico/tag_helper.rb +95 -0
- data/app/javascript/action_mosaico/attachment_upload.js +45 -0
- data/app/javascript/action_mosaico/index.js +10 -0
- data/app/models/action_mosaico/encrypted_rich_text.rb +9 -0
- data/app/models/action_mosaico/record.rb +9 -0
- data/app/models/action_mosaico/rich_text.rb +33 -0
- data/app/views/action_text/attachables/_missing_attachable.html.erb +1 -0
- data/app/views/action_text/attachables/_remote_image.html.erb +8 -0
- data/app/views/action_text/attachment_galleries/_attachment_gallery.html.erb +3 -0
- data/app/views/action_text/contents/_content.html.erb +1 -0
- data/app/views/active_storage/blobs/_blob.html.erb +14 -0
- data/app/views/layouts/action_text/contents/_content.html.erb +3 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/db/migrate/20180528164100_create_action_mosaico_tables.rb +28 -0
- data/lib/action_mosaico/attachable.rb +91 -0
- data/lib/action_mosaico/attachables/content_attachment.rb +37 -0
- data/lib/action_mosaico/attachables/missing_attachable.rb +13 -0
- data/lib/action_mosaico/attachables/remote_image.rb +45 -0
- data/lib/action_mosaico/attachment.rb +109 -0
- data/lib/action_mosaico/attachment_gallery.rb +70 -0
- data/lib/action_mosaico/attachments/caching.rb +17 -0
- data/lib/action_mosaico/attachments/minification.rb +17 -0
- data/lib/action_mosaico/attachments/mosaico_conversion.rb +37 -0
- data/lib/action_mosaico/attribute.rb +66 -0
- data/lib/action_mosaico/content.rb +132 -0
- data/lib/action_mosaico/encryption.rb +39 -0
- data/lib/action_mosaico/engine.rb +86 -0
- data/lib/action_mosaico/fixture_set.rb +61 -0
- data/lib/action_mosaico/fragment.rb +57 -0
- data/lib/action_mosaico/html_conversion.rb +25 -0
- data/lib/action_mosaico/mosaico_attachment.rb +95 -0
- data/lib/action_mosaico/plain_text_conversion.rb +84 -0
- data/lib/action_mosaico/rendering.rb +30 -0
- data/lib/action_mosaico/serialization.rb +36 -0
- data/lib/action_mosaico/system_test_helper.rb +55 -0
- data/lib/action_mosaico/version.rb +5 -0
- data/lib/action_mosaico.rb +40 -0
- data/lib/generators/action_mosaico/install/install_generator.rb +60 -0
- data/lib/generators/action_mosaico/install/templates/actiontext.css +35 -0
- data/lib/tasks/action_mosaico.rake +6 -0
- data/package.json +32 -0
- metadata +172 -0
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_support'
|
4
|
+
require 'active_support/rails'
|
5
|
+
|
6
|
+
require 'nokogiri'
|
7
|
+
|
8
|
+
module ActionMosaico
|
9
|
+
extend ActiveSupport::Autoload
|
10
|
+
|
11
|
+
autoload :Attachable
|
12
|
+
autoload :AttachmentGallery
|
13
|
+
autoload :Attachment
|
14
|
+
autoload :Attribute
|
15
|
+
autoload :Content
|
16
|
+
autoload :Encryption
|
17
|
+
autoload :Fragment
|
18
|
+
autoload :FixtureSet
|
19
|
+
autoload :HtmlConversion
|
20
|
+
autoload :PlainTextConversion
|
21
|
+
autoload :Rendering
|
22
|
+
autoload :Serialization
|
23
|
+
autoload :MosaicoAttachment
|
24
|
+
|
25
|
+
module Attachables
|
26
|
+
extend ActiveSupport::Autoload
|
27
|
+
|
28
|
+
autoload :ContentAttachment
|
29
|
+
autoload :MissingAttachable
|
30
|
+
autoload :RemoteImage
|
31
|
+
end
|
32
|
+
|
33
|
+
module Attachments
|
34
|
+
extend ActiveSupport::Autoload
|
35
|
+
|
36
|
+
autoload :Caching
|
37
|
+
autoload :Minification
|
38
|
+
autoload :MosaicoConversion
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'pathname'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module ActionMosaico
|
7
|
+
module Generators
|
8
|
+
class InstallGenerator < ::Rails::Generators::Base
|
9
|
+
source_root File.expand_path('templates', __dir__)
|
10
|
+
|
11
|
+
def install_javascript_dependencies
|
12
|
+
if Pathname(destination_root).join('package.json').exist?
|
13
|
+
say 'Installing JavaScript dependencies', :green
|
14
|
+
run 'yarn add action_mosaico mosaico'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def append_javascript_dependencies
|
19
|
+
destination = Pathname(destination_root)
|
20
|
+
|
21
|
+
if (application_javascript_path = destination.join('app/javascript/application.js')).exist?
|
22
|
+
insert_into_file application_javascript_path.to_s, %(import "mosaico"\nimport actionmosaico"\n)
|
23
|
+
else
|
24
|
+
say <<~INSTRUCTIONS, :green
|
25
|
+
You must import the actionmosaico and mosaico JavaScript modules in your application entrypoint.
|
26
|
+
INSTRUCTIONS
|
27
|
+
end
|
28
|
+
|
29
|
+
if (importmap_path = destination.join('config/importmap.rb')).exist?
|
30
|
+
append_to_file importmap_path.to_s, %(pin "mosaico"\npin "actionmosaico", to: "actionmosaico.js"\n)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def create_actionmosaico_files
|
35
|
+
template 'actionmosaico.css', 'app/assets/stylesheets/actionmosaico.css'
|
36
|
+
|
37
|
+
gem_root = "#{__dir__}/../../../.."
|
38
|
+
|
39
|
+
copy_file "#{gem_root}/app/views/active_storage/blobs/_blob.html.erb",
|
40
|
+
'app/views/active_storage/blobs/_blob.html.erb'
|
41
|
+
|
42
|
+
copy_file "#{gem_root}/app/views/layouts/action_mosaico/contents/_content.html.erb",
|
43
|
+
'app/views/layouts/action_mosaico/contents/_content.html.erb'
|
44
|
+
end
|
45
|
+
|
46
|
+
def enable_image_processing_gem
|
47
|
+
if (gemfile_path = Pathname(destination_root).join('Gemfile')).exist?
|
48
|
+
say 'Ensure image_processing gem has been enabled so image uploads will work (remember to bundle!)'
|
49
|
+
uncomment_lines gemfile_path, /gem "image_processing"/
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def create_migrations
|
54
|
+
rails_command 'railties:install:migrations FROM=active_storage,action_mosaico', inline: true
|
55
|
+
end
|
56
|
+
|
57
|
+
hook_for :test_framework
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
/*
|
2
|
+
* Provides a drop-in pointer for the default Trix stylesheet that will format the toolbar and
|
3
|
+
* the mosaico-editor content (whether displayed or under editing). Feel free to incorporate this
|
4
|
+
* inclusion directly in any other asset bundle and remove this file.
|
5
|
+
*
|
6
|
+
<%- if defined?(Webpacker::Engine) -%>
|
7
|
+
*= require mosaico/dist/mosaico
|
8
|
+
<%- else -%>
|
9
|
+
*= require mosaico
|
10
|
+
<% end -%>
|
11
|
+
*/
|
12
|
+
|
13
|
+
/*
|
14
|
+
* We need to override trix.css’s image gallery styles to accommodate the
|
15
|
+
* <action-text-attachment> element we wrap around attachments. Otherwise,
|
16
|
+
* images in galleries will be squished by the max-width: 33%; rule.
|
17
|
+
*/
|
18
|
+
.trix-content .attachment-gallery > action-text-attachment,
|
19
|
+
.trix-content .attachment-gallery > .attachment {
|
20
|
+
flex: 1 0 33%;
|
21
|
+
padding: 0 0.5em;
|
22
|
+
max-width: 33%;
|
23
|
+
}
|
24
|
+
|
25
|
+
.trix-content .attachment-gallery.attachment-gallery--2 > action-text-attachment,
|
26
|
+
.trix-content .attachment-gallery.attachment-gallery--2 > .attachment, .trix-content .attachment-gallery.attachment-gallery--4 > action-text-attachment,
|
27
|
+
.trix-content .attachment-gallery.attachment-gallery--4 > .attachment {
|
28
|
+
flex-basis: 50%;
|
29
|
+
max-width: 50%;
|
30
|
+
}
|
31
|
+
|
32
|
+
.trix-content action-text-attachment .attachment {
|
33
|
+
padding: 0 !important;
|
34
|
+
max-width: 100% !important;
|
35
|
+
}
|
data/package.json
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
{
|
2
|
+
"name": "action_mosaico",
|
3
|
+
"version": "0.1.0",
|
4
|
+
"description": "The Mosaico email editor on Rails",
|
5
|
+
"main": "app/javascript/action_mosaico/index.js",
|
6
|
+
"type": "module",
|
7
|
+
"files": [
|
8
|
+
"app/javascript/action_mosaico/*.js"
|
9
|
+
],
|
10
|
+
"homepage": "https://github.com/aventumx/action_mosaico",
|
11
|
+
"repository": {
|
12
|
+
"type": "git",
|
13
|
+
"url": "git+https://github.com/aventumx/action_mosaico.git"
|
14
|
+
},
|
15
|
+
"bugs": {
|
16
|
+
"url": "https://github.com/aventumx/action_mosaico/issues"
|
17
|
+
},
|
18
|
+
"author": "AventumX, LLP",
|
19
|
+
"contributors": [
|
20
|
+
"Recker Swartz <reckerswartz@hotmail.com>"
|
21
|
+
],
|
22
|
+
"license": "MIT",
|
23
|
+
"dependencies": {
|
24
|
+
"@rails/activestorage": ">= 7.0.0-alpha1"
|
25
|
+
},
|
26
|
+
"peerDependencies": {
|
27
|
+
"mosaico": "^0.17.5"
|
28
|
+
},
|
29
|
+
"devDependencies": {
|
30
|
+
"mosaico": "^0.17.5"
|
31
|
+
}
|
32
|
+
}
|
metadata
ADDED
@@ -0,0 +1,172 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: action_mosaico
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Recker Swartz
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-10-01 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '6.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '6.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activerecord
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '6.1'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '6.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activestorage
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '6.1'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '6.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: actionpack
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '6.1'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '6.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: nokogiri
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.8.5
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.8.5
|
83
|
+
description: The Mosaico email editor on Rails.
|
84
|
+
email:
|
85
|
+
- reckerswartz@hotmail.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- ".rubocop.yml"
|
91
|
+
- ".ruby-gemset"
|
92
|
+
- ".ruby-version"
|
93
|
+
- CHANGELOG.md
|
94
|
+
- CODE_OF_CONDUCT.md
|
95
|
+
- Gemfile
|
96
|
+
- Gemfile.lock
|
97
|
+
- LICENSE.txt
|
98
|
+
- README.md
|
99
|
+
- Rakefile
|
100
|
+
- action_mosaico.gemspec
|
101
|
+
- app/assets/javascripts/action_mosaico.js
|
102
|
+
- app/assets/stylesheets/action_mosaico.css
|
103
|
+
- app/helpers/action_mosaico/content_helper.rb
|
104
|
+
- app/helpers/action_mosaico/tag_helper.rb
|
105
|
+
- app/javascript/action_mosaico/attachment_upload.js
|
106
|
+
- app/javascript/action_mosaico/index.js
|
107
|
+
- app/models/action_mosaico/encrypted_rich_text.rb
|
108
|
+
- app/models/action_mosaico/record.rb
|
109
|
+
- app/models/action_mosaico/rich_text.rb
|
110
|
+
- app/views/action_text/attachables/_missing_attachable.html.erb
|
111
|
+
- app/views/action_text/attachables/_remote_image.html.erb
|
112
|
+
- app/views/action_text/attachment_galleries/_attachment_gallery.html.erb
|
113
|
+
- app/views/action_text/contents/_content.html.erb
|
114
|
+
- app/views/active_storage/blobs/_blob.html.erb
|
115
|
+
- app/views/layouts/action_text/contents/_content.html.erb
|
116
|
+
- bin/console
|
117
|
+
- bin/setup
|
118
|
+
- db/migrate/20180528164100_create_action_mosaico_tables.rb
|
119
|
+
- lib/action_mosaico.rb
|
120
|
+
- lib/action_mosaico/attachable.rb
|
121
|
+
- lib/action_mosaico/attachables/content_attachment.rb
|
122
|
+
- lib/action_mosaico/attachables/missing_attachable.rb
|
123
|
+
- lib/action_mosaico/attachables/remote_image.rb
|
124
|
+
- lib/action_mosaico/attachment.rb
|
125
|
+
- lib/action_mosaico/attachment_gallery.rb
|
126
|
+
- lib/action_mosaico/attachments/caching.rb
|
127
|
+
- lib/action_mosaico/attachments/minification.rb
|
128
|
+
- lib/action_mosaico/attachments/mosaico_conversion.rb
|
129
|
+
- lib/action_mosaico/attribute.rb
|
130
|
+
- lib/action_mosaico/content.rb
|
131
|
+
- lib/action_mosaico/encryption.rb
|
132
|
+
- lib/action_mosaico/engine.rb
|
133
|
+
- lib/action_mosaico/fixture_set.rb
|
134
|
+
- lib/action_mosaico/fragment.rb
|
135
|
+
- lib/action_mosaico/html_conversion.rb
|
136
|
+
- lib/action_mosaico/mosaico_attachment.rb
|
137
|
+
- lib/action_mosaico/plain_text_conversion.rb
|
138
|
+
- lib/action_mosaico/rendering.rb
|
139
|
+
- lib/action_mosaico/serialization.rb
|
140
|
+
- lib/action_mosaico/system_test_helper.rb
|
141
|
+
- lib/action_mosaico/version.rb
|
142
|
+
- lib/generators/action_mosaico/install/install_generator.rb
|
143
|
+
- lib/generators/action_mosaico/install/templates/actiontext.css
|
144
|
+
- lib/tasks/action_mosaico.rake
|
145
|
+
- package.json
|
146
|
+
homepage: https://github.com/aventumx/action_mosaico
|
147
|
+
licenses:
|
148
|
+
- MIT
|
149
|
+
metadata:
|
150
|
+
homepage_uri: https://github.com/aventumx/action_mosaico
|
151
|
+
source_code_uri: https://github.com/aventumx/action_mosaico
|
152
|
+
changelog_uri: https://github.com/aventumx/action_mosaico
|
153
|
+
post_install_message:
|
154
|
+
rdoc_options: []
|
155
|
+
require_paths:
|
156
|
+
- lib
|
157
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: 2.7.0
|
162
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 1.8.11
|
167
|
+
requirements: []
|
168
|
+
rubygems_version: 3.2.27
|
169
|
+
signing_key:
|
170
|
+
specification_version: 4
|
171
|
+
summary: The Mosaico email editor on Rails.
|
172
|
+
test_files: []
|