cm_page_builder-rails 0.2.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 459dbee8f8a6d0f44b65f66680fbd49d4e80cb7d98c5e1c51c880d498bee4b6e
4
- data.tar.gz: 6575bb5cec83a974583f8a9e3f9647f083aadab5b44545920bdbe10129f0f8e6
3
+ metadata.gz: 1e528443d6f1df388159a706b5bcab30e2cf42c06af6628ed763d398a202c263
4
+ data.tar.gz: 81fc89511291e3320123adfd21971d2064a1891b176b78ea59fed00f07b3c62c
5
5
  SHA512:
6
- metadata.gz: ac569b59270e994afffb4ba5f29369ed07548d34c6705e65b5f5cbe3407f9237f813d317d57c784d556d4960a33d13c469de35cbfc8de2276af5d282f75d39f3
7
- data.tar.gz: 3a15e1030e9a41a8e81380dc9542026ed6ca614e6276379102b40a0175d9d845224651a656c4d124a15570b3df9267eea012531ffbf5944125b4d580627d3452
6
+ metadata.gz: f10ae957d38fa4ba023a078387cbf8dfdc796a16f810111a4eb17a5c3be71f3f6030beca16321f10b0cc2407eba9f2a24ddd76807b08bf2bc6b61266978ecba0
7
+ data.tar.gz: 3022134f1afda91c279f4e3c955ad486a6ab179f8ff62d3400948f857274b3078dd7eadef2a381b5ca519878643018528a16362063fdae5681317fa92dc9f2fc
data/README.md CHANGED
@@ -7,6 +7,7 @@ This gem's purpose is to allow easy integration between the Commutatus javascrip
7
7
 
8
8
  * Rails 6+
9
9
  * Webpacker must be enabled in the project
10
+ * S3 as the image backend storage
10
11
 
11
12
 
12
13
  ## Initial setup:
@@ -23,17 +24,24 @@ This gem's purpose is to allow easy integration between the Commutatus javascrip
23
24
  * Follow all react-rails installation instructions (https://github.com/reactjs/react-rails)
24
25
  *Important:* ensure that the `hello_world` example successfully works
25
26
 
26
- * Add the javascript package with `yarn add cm-page-builder@1.2.69`
27
+ * Install the javascript packages with:
28
+ ```bash
29
+ yarn add cm-page-builder@1.3.0 -E
30
+ yarn add babel-runtime@^6.26.0
31
+ ```
32
+ (the emoji-mart package, a dependency of cm-page-builder, sometimes bugs out during the webpack build process without the babel-runtime)
27
33
 
28
34
  * Run `rails cm_page_builder_rails:install:migrations`
29
35
 
30
- * In `config/routes.rb`, mount the endpoint with the line `mount CmPageBuilder::Rails::Engine => "/cm_page_builder"`
36
+ * Run `rails generate cm_page_builder:rails:install` to install the JSX component. This assumes your webpack folder is inside `app/javascripts`
31
37
 
32
- * Initialize the layout
38
+ * In `config/routes.rb`, mount the endpoint with the line `mount CmPageBuilder::Rails::Engine => "/cm_page_builder"`
33
39
 
34
40
  ## Usage
35
41
  This package comes with a concern, `CmPageBuilder::Rails::HasCmContent` `include CmPageBuilder::Rails::HasCmContent`
36
- To activate this module, add `include CmPageBuilder::Rails::HasCmContent` on top of any model file that should have an associated rich text field.
42
+ To activate this module, add `include CmPageBuilder::Rails::HasCmContent` on top of any model file that should have an associated page builder record.
43
+
44
+ The page builder record will be accessible from the model as *page* (`@model.page`). The show path is accessible through the route `cm_page_builder_rails.page_path(@page)`, and the edit path through the route `cm_page_builder_rails.edit_page_path(@page)`
37
45
 
38
46
  ### Setting up CORS for aws
39
47
  Do this or the direct upload capabilities won't work
@@ -43,7 +43,7 @@ module CmPageBuilder::Rails
43
43
  attachment_data = {
44
44
  filename: attachment.filename.to_s,
45
45
  filesize: blob.byte_size,
46
- url: Rails.application.routes.url_helpers.rails_blob_path(attachment, only_path: true)
46
+ url: attachment.service_url
47
47
  }
48
48
  if blob.variable?
49
49
  dimensions = blob.metadata
@@ -8,6 +8,6 @@
8
8
 
9
9
  .field
10
10
  input type='hidden' id="content-editor" name="page[components]"
11
- = react_component("cm_content_manager/Content", {input: "content-editor", components: @page.components})
11
+ = react_component("cm_content_manager/Content", { input: "content-editor", components: @page.components, assetBaseUrl: ActiveStorage::Blob.service.bucket.url})
12
12
 
13
13
  .actions = f.submit
@@ -1,5 +1,5 @@
1
1
  module CmPageBuilder
2
2
  module Rails
3
- VERSION = '0.2.0'
3
+ VERSION = '0.2.1'
4
4
  end
5
5
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CmPageBuilder::Rails
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ desc "Copy the jsx component"
7
+ source_root File.expand_path('templates', __dir__)
8
+
9
+ def copy_jsx_component
10
+ template "app/javascripts/components/cm_content_manager/Content.jsx"
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,41 @@
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
+ import PageBuilder from 'cm-page-builder'
4
+
5
+ class Content extends React.Component {
6
+ constructor(props) {
7
+ super(props)
8
+ }
9
+
10
+
11
+ _updatePageComponent = (id, data, type, key) => {}
12
+
13
+
14
+ render () {
15
+ return (
16
+ <React.Fragment>
17
+ <PageBuilder
18
+ pageComponents={this.props.components}
19
+ handleUpdate={this._updatePageComponent}
20
+ updateComponentData={(data) =>
21
+ { $(`#${this.props.input}`).val(JSON.stringify(data))}
22
+ }
23
+ showTitle={false}
24
+ showEmoji={false}
25
+ showPageInfo={false}
26
+ useDirectStorageUpload={true}
27
+ assetBaseUrl={ this.props.assetBaseUrl }
28
+ meta={ {id: "debug"} }
29
+ status="Edit"
30
+ />
31
+ </React.Fragment>
32
+ );
33
+ }
34
+ }
35
+
36
+ Content.propTypes = {
37
+ input: PropTypes.string,
38
+ components: PropTypes.array,
39
+ assetBaseUrl: PropTypes.string
40
+ };
41
+ export default Content
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cm_page_builder-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Camilo Ernesto Forero Junco
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-04 00:00:00.000000000 Z
11
+ date: 2020-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -104,6 +104,8 @@ files:
104
104
  - lib/cm_page_builder/rails/application_helper.rb
105
105
  - lib/cm_page_builder/rails/engine.rb
106
106
  - lib/cm_page_builder/rails/version.rb
107
+ - lib/generators/cm_page_builder/rails/install_generator.rb
108
+ - lib/generators/cm_page_builder/rails/templates/app/javascripts/components/cm_content_manager/Content.jsx
107
109
  - lib/tasks/cm_page_builder/rails_tasks.rake
108
110
  - spec/dummy/Rakefile
109
111
  - spec/dummy/app/assets/config/manifest.js