active_admin_scoped_collection_actions 0.3.5 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 48f3b27e6e615890eca448e5061ca11e96b249c6
4
- data.tar.gz: c1c4f7226524058d732eb544506a6baa9c300ac6
2
+ SHA256:
3
+ metadata.gz: f9192c809349fab7e5444cea16d61270bd75e2a113c8cc79d1567ebea4c1dd75
4
+ data.tar.gz: f6fd7507751f7c7297f861fce239fb42a055703c619bea1292d0d98deb6ece6d
5
5
  SHA512:
6
- metadata.gz: 4239c88a770f0ea8ffb34ec806f738f11b80e1282d374c2e04cba3694167e3b6de6fdc3379ae21977c8dc86f57ed99506900823ddaa58a7fee8dea8123fa0cc9
7
- data.tar.gz: 5592807cf0f632006bcb5ba176409461ab5145305dcc30dc4125216ecfe80d95a615653133722ca72c895fa68ead8561024cfd9260c24d54c5e10b9ae870e526
6
+ metadata.gz: a46f91dd43671741a6491ba4e8c5188094bb803f2df0c0a8821d4b0a900b26dd75acf5e2d7c86534b9c03b5ae80a9b472482bf5b1998d61112de01117b255e6c
7
+ data.tar.gz: 234f4d2c251e0d48c3db9b1241c5628e32d2a57bf817e4b3884a41a5e150e5f06273aedd0a0ec999d5ba6d669f34caba9d12d0723cbf063a9f540942bdf4855d
data/.travis.yml CHANGED
@@ -1,8 +1,22 @@
1
+ sudo: required
2
+
3
+ language: ruby
4
+
5
+ addons:
6
+ chrome: stable
7
+
8
+ before_install:
9
+ - gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
10
+ - gem install bundler -v '< 2'
11
+
1
12
  script: bundle exec rspec spec
13
+
14
+ env:
15
+ matrix:
16
+ - RAILS=4.2.0 AA=1.1.0
17
+ - RAILS=5.2.0 AA=1.4.0
18
+ - RAILS=5.2.0 AA=2.0.0
19
+
2
20
  rvm:
3
- - 2.2.7
4
- - 2.3.4
5
- before_install:
6
- - gem install bundler -v '= 1.9.3'
7
- - gem update --system
8
- - gem --version
21
+ - 2.4.6
22
+ - 2.6.3
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## ActiveAdmin Scoped Collection Actions 0.3.5 (November 22, 2017) ##
2
+
3
+ * compatibility with Decorators, fix is intended for old ActiveAdmin (@Zamyatin-AA #30)
4
+
1
5
  ## ActiveAdmin Scoped Collection Actions 0.3.4 (August 19, 2017) ##
2
6
 
3
7
  * Swedish locale (@buren #27)
data/Gemfile CHANGED
@@ -1,18 +1,19 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in activeadmin_scoped_collection_actions.gemspec
4
3
  gemspec
4
+
5
5
  group :test do
6
- gem 'sprockets-rails', '2.3.3'
7
- gem 'rails', '~> 5.1'
8
- gem 'rspec-rails'
6
+ gem 'activeadmin', "~> #{ENV['AA'] || '2.0.0'}"
7
+ gem 'rails', "~> #{ENV['RAILS'] || '5.2.0'}"
8
+
9
+ gem 'capybara'
10
+ gem 'chromedriver-helper'
11
+ gem 'coveralls', require: false # Test coverage website. Go to https://coveralls.io
12
+ gem 'database_cleaner'
9
13
  gem 'draper'
10
- gem 'activeadmin', '1.0.0'
11
- gem 'sass-rails'
12
- gem 'sqlite3'
13
14
  gem 'launchy'
14
- gem 'database_cleaner'
15
- gem 'capybara'
15
+ gem 'rspec-rails'
16
+ gem 'sass-rails'
16
17
  gem 'selenium-webdriver'
17
- gem 'poltergeist'
18
+ gem 'sqlite3', '~> 1.3.6'
18
19
  end
data/README.md CHANGED
@@ -29,7 +29,7 @@ And then execute:
29
29
  $ bundle
30
30
  ```
31
31
 
32
- Add the following line at the end of "app/assets/javascript/active_admin.js.coffee":
32
+ Add the following line at the end of "app/assets/javascript/active_admin.js":
33
33
 
34
34
  ```javascript
35
35
  //= require active_admin_scoped_collection_actions
@@ -17,6 +17,5 @@ Gem::Specification.new do |spec|
17
17
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_development_dependency "bundler", "~> 1.8"
21
- spec.add_development_dependency "rake", "~> 10.0"
20
+ spec.add_dependency "activeadmin", ">= 1.1", "< 3.a"
22
21
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveAdminScopedCollectionActions
2
- VERSION = "0.3.5"
2
+ VERSION = '0.4.0'.freeze
3
3
  end
data/tasks/test.rake CHANGED
@@ -1,6 +1,14 @@
1
- desc "Creates a test rails app for the specs to run against"
1
+ desc 'Creates a test rails app for the specs to run against'
2
2
  task :setup do
3
3
  require 'rails/version'
4
- system("mkdir spec/rails") unless File.exists?("spec/rails")
5
- system "bundle exec rails new spec/rails/rails-#{Rails::VERSION::STRING} -m spec/support/rails_template.rb --skip-spring"
4
+
5
+ rails_new_args = %w[
6
+ --skip-turbolinks
7
+ --skip-spring
8
+ --skip-bootsnap
9
+ -m
10
+ spec/support/rails_template.rb
11
+ ].join(' ')
12
+
13
+ system "bundle exec rails new spec/rails/rails-#{Rails::VERSION::STRING} #{rails_new_args}"
6
14
  end
@@ -0,0 +1,29 @@
1
+ //= require ./lib/dialog_mass_fields_update
2
+
3
+ $(document).ready(() =>
4
+
5
+ $(document).on('click', '.scoped_collection_action_button', function(e) {
6
+ e.preventDefault();
7
+ const fields = JSON.parse( $(this).attr('data') );
8
+
9
+ return ActiveAdmin.dialogMassFieldsUpdate(fields['confirm'], fields['inputs'],
10
+ inputs=> {
11
+ const url = window.location.pathname + '/batch_action' + window.location.search;
12
+ const form_data = {
13
+ changes: inputs,
14
+ collection_selection: [],
15
+ authenticity_token: fields['auth_token'],
16
+ batch_action: fields['batch_action']
17
+ };
18
+ $('.paginated_collection').find('input.collection_selection:checked').each((i, el) => form_data["collection_selection"].push($(el).val()));
19
+
20
+ return $.post(url, form_data).always(function(data, textStatus, jqXHR) {
21
+ if (jqXHR.getResponseHeader('Location')) {
22
+ return window.location.assign(jqXHR.getResponseHeader('Location'));
23
+ } else {
24
+ return window.location.reload();
25
+ }
26
+ });
27
+ });
28
+ })
29
+ );
@@ -0,0 +1,73 @@
1
+ ActiveAdmin.dialogMassFieldsUpdate = function(message, inputs, callback){
2
+ let html = `<form id="dialog_confirm" title="${message}"><div stype="padding-right:4px;padding-left:1px;margin-right:2px"><ul>`;
3
+ for (let name in inputs) {
4
+ var elem, opts, wrapper;
5
+ let type = inputs[name];
6
+ if (/^(datepicker|checkbox|text)$/.test(type)) {
7
+ wrapper = 'input';
8
+ } else if ($.isArray(type)) {
9
+ [wrapper, elem, opts, type] = Array.from(['select', 'option', type, '']);
10
+ } else {
11
+ throw new Error(`Unsupported input type: {${name}: ${type}}`);
12
+ }
13
+
14
+ let klass = type === 'datepicker' ? type : '';
15
+ html += `<li>
16
+ <input type='checkbox' class='mass_update_protect_fild_flag' value='Y' id="mass_update_dialog_${name}" />
17
+ <label for="mass_update_dialog_${name}"> ${name.charAt(0).toUpperCase() + name.slice(1)}</label>
18
+ <${wrapper} name="${name}" class="${klass}" type="${type}" disabled="disabled">` +
19
+ (opts ? ((() => {
20
+ const result = [];
21
+
22
+ for (let v of Array.from(opts)) {
23
+ const $elem = $(`<${elem}/>`);
24
+ if ($.isArray(v)) {
25
+ $elem.text(v[0]).val(v[1]);
26
+ } else {
27
+ $elem.text(v);
28
+ }
29
+ result.push($elem.wrap('<div>').parent().html());
30
+ }
31
+
32
+ return result;
33
+ })()).join('') : '');
34
+ if (wrapper === 'select') {
35
+ html += `</${wrapper}>`;
36
+ }
37
+ html += "</li>";
38
+
39
+ [wrapper, elem, opts, type, klass] = Array.from([]);
40
+ } // unset any temporary variables
41
+
42
+ html += "</ul></div></form>";
43
+
44
+ const form = $(html).appendTo('body');
45
+
46
+ $('body').trigger('mass_update_modal_dialog:before_open', [form]);
47
+
48
+ return form.dialog({
49
+ modal: true,
50
+ dialogClass: 'active_admin_dialog active_admin_dialog_mass_update_by_filter',
51
+ maxHeight: window.innerHeight - (window.innerHeight * 0.1),
52
+ open() {
53
+ $('body').trigger('mass_update_modal_dialog:after_open', [form]);
54
+ return $('.mass_update_protect_fild_flag').on('change', function(e) {
55
+ if (this.checked) {
56
+ return $(e.target).next().next().removeAttr('disabled').trigger("chosen:updated");
57
+ } else {
58
+ return $(e.target).next().next().attr('disabled', 'disabled').trigger("chosen:updated");
59
+ }
60
+ });
61
+ },
62
+ buttons: {
63
+ OK(e){
64
+ $(e.target).closest('.ui-dialog-buttonset').html('<span>Processing. Please wait...</span>');
65
+ return callback($(this).serializeObject());
66
+ },
67
+ Cancel() {
68
+ $('.mass_update_protect_fild_flag').off('change');
69
+ return $(this).dialog('close').remove();
70
+ }
71
+ }
72
+ });
73
+ };
metadata CHANGED
@@ -1,43 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_admin_scoped_collection_actions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gena M.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-22 00:00:00.000000000 Z
11
+ date: 2019-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: activeadmin
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.8'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.8'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
19
+ version: '1.1'
20
+ - - "<"
32
21
  - !ruby/object:Gem::Version
33
- version: '10.0'
34
- type: :development
22
+ version: 3.a
23
+ type: :runtime
35
24
  prerelease: false
36
25
  version_requirements: !ruby/object:Gem::Requirement
37
26
  requirements:
38
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.1'
30
+ - - "<"
39
31
  - !ruby/object:Gem::Version
40
- version: '10.0'
32
+ version: 3.a
41
33
  description: Plugin for ActiveAdmin. Provides batch Update and Delete for scoped_collection
42
34
  (Filters + Scope) across all pages.
43
35
  email:
@@ -68,8 +60,8 @@ files:
68
60
  - screenshots/pupup.png
69
61
  - screenshots/sidebar.png
70
62
  - tasks/test.rake
71
- - vendor/assets/javascripts/active_admin_scoped_collection_actions.js.coffee
72
- - vendor/assets/javascripts/lib/dialog_mass_fields_update.js.coffee
63
+ - vendor/assets/javascripts/active_admin_scoped_collection_actions.js
64
+ - vendor/assets/javascripts/lib/dialog_mass_fields_update.js
73
65
  - vendor/assets/stylesheets/active_admin_scoped_collection_actions.scss
74
66
  homepage: https://github.com/activeadmin-plugins/active_admin_scoped_collection_actions
75
67
  licenses:
@@ -90,8 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
82
  - !ruby/object:Gem::Version
91
83
  version: '0'
92
84
  requirements: []
93
- rubyforge_project:
94
- rubygems_version: 2.6.13
85
+ rubygems_version: 3.0.2
95
86
  signing_key:
96
87
  specification_version: 4
97
88
  summary: scoped_collection actions extension for ActiveAdmin
@@ -1,25 +0,0 @@
1
- #= require ./lib/dialog_mass_fields_update
2
-
3
- $(document).ready ->
4
-
5
- $(document).on 'click', '.scoped_collection_action_button', (e) ->
6
- e.preventDefault()
7
- fields = JSON.parse( $(this).attr('data') )
8
-
9
- ActiveAdmin.dialogMassFieldsUpdate fields['confirm'], fields['inputs'],
10
- (inputs)=>
11
- url = window.location.pathname + '/batch_action' + window.location.search
12
- form_data = {
13
- changes: inputs,
14
- collection_selection: [],
15
- authenticity_token: fields['auth_token'],
16
- batch_action: fields['batch_action']
17
- }
18
- $('.paginated_collection').find('input.collection_selection:checked').each (i, el) ->
19
- form_data["collection_selection"].push($(el).val())
20
-
21
- $.post(url, form_data).always (data, textStatus, jqXHR) ->
22
- if jqXHR.getResponseHeader('Location')
23
- window.location.assign jqXHR.getResponseHeader('Location')
24
- else
25
- window.location.reload()
@@ -1,54 +0,0 @@
1
- ActiveAdmin.dialogMassFieldsUpdate = (message, inputs, callback)->
2
- html = """<form id="dialog_confirm" title="#{message}"><div stype="padding-right:4px;padding-left:1px;margin-right:2px"><ul>"""
3
- for name, type of inputs
4
- if /^(datepicker|checkbox|text)$/.test type
5
- wrapper = 'input'
6
- else if $.isArray type
7
- [wrapper, elem, opts, type] = ['select', 'option', type, '']
8
- else
9
- throw new Error "Unsupported input type: {#{name}: #{type}}"
10
-
11
- klass = if type is 'datepicker' then type else ''
12
- html += """<li>
13
- <input type='checkbox' class='mass_update_protect_fild_flag' value='Y' id="mass_update_dialog_#{name}" />
14
- <label for="mass_update_dialog_#{name}"> #{name.charAt(0).toUpperCase() + name.slice(1)}</label>
15
- <#{wrapper} name="#{name}" class="#{klass}" type="#{type}" disabled="disabled">""" +
16
- (if opts then (
17
- for v in opts
18
- $elem = $("<#{elem}/>")
19
- if $.isArray v
20
- $elem.text(v[0]).val(v[1])
21
- else
22
- $elem.text(v)
23
- $elem.wrap('<div>').parent().html()
24
- ).join '' else '')
25
- if wrapper == 'select'
26
- html += "</#{wrapper}>"
27
- html += "</li>"
28
-
29
- [wrapper, elem, opts, type, klass] = [] # unset any temporary variables
30
-
31
- html += "</ul></div></form>"
32
-
33
- form = $(html).appendTo('body')
34
-
35
- $('body').trigger 'mass_update_modal_dialog:before_open', [form]
36
-
37
- form.dialog
38
- modal: true
39
- dialogClass: 'active_admin_dialog active_admin_dialog_mass_update_by_filter',
40
- maxHeight: window.innerHeight - window.innerHeight * 0.1,
41
- open: ->
42
- $('body').trigger 'mass_update_modal_dialog:after_open', [form]
43
- $('.mass_update_protect_fild_flag').on 'change', (e) ->
44
- if this.checked
45
- $(e.target).next().next().removeAttr('disabled').trigger("chosen:updated")
46
- else
47
- $(e.target).next().next().attr('disabled', 'disabled').trigger("chosen:updated")
48
- buttons:
49
- OK: (e)->
50
- $(e.target).closest('.ui-dialog-buttonset').html('<span>Processing. Please wait...</span>')
51
- callback $(@).serializeObject()
52
- Cancel: ->
53
- $('.mass_update_protect_fild_flag').off('change')
54
- $(@).dialog('close').remove()