editmode 0.0.9.75 → 0.0.9.111

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: 84d3a139a19d2ce3224a3dbde3caeeb86b855ee87af329adef40ec7ef73e6079
4
- data.tar.gz: 6edf4098ee427cd1e0a535a25bca31685a63047e228cd36caea259822d133a1b
3
+ metadata.gz: cbecf78a24885247f80796ce982265a69506f3fc04ccf666663fa6398f9ab32d
4
+ data.tar.gz: 303b3219bfebcb4f319ec21eac3f036da0ccfeccb502390f460122df6c426777
5
5
  SHA512:
6
- metadata.gz: 50ea5beedeb776512cc1e39d26eb0a1bea80a1418fe71487350c6d226ed97e3d0fe709a5e045e63a599d0bf52202b2485b0467e117e5d9b9fed00d22e6938379
7
- data.tar.gz: c788b16ab084ca7be4c0392efa1561eebe878d6d7ebce6c8f982e3422645355d912e79b7e6e0a2a41ac6d6a365424db401472c80ebcbec68a23b5ccf68eda705
6
+ metadata.gz: 89215dc64c872980e04a77cb8c7cc56eb615cecf816c6718a9859ce70fed46fbcf8073580630a9ed4d6afc37679cc326156d620ee8e730af3aaa2e72a57d40db
7
+ data.tar.gz: d65542f04585308788f00d2add18774d242395069be3e0a7d7d421c8665f27ac8ea59e84f981b9398c2b6919060c37cd6c4b3b1967afdb35c45b64139b2bb902
@@ -1,8 +1,10 @@
1
1
  class EditmodeController < ApplicationController
2
2
 
3
3
  def clear_cache
4
-
5
- if params[:identifier]
4
+ if params[:full]
5
+ Rails.cache.clear
6
+ render status: 200, json: {:response => "success"}
7
+ elsif params[:identifier]
6
8
  Rails.cache.delete("chunk_#{params[:identifier]}")
7
9
  Rails.cache.delete("chunk_#{params[:identifier]}_type")
8
10
  render status: 200, json: {:response => "success"}
@@ -5,20 +5,17 @@ module EditModeRails
5
5
  require 'httparty'
6
6
 
7
7
  def api_version
8
- "v1"
8
+ # Todo Add Header Version
9
9
  end
10
10
 
11
11
  def api_root_url
12
- ENV["EDITMODE_OVERRIDE_API_URL"] || "https://www.editmode.app/api"
12
+ ENV["EDITMODE_OVERRIDE_API_URL"] || "https://api.editmode.com"
13
13
  end
14
14
 
15
- def versioned_api_url
16
- "#{api_root_url}/#{api_version}"
17
- end
18
-
19
15
  def chunk_collection(collection_identifier,has_tags=[])
16
+ branch_params = params[:em_branch_id].present? ? "branch_id=#{params[:em_branch_id]}" : ""
20
17
  begin
21
- url = "#{versioned_api_url}/chunks?collection_identifier=#{collection_identifier}"
18
+ url = "#{api_root_url}/chunks?collection_identifier=#{collection_identifier}&#{branch_params}"
22
19
  response = HTTParty.get(url)
23
20
  raise "No response received" unless response.code == 200
24
21
  chunks = response["chunks"]
@@ -29,18 +26,18 @@ module EditModeRails
29
26
  end
30
27
  end
31
28
 
32
- def chunk_field_value(parent_chunk_object,custom_field_identifier,options={})
29
+ def chunk_field_value(parent_chunk_object, custom_field_identifier,options={})
33
30
 
34
31
  begin
35
32
  chunk_identifier = parent_chunk_object["identifier"]
36
- custom_field_item = parent_chunk_object["content"].detect {|f| f[custom_field_identifier].present? }
33
+ custom_field_item = parent_chunk_object["content"].detect {|f| f["custom_field_identifier"] == custom_field_identifier }
37
34
 
38
35
  if custom_field_item.present?
39
- properties = custom_field_item[custom_field_identifier]
40
36
  render_chunk_content(
41
- properties["identifier"],
42
- properties["content"],
43
- properties["chunk_type"]
37
+ custom_field_item["identifier"],
38
+ custom_field_item["content"],
39
+ custom_field_item["chunk_type"],
40
+ { parent_identifier: chunk_identifier }.merge(options)
44
41
  )
45
42
  end
46
43
  rescue => errors
@@ -64,39 +61,43 @@ module EditModeRails
64
61
  display_type = options[:display_type] || "span"
65
62
  end
66
63
 
64
+ chunk_data = { :chunk => chunk_identifier, :chunk_editable => false }
65
+
66
+ if options[:parent_identifier].present?
67
+ chunk_data.merge!({parent_identifier: options[:parent_identifier]})
68
+ end
69
+
67
70
  case display_type
68
71
  when "span"
69
72
  if chunk_type == "rich_text"
70
- content_tag(:span, :class => css_class, :data => {:chunk => chunk_identifier, :chunk_editable => false} ) do
73
+ content_tag("em-span", :class => css_class, :data => chunk_data ) do
71
74
  chunk_content.html_safe
72
75
  end
73
76
  else
74
- content_tag(:span, :class => css_class, :data => {:chunk => chunk_identifier, :chunk_editable => true} ) do
77
+ content_tag("em-span", :class => css_class, :data => chunk_data.merge!({:chunk_editable => true}) ) do
75
78
  chunk_content
76
79
  end
77
80
  end
78
81
  when "image"
79
- content_tag(:span, :data => {:chunk => chunk_identifier, :chunk_editable => false} ) do
80
- image_tag(chunk_content, :class => css_class)
81
- end
82
+ image_tag(chunk_content, :data => chunk_data, :class => css_class)
82
83
  end
83
84
  rescue => errors
84
85
  puts errors
85
- content_tag(:span, "&nbsp".html_safe)
86
+ content_tag("em-span", "&nbsp".html_safe)
86
87
  end
87
88
 
88
89
  end
89
90
 
90
91
  def chunk_display(label,identifier,options={},&block)
91
-
92
+ branch_id = params[:em_branch_id]
92
93
  # This method should never show an error.
93
94
  # If anything goes wrong fetching content
94
95
  # We should just show blank content, not
95
96
  # prevent the page from loading.
96
- begin
97
-
98
- cache_identifier = "chunk_#{identifier}"
99
- url = "#{versioned_api_url}/chunks/#{identifier}"
97
+ begin
98
+ branch_params = branch_id.present? ? "branch_id=#{branch_id}" : ""
99
+ cache_identifier = "chunk_#{identifier}#{branch_id}"
100
+ url = "#{api_root_url}/chunks/#{identifier}?#{branch_params}"
100
101
  cached_content_present = Rails.cache.exist?(cache_identifier)
101
102
 
102
103
  if !cached_content_present
@@ -116,16 +117,16 @@ module EditModeRails
116
117
  response['chunk_type']
117
118
  end
118
119
 
119
- render_chunk_content(identifier,chunk_content,chunk_type)
120
+ render_chunk_content(identifier,chunk_content,chunk_type, options)
120
121
 
121
122
  end
122
123
 
123
124
  rescue => error
124
125
  # Show fallback content by default
125
- return content_tag(:span, &block) if block_given?
126
+ return content_tag("em-span", &block) if block_given?
126
127
  # Otherwise show a span with no content to
127
128
  # maintain layout
128
- content_tag(:span, "&nbsp".html_safe)
129
+ content_tag("em-span", "&nbsp".html_safe)
129
130
  end
130
131
 
131
132
  end
@@ -17,6 +17,7 @@ module EditModeRails
17
17
  def output
18
18
 
19
19
  str = <<-EDITMODE_SCRIPT
20
+ <script>window.chunksProjectIdentifier = '#{Editmode.project_id}'</script>
20
21
  <script src="#{script_url}" async ></script>
21
22
  EDITMODE_SCRIPT
22
23
 
@@ -25,7 +26,7 @@ module EditModeRails
25
26
  end
26
27
 
27
28
  def script_url
28
- ENV["EDITMODE_OVERRIDE_SCRIPT_URL"] || "https://www.editmode.app/assets/chunks.js"
29
+ ENV["EDITMODE_OVERRIDE_SCRIPT_URL"] || "https://static.editmode.com/editmode@1.0.0/dist/editmode.js"
29
30
  end
30
31
 
31
32
  end
@@ -1,3 +1,3 @@
1
1
  module EditModeRails
2
- VERSION = "0.0.9.75"
2
+ VERSION = "0.0.9.111"
3
3
  end
@@ -1,14 +1,63 @@
1
1
  require "active_support/dependencies"
2
-
3
2
  require "editmode-rails/version"
4
-
5
3
  require 'editmode-rails/script_tag'
6
4
  require 'editmode-rails/action_view_extensions/editmode_helper'
7
5
  require 'editmode-rails/auto_include_filter'
8
6
  require 'editmode-rails/railtie' if defined? Rails
7
+ require 'editmode-rails/engine' if defined?(Rails)
8
+
9
+ class Editmode
10
+ class << self
11
+ include ::EditModeRails::ActionViewExtensions::EditModeHelper
12
+ def project_id
13
+ @config.project_id
14
+ end
15
+
16
+ def access_token
17
+ @config.access_token
18
+ end
19
+
20
+ def config
21
+ # Todo: Instantiate in editmode initializer or base controllers
22
+ # Todo: Add a generator to create initializer an file?
23
+ @config ||= Configuration.new
24
+ end
25
+
26
+ def setup
27
+ yield config
28
+ end
29
+
30
+ def chunk_value(identifier, **options)
31
+ body = options[:values].presence || {}
32
+ field_id = options[:field_id].presence
33
+ branch_id = options[:branch_id].presence
34
+
35
+ branch_params = branch_id.present? ? "branch_id=#{branch_id}" : ""
36
+ cache_identifier = "chunk_#{identifier}#{branch_id}"
37
+ url = "#{api_root_url}/chunks/#{identifier}?#{branch_params}"
38
+
39
+ begin
40
+ response = HTTParty.get(url, query: body)
41
+ response_received = true if response.code == 200
9
42
 
10
- module EditModeRails
11
- # Your code goes here...
12
- end
43
+ if !response_received
44
+ raise "No response received"
45
+ else
46
+ if field_id.present?
47
+ chunk = response["content"].detect {|f| f["custom_field_identifier"] == field_id }
48
+ chunk['content']
49
+ else
50
+ response['content']
51
+ end
52
+ end
53
+ rescue => error
54
+ # Todo: Send a log to editmode prob like sentry
55
+ return "No response received"
56
+ end
57
+ end
58
+ end
13
59
 
14
- require 'editmode-rails/engine' if defined?(Rails)
60
+ class Configuration
61
+ attr_accessor :project_id, :access_token
62
+ end
63
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: editmode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9.75
4
+ version: 0.0.9.111
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Ennis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-15 00:00:00.000000000 Z
11
+ date: 2020-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  - !ruby/object:Gem::Version
106
106
  version: '0'
107
107
  requirements: []
108
- rubygems_version: 3.0.3
108
+ rubygems_version: 3.0.8
109
109
  signing_key:
110
110
  specification_version: 4
111
111
  summary: Editmode allows you to turn plain text in your rails app into easily inline-editable