activeadmin_json_editor 0.0.9 → 0.0.10

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: 316efb84852c175f3a3eadbf42a90463ebc656a020a6e8e93d81888b5d909651
4
- data.tar.gz: c84f76f7f8fbade07551e666af050c3bea4c1dc050d5c18c30eb2982320ee099
3
+ metadata.gz: 5021390f27b703a617625a391cf18257ae2833cfe5db14799e48e80c56484128
4
+ data.tar.gz: '049bf46fd8194ad2f8b5d685de90ebfa73f30fc05fa500c2d514c8162cba8b50'
5
5
  SHA512:
6
- metadata.gz: f1ffe24fa609939ac7a5f5d502df51340915e01d6b2ae2e8d0a14ac502eeed7143914cbf94753aa9e181c8337b62a8e184fd0b4bac7412bb7b30618c33ae6fd6
7
- data.tar.gz: 2ca7fb2ea1b22a3e1c2ff5a4d98e9c2944ec3f4e1bfc8522490b85443ec4ef71cd37aab978474ec074f2c9e3c75888185a669f11a5b4c026ad2004294493ff0e
6
+ metadata.gz: df9e9dc2c3fc1ed90aeacedba58c0dc823a2830a4581194196430c11a90062f5481f37f1c0b5e84a6cd04c759ce85f196e9034263ce9387466ce38d8c211acc3
7
+ data.tar.gz: ba2c72fce9a7a72f5cd6e0609b74524731b239457b02892211a64cbb4fe73bcf2ffd5b9b3a3dc3f460c852283ec34dc85a7e5716b1dc9b8f98686483d26241aa
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ pkg/
2
+
data/README.md CHANGED
@@ -9,7 +9,7 @@ Data shown by using jsoneditor.js from http://jsoneditoronline.org
9
9
 
10
10
  Add this line to your application's Gemfile:
11
11
 
12
- gem 'activeadmin_json_editor', '~> 0.0.8'
12
+ gem 'activeadmin_json_editor', '~> 0.0.10'
13
13
 
14
14
  And then execute:
15
15
 
@@ -30,12 +30,12 @@ This Gem provides you formtastic input called :json to edit json data and parse
30
30
 
31
31
  ```ruby
32
32
  ActiveAdmin.register User do
33
- permit_params :settings
33
+ permit_params :settings
34
34
 
35
- json_editor
35
+ json_editor
36
36
 
37
37
  # specify the type does not necessarily
38
- form do |f|
38
+ form do |f|
39
39
  f.inputs do
40
40
  f.input :settings, as: :json
41
41
  f.input :other_settings, as: :jsonb
@@ -2,30 +2,36 @@
2
2
  //= require jsoneditor/asset/jsonlint/jsonlint.js
3
3
 
4
4
  ;(function(window, $) {
5
- $(function() {
6
- $('div.jsoneditor-wrap').each(function(i,wrap){
7
- var fieldset = $(wrap).parents('li:eq(0)');
8
- var container = $(wrap)[0];
9
- var textarea = $($(wrap).find('textarea'));
10
- var editor;
11
- var options = {
12
- modes: ['tree', 'text'],
13
- mode: 'tree',
14
- change: function(ev){
15
- try {
16
- var text = JSON.stringify(editor.get());
17
- textarea.text(text);
18
- $(fieldset).toggleClass('error',false);
19
- textarea.text(JSON.stringify(editor.get()));
20
- } catch (e) {
21
- editor.options.error(e);
22
- }
23
- },
24
- error: function(e){
25
- $(fieldset).toggleClass('error',true);
5
+ var initEditor = function(i,wrap){
6
+ var fieldset = $(wrap).parents('li:eq(0)');
7
+ var container = $(wrap)[0];
8
+ var textarea = $($(wrap).find('textarea'));
9
+ var editor;
10
+ var options = {
11
+ modes: ['tree', 'text'],
12
+ mode: 'tree',
13
+ change: function(ev){
14
+ try {
15
+ var text = JSON.stringify(editor.get());
16
+ textarea.text(text);
17
+ $(fieldset).toggleClass('error',false);
18
+ textarea.text(JSON.stringify(editor.get()));
19
+ } catch (e) {
20
+ editor.options.error(e);
26
21
  }
27
- };
28
- editor = new JSONEditor(container, options,JSON.parse(textarea.val()));
29
- });
22
+ },
23
+ error: function(e){
24
+ $(fieldset).toggleClass('error',true);
25
+ }
26
+ };
27
+ editor = new JSONEditor(container, options,JSON.parse(textarea.val()));
28
+ }
29
+
30
+ $(function() {
31
+ $('div.jsoneditor-wrap').each(initEditor);
32
+
33
+ $(document).on('has_many_add:after', '.has_many_container', function(e, fieldset, container) {
34
+ $('div.jsoneditor-wrap', fieldset).each(initEditor)
35
+ })
30
36
  });
31
37
  })(window, jQuery);
@@ -1,5 +1,5 @@
1
1
  module ActiveAdmin
2
2
  module JsonEditor
3
- VERSION = '0.0.9'.freeze
3
+ VERSION = '0.0.10'.freeze
4
4
  end
5
5
  end
@@ -5,21 +5,35 @@ module ActiveAdmin
5
5
  class ResourceDSL
6
6
  def json_editor
7
7
  before_save do |object, _args|
8
- request_namespace = object.class.name.underscore.tr('/', '_')
9
- if params.key? request_namespace
10
- object.class.columns_hash.select { |_key, attr| attr.type.in? [:json, :jsonb] }.keys.each do |key|
11
- next unless params[request_namespace].key? key
12
- json_data = params[request_namespace][key]
13
- data = if json_data == 'null' || json_data.blank?
14
- {}
15
- else
16
- JSON.parse(json_data)
17
- end
18
- object.attributes = { key => data }
8
+ object.class.columns_hash.select { |_key, attr| attr.type.in? [:json, :jsonb] }.keys.each do |key|
9
+ next unless params[resource_request_name].key? key
10
+ json_data = params[resource_request_name][key]
11
+ data = if json_data == 'null' || json_data.blank?
12
+ {}
13
+ else
14
+ JSON.parse(json_data)
19
15
  end
20
- else
21
- raise ActionController::ParameterMissing, request_namespace
16
+ object.attributes = { key => data }
22
17
  end
18
+ object.nested_attributes_options.keys.each {|_nested_key|
19
+ nested_attributes_with_index = params[resource_request_name]["#{_nested_key}_attributes"]
20
+ next if nested_attributes_with_index.nil?
21
+ nested_klass = _nested_key.to_s.singularize.camelize.constantize
22
+ nested_klass.columns_hash.select { |_key, attr| attr.type.in? [:json, :jsonb] }.keys.each do |key|
23
+ nested_attributes_with_index.each {|_index, nested_attributes|
24
+ next unless nested_attributes.key? key
25
+ json_data = nested_attributes[key]
26
+ data = if json_data == 'null' || json_data.blank?
27
+ {}
28
+ else
29
+ JSON.parse(json_data)
30
+ end
31
+ object.send(_nested_key).each {|nested_object|
32
+ nested_object.attributes = { key => data }
33
+ }
34
+ }
35
+ end
36
+ }
23
37
  end
24
38
  end
25
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeadmin_json_editor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - allanbreyes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-15 00:00:00.000000000 Z
11
+ date: 2021-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -60,6 +60,7 @@ executables: []
60
60
  extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
+ - ".gitignore"
63
64
  - Gemfile
64
65
  - Gemfile.lock
65
66
  - LICENSE.txt
@@ -76,7 +77,6 @@ files:
76
77
  - lib/activeadmin_json_editor.rb
77
78
  - vendor/assets/images/img/jsoneditor-icons.png
78
79
  - vendor/assets/images/jsoneditor/img/jsoneditor-icons.png
79
- - vendor/assets/javascripts/.gitkeep
80
80
  - vendor/assets/javascripts/jsoneditor/asset/ace/ace.js
81
81
  - vendor/assets/javascripts/jsoneditor/asset/ace/ext-searchbox.js
82
82
  - vendor/assets/javascripts/jsoneditor/asset/ace/mode-json.js
@@ -87,7 +87,6 @@ files:
87
87
  - vendor/assets/javascripts/jsoneditor/jsoneditor.js
88
88
  - vendor/assets/javascripts/jsoneditor/jsoneditor.map
89
89
  - vendor/assets/javascripts/jsoneditor/jsoneditor.min.js
90
- - vendor/assets/stylesheets/.gitkeep
91
90
  - vendor/assets/stylesheets/jsoneditor/jsoneditor.min.css
92
91
  - vendor/assets/stylesheets/jsoneditor/jsoneditor.scss
93
92
  homepage: https://github.com/allanbreyes/activeadmin_json_editor
@@ -109,8 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
108
  - !ruby/object:Gem::Version
110
109
  version: 1.3.6
111
110
  requirements: []
112
- rubyforge_project:
113
- rubygems_version: 2.7.6
111
+ rubygems_version: 3.1.2
114
112
  signing_key:
115
113
  specification_version: 4
116
114
  summary: add "json_input" and "jsonb_input" field type to active_admin that allow
File without changes
File without changes