cm_page_builder-rails 0.1.2 → 0.1.3

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: 9c565b0eb10f6aac2e32bf557363ad4adad6b6cacd877fe0e73312898571ba23
4
- data.tar.gz: 85994e956a352354383ba62cc5d9d0369a23f0474939ebced0ab9ad081da226d
3
+ metadata.gz: 0502276d651000f9403732368e1f91f776620506e5f33e661038ea021cc6d098
4
+ data.tar.gz: 69e14401f555d7cf169a1a98ffd5e4e182d9deb7e07e7277cfa24738f2ec8fce
5
5
  SHA512:
6
- metadata.gz: 48f3f40b06cfbc04e96084b58b197ea7a5bfb9efc8870d08cccfaeb7e943b2bcc7eb9231b6ac7c3942eec73b1630c0404e0648bfe51e798d524873f46ef57603
7
- data.tar.gz: d001bd198be2368d7f990b478e760b52260dcc7d683da23878a03703b08a86920dbf78d2524ec1eb61af6b30fc8c96db79ca5df0b62da7493e98b138ea0ef2ea
6
+ metadata.gz: d1fb86f34c7c2d029047beede39dab80462a8ea6296f47abf958c7f8179bbd8a52e359c61fb520e4c2d2c97e44f8f495e811afe58927026cf47fba42aeacd1ab
7
+ data.tar.gz: 5f5b17a4bc9ccf015bb67d59ddd7930e8adaa96c2536516bb4f9b262b45586566ae522ea765bc5ead2a3d826ac76e71d64bf6164c69a9237a18bcdb3c13d3544
data/README.md CHANGED
@@ -1,13 +1,14 @@
1
1
  # CmPageBuilder::Rails
2
- Short description and motivation.
2
+ This gem's purpose is to allow easy integration between the Commutatus react package cm-page-builder and any rails applications created by
3
3
 
4
4
  ## Usage
5
- How to use my plugin.
5
+ To activate this module, add `include CmPageBuilder::Rails::HasCmContent` on top of any model file that should have an associated rich text field.
6
6
 
7
7
  ## Installation
8
- Add this line to your application's Gemfile:
8
+
9
9
 
10
10
  ```ruby
11
+ gem 'react-rails', '~> 2.6.0'
11
12
  gem 'cm_page_builder-rails'
12
13
  ```
13
14
 
@@ -16,10 +17,11 @@ And then execute:
16
17
  $ bundle
17
18
  ```
18
19
 
19
- Or install it yourself as:
20
- ```bash
21
- $ gem install cm_page_builder-rails
22
- ```
20
+ Follow all react-rails installation instructions
21
+
22
+ Then run `rails cm_page_builder_rails:install:migrations`
23
+
24
+ In `config/routes.rb`, mount the endpoint with the line `mount CmPageBuilder::Rails::Engine => "/cm_page_builder"`
23
25
 
24
26
  ### Setting up CORS for aws
25
27
  Do this or the direct upload capabilities won't work
@@ -6,10 +6,13 @@ module CmPageBuilder::Rails
6
6
  accepts_nested_attributes_for :page_components, allow_destroy: true
7
7
 
8
8
  def get_components
9
- self.page_components.select(:id, :component_type, :position, :content).map do |component|
9
+ self.page_components.with_attached_component_attachment.select(:id, :uuid, :component_type, :position, :content).map do |component|
10
10
  json_component = component.as_json.transform_keys! {|key| key.camelize(:lower)}
11
11
  attachment = component.component_attachment.attachment
12
+ pp component.component_attachment
12
13
  pp attachment
14
+ pp "======"
15
+ json_component["id"] = component[:uuid]
13
16
  json_component["component_attachment"] = if attachment
14
17
  {
15
18
  filename: attachment.filename.to_s,
@@ -23,18 +26,18 @@ module CmPageBuilder::Rails
23
26
  def save_content(component_json)
24
27
  components = JSON.parse component_json
25
28
  deleted_components = self.page_components.where.not(
26
- id: components.map {|c| c["id"] } )
29
+ uuid: components.map {|c| c["id"] } )
27
30
  deleted_components.delete_all
28
31
  components.each do |component|
29
- page_component = self.page_components.find_or_initialize_by(id: component["id"])
30
- page_component.update!(
31
- content: component["content"],
32
- position: component["position"],
33
- component_type: component["componentType"]
34
- )
32
+ page_component = self.page_components.find_or_initialize_by(uuid: component["id"])
35
33
  signed_id = component.dig("component_attachment", "signed_id")
36
- page_component.component_attachment = signed_id if signed_id
37
- page_component.save!
34
+ component_data = {
35
+ content: component["content"],
36
+ position: component["position"],
37
+ component_type: component["componentType"]
38
+ }
39
+ component_data[:component_attachment] = signed_id if signed_id
40
+ page_component.update!(component_data)
38
41
  end
39
42
 
40
43
  end
@@ -0,0 +1,11 @@
1
+ class ChangePageComponentPrimaryKey < ActiveRecord::Migration[6.0]
2
+ def change
3
+ rename_column :cm_page_builder_rails_page_components, :id, :uuid
4
+ CmPageBuilder::Rails::PageComponent.connection.execute(
5
+ <<~SQL
6
+ ALTER TABLE cm_page_builder_rails_page_components DROP CONSTRAINT cm_page_builder_rails_page_components_pkey;
7
+ SQL
8
+ )
9
+ add_column :cm_page_builder_rails_page_components, :id, :primary_key
10
+ end
11
+ end
@@ -1,5 +1,5 @@
1
1
  module CmPageBuilder
2
2
  module Rails
3
- VERSION = '0.1.2'
3
+ VERSION = '0.1.3'
4
4
  end
5
5
  end
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.1.2
4
+ version: 0.1.3
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: 2019-08-28 00:00:00.000000000 Z
11
+ date: 2019-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -93,6 +93,7 @@ files:
93
93
  - config/routes.rb
94
94
  - db/migrate/20190816103148_create_cm_page_builder_rails_pages.rb
95
95
  - db/migrate/20190816105056_create_cm_page_builder_rails_page_components.rb
96
+ - db/migrate/20190903110322_change_page_component_primary_key.rb
96
97
  - lib/cm_page_builder/rails.rb
97
98
  - lib/cm_page_builder/rails/application_helper.rb
98
99
  - lib/cm_page_builder/rails/engine.rb