activeadmin 1.4.3 → 2.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +70 -10
  3. data/CONTRIBUTING.md +12 -11
  4. data/README.md +34 -8
  5. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  6. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  7. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  8. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  9. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  10. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  11. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  12. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +55 -0
  13. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  14. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  15. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  16. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  17. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  18. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  19. data/app/assets/stylesheets/active_admin/_forms.scss +2 -14
  20. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  21. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  23. data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
  24. data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
  25. data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
  26. data/app/views/active_admin/devise/registrations/new.html.erb +1 -2
  27. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  28. data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
  29. data/app/views/layouts/active_admin_logged_out.html.erb +1 -1
  30. data/config/locales/bg.yml +0 -1
  31. data/config/locales/he.yml +0 -1
  32. data/config/locales/hu.yml +4 -0
  33. data/config/locales/lt.yml +2 -2
  34. data/config/locales/uk.yml +2 -0
  35. data/docs/0-installation.md +2 -2
  36. data/docs/13-authorization-adapter.md +4 -4
  37. data/docs/CNAME +1 -1
  38. data/docs/index.html +2 -2
  39. data/lib/active_admin.rb +9 -4
  40. data/lib/active_admin/application.rb +8 -14
  41. data/lib/active_admin/application_settings.rb +3 -0
  42. data/lib/active_admin/asset_registration.rb +0 -8
  43. data/lib/active_admin/base_controller.rb +6 -6
  44. data/lib/active_admin/base_controller/authorization.rb +2 -4
  45. data/lib/active_admin/batch_actions/controller.rb +1 -1
  46. data/lib/active_admin/batch_actions/resource_extension.rb +4 -4
  47. data/lib/active_admin/callbacks.rb +1 -1
  48. data/lib/active_admin/csv_builder.rb +1 -1
  49. data/lib/active_admin/dependency.rb +1 -77
  50. data/lib/active_admin/dsl.rb +1 -8
  51. data/lib/active_admin/error.rb +1 -1
  52. data/lib/active_admin/filters/active_filter.rb +3 -1
  53. data/lib/active_admin/filters/active_sidebar.rb +5 -1
  54. data/lib/active_admin/filters/forms.rb +2 -2
  55. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  56. data/lib/active_admin/filters/resource_extension.rb +3 -3
  57. data/lib/active_admin/form_builder.rb +3 -3
  58. data/lib/active_admin/generators/boilerplate.rb +1 -1
  59. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  60. data/lib/active_admin/inputs/datepicker_input.rb +1 -1
  61. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  62. data/lib/active_admin/menu_item.rb +1 -1
  63. data/lib/active_admin/namespace.rb +2 -2
  64. data/lib/active_admin/namespace_settings.rb +7 -4
  65. data/lib/active_admin/orm/active_record/comments.rb +4 -4
  66. data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
  67. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +10 -5
  68. data/lib/active_admin/page_dsl.rb +1 -1
  69. data/lib/active_admin/pundit_adapter.rb +13 -4
  70. data/lib/active_admin/resource.rb +2 -2
  71. data/lib/active_admin/resource/action_items.rb +1 -1
  72. data/lib/active_admin/resource/attributes.rb +7 -4
  73. data/lib/active_admin/resource/menu.rb +3 -3
  74. data/lib/active_admin/resource/naming.rb +3 -3
  75. data/lib/active_admin/resource/routes.rb +9 -4
  76. data/lib/active_admin/resource/scopes.rb +3 -3
  77. data/lib/active_admin/resource/sidebars.rb +1 -1
  78. data/lib/active_admin/resource_collection.rb +2 -2
  79. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  80. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  81. data/lib/active_admin/resource_dsl.rb +5 -3
  82. data/lib/active_admin/router.rb +1 -1
  83. data/lib/active_admin/scope.rb +4 -4
  84. data/lib/active_admin/settings_node.rb +1 -1
  85. data/lib/active_admin/version.rb +1 -1
  86. data/lib/active_admin/view_helpers.rb +1 -1
  87. data/lib/active_admin/view_helpers/display_helper.rb +10 -2
  88. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
  89. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +2 -0
  90. data/lib/active_admin/views.rb +1 -1
  91. data/lib/active_admin/views/components/active_admin_form.rb +7 -1
  92. data/lib/active_admin/views/components/attributes_table.rb +3 -3
  93. data/lib/active_admin/views/components/paginated_collection.rb +1 -1
  94. data/lib/active_admin/views/components/sidebar_section.rb +0 -3
  95. data/lib/active_admin/views/components/status_tag.rb +1 -18
  96. data/lib/active_admin/views/components/table_for.rb +2 -2
  97. data/lib/active_admin/views/components/tabs.rb +11 -2
  98. data/lib/active_admin/views/footer.rb +1 -1
  99. data/lib/active_admin/views/index_as_table.rb +5 -4
  100. data/lib/active_admin/views/pages/base.rb +3 -0
  101. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  102. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  103. data/lib/generators/active_admin/install/install_generator.rb +6 -2
  104. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -1
  105. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  106. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  107. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  108. data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
  109. data/lib/ransack_ext.rb +3 -3
  110. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  111. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  112. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  113. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  114. metadata +107 -96
  115. data/.circleci/config.yml +0 -572
  116. data/.github/ISSUE_TEMPLATE.md +0 -20
  117. data/.gitignore +0 -16
  118. data/.mdlrc +0 -1
  119. data/.rspec +0 -1
  120. data/.rspec_parallel +0 -2
  121. data/.rubocop.yml +0 -99
  122. data/.simplecov +0 -9
  123. data/.yardopts +0 -7
  124. data/Gemfile +0 -30
  125. data/Gemfile.common +0 -26
  126. data/Gemfile.lock +0 -433
  127. data/Rakefile +0 -24
  128. data/activeadmin.gemspec +0 -32
  129. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  130. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  131. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  132. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  133. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  134. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  135. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  136. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  137. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  138. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  139. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  140. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  141. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  142. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  143. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  144. data/bin/install_chromedriver.sh +0 -17
  145. data/config/i18n-tasks.yml +0 -26
  146. data/config/mdl_style.rb +0 -11
  147. data/cucumber.yml +0 -7
  148. data/gemfiles/rails_42.gemfile +0 -10
  149. data/gemfiles/rails_42.gemfile.lock +0 -339
  150. data/gemfiles/rails_50.gemfile +0 -10
  151. data/gemfiles/rails_50.gemfile.lock +0 -353
  152. data/gemfiles/rails_51.gemfile +0 -10
  153. data/gemfiles/rails_51.gemfile.lock +0 -353
  154. data/lib/active_admin/event.rb +0 -24
  155. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  156. data/lib/bug_report_templates/active_admin_master.rb +0 -111
  157. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  158. data/tasks/application_generator.rb +0 -50
  159. data/tasks/docs.rake +0 -64
  160. data/tasks/gemfiles.rake +0 -8
  161. data/tasks/lint.rake +0 -110
  162. data/tasks/local.rake +0 -27
  163. data/tasks/release.rake +0 -6
  164. data/tasks/test.rake +0 -42
data/Rakefile DELETED
@@ -1,24 +0,0 @@
1
- require 'bundler/gem_tasks'
2
-
3
- import 'tasks/gemfiles.rake'
4
- import 'tasks/local.rake'
5
- import 'tasks/test.rake'
6
-
7
- if ENV['BUNDLE_GEMFILE'] == File.expand_path('Gemfile')
8
- import 'tasks/docs.rake'
9
- import 'tasks/lint.rake'
10
- import 'tasks/release.rake'
11
- end
12
-
13
- task default: :test
14
-
15
- require 'jasmine'
16
- load 'jasmine/tasks/jasmine.rake'
17
-
18
- task :console do
19
- require 'irb'
20
- require 'irb/completion'
21
-
22
- ARGV.clear
23
- IRB.start
24
- end
@@ -1,32 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "lib", "active_admin", "version")
2
-
3
- Gem::Specification.new do |s|
4
- s.name = 'activeadmin'
5
- s.license = 'MIT'
6
- s.version = ActiveAdmin::VERSION
7
- s.homepage = 'http://activeadmin.info'
8
- s.authors = ['Greg Bell']
9
- s.email = ['gregdbell@gmail.com']
10
- s.description = 'The administration framework for Ruby on Rails.'
11
- s.summary = 'The administration framework for Ruby on Rails.'
12
-
13
- s.files = `git ls-files -z`.split("\x0").reject do |f|
14
- f.match(%r{^(spec|features)/})
15
- end
16
-
17
- s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
18
-
19
- s.required_ruby_version = '>= 2.3'
20
-
21
- s.add_dependency 'arbre', '>= 1.1.1'
22
- s.add_dependency 'coffee-rails'
23
- s.add_dependency 'formtastic', '~> 3.1'
24
- s.add_dependency 'formtastic_i18n'
25
- s.add_dependency 'inherited_resources', '>= 1.9.0'
26
- s.add_dependency 'jquery-rails', '>= 4.2.0'
27
- s.add_dependency 'kaminari', '>= 0.15'
28
- s.add_dependency 'railties', '>= 4.2', '< 5.3'
29
- s.add_dependency 'ransack', '>= 1.8.7'
30
- s.add_dependency 'sass', '~> 3.1'
31
- s.add_dependency 'sprockets', '< 4.1'
32
- end
@@ -1,13 +0,0 @@
1
- #= require jquery3
2
- #= require jquery-ui/widgets/datepicker
3
- #= require jquery-ui/widgets/dialog
4
- #= require jquery-ui/widgets/sortable
5
- #= require jquery-ui/widgets/tabs
6
- #= require jquery-ui/widget
7
- #= require jquery_ujs
8
- #= require_self
9
- #= require_tree ./lib
10
- #= require_tree ./ext
11
- #= require_tree ./initializers
12
-
13
- window.ActiveAdmin = {}
@@ -1,6 +0,0 @@
1
- # Short-circuits `_focusTabbable` to focus on the modal itself instead of
2
- # elements inside the modal. Without this, if a datepicker is the first input,
3
- # it'll immediately pop up when the modal opens.
4
- # See this ticket for more info: http://bugs.jqueryui.com/ticket/4731
5
- $.ui.dialog.prototype._focusTabbable = ->
6
- @uiDialog.focus()
@@ -1,7 +0,0 @@
1
- # `serializeArray` generates => [{ name: 'foo', value: 'bar' }]
2
- # This function remaps it to => { foo: 'bar' }
3
- $.fn.serializeObject = ->
4
- obj = {}
5
- for o in @serializeArray()
6
- obj[o.name] = o.value
7
- obj
@@ -1,11 +0,0 @@
1
- onDOMReady = ->
2
- # In order for index scopes to overflow properly onto the next line, we have
3
- # to manually set its width based on the width of the batch action button.
4
- if (batch_actions_selector = $('.table_tools .batch_actions_selector')).length
5
- batch_actions_selector.next().css
6
- width: "calc(100% - 10px - #{batch_actions_selector.outerWidth()}px)"
7
- 'float': 'right'
8
-
9
- $(document).
10
- ready(onDOMReady).
11
- on 'page:load turbolinks:load', onDOMReady
@@ -1,14 +0,0 @@
1
- onDOMReady = ->
2
- $(document).on 'focus', 'input.datepicker:not(.hasDatepicker)', ->
3
- input = $(@)
4
-
5
- # Only create datepickers in compatible browsers
6
- return if input[0].type is 'date'
7
-
8
- defaults = dateFormat: 'yy-mm-dd'
9
- options = input.data 'datepicker-options'
10
- input.datepicker $.extend(defaults, options)
11
-
12
- $(document).
13
- ready(onDOMReady).
14
- on 'page:load turbolinks:load', onDOMReady
@@ -1,26 +0,0 @@
1
- onDOMReady = ->
2
- # Clear Filters button
3
- $('.clear_filters_btn').click (e) ->
4
- params = window.location.search.slice(1).split('&')
5
- regex = /^(q\[|q%5B|q%5b|page|commit)/
6
- if typeof Turbolinks != 'undefined'
7
- Turbolinks.visit(window.location.href.split('?')[0] + '?' + (param for param in params when not param.match(regex)).join('&'))
8
- e.preventDefault()
9
- else
10
- window.location.search = (param for param in params when not param.match(regex)).join('&')
11
-
12
- # Filter form: don't send any inputs that are empty
13
- $('.filter_form').submit (e) ->
14
- $(@).find(':input').filter(-> @value is '').prop 'disabled', true
15
- if typeof Turbolinks != 'undefined'
16
- Turbolinks.visit(window.location.href.split('?')[0] + '?' + $( this ).serialize())
17
- e.preventDefault()
18
-
19
- # Filter form: for filters that let you choose the query method from
20
- # a dropdown, apply that choice to the filter input field.
21
- $('.filter_form_field.select_and_search select').change ->
22
- $(@).siblings('input').prop name: "q[#{@value}]"
23
-
24
- $(document).
25
- ready(onDOMReady).
26
- on 'page:load turbolinks:load', onDOMReady
@@ -1,7 +0,0 @@
1
- onDOMReady = ->
2
- # Tab navigation
3
- $('#active_admin_content .tabs').tabs()
4
-
5
- $(document).
6
- ready(onDOMReady).
7
- on 'page:load turbolinks:load', onDOMReady
@@ -1,42 +0,0 @@
1
- onDOMReady = ->
2
- #
3
- # Use ActiveAdmin.modal_dialog to prompt user if confirmation is required for current Batch Action
4
- #
5
- $('.batch_actions_selector li a').click (e)->
6
- e.stopPropagation() # prevent Rails UJS click event
7
- e.preventDefault()
8
- if message = $(@).data 'confirm'
9
- ActiveAdmin.modal_dialog message, $(@).data('inputs'), (inputs)=>
10
- $(@).trigger 'confirm:complete', inputs
11
- else
12
- $(@).trigger 'confirm:complete'
13
-
14
- $('.batch_actions_selector li a').on 'confirm:complete', (e, inputs)->
15
- if val = JSON.stringify inputs
16
- $('#batch_action_inputs').removeAttr('disabled').val val
17
- else
18
- $('#batch_action_inputs').attr 'disabled', 'disabled'
19
-
20
- $('#batch_action').val $(@).data 'action'
21
- $('#collection_selection').submit()
22
-
23
- #
24
- # Add checkbox selection to resource tables and lists if batch actions are enabled
25
- #
26
-
27
- if $(".batch_actions_selector").length && $(":checkbox.toggle_all").length
28
-
29
- if $(".paginated_collection table.index_table").length
30
- $(".paginated_collection table.index_table").tableCheckboxToggler()
31
- else
32
- $(".paginated_collection").checkboxToggler()
33
-
34
- $(document).on 'change', '.paginated_collection :checkbox', ->
35
- if $(".paginated_collection :checkbox:checked").length
36
- $(".batch_actions_selector").each -> $(@).aaDropdownMenu("enable")
37
- else
38
- $(".batch_actions_selector").each -> $(@).aaDropdownMenu("disable")
39
-
40
- $(document).
41
- ready(onDOMReady).
42
- on 'page:load turbolinks:load', onDOMReady
@@ -1,46 +0,0 @@
1
- class ActiveAdmin.CheckboxToggler
2
- constructor: (@options, @container)->
3
- defaults = {}
4
- @options = $.extend defaults, @options
5
- @_init()
6
- @_bind()
7
-
8
- _init: ->
9
- if not @container
10
- throw new Error('Container element not found')
11
- else
12
- @$container = $(@container)
13
-
14
- if not @$container.find('.toggle_all').length
15
- throw new Error('"toggle all" checkbox not found')
16
- else
17
- @toggle_all_checkbox = @$container.find '.toggle_all'
18
-
19
- @checkboxes = @$container.find(':checkbox').not @toggle_all_checkbox
20
-
21
- _bind: ->
22
- @checkboxes.change (e)=> @_didChangeCheckbox e.target
23
- @toggle_all_checkbox.change => @_didChangeToggleAllCheckbox()
24
-
25
- _didChangeCheckbox: (checkbox)->
26
- numChecked = @checkboxes.filter(':checked').length
27
-
28
- allChecked = numChecked == @checkboxes.length
29
- someChecked = numChecked > 0 && numChecked < @checkboxes.length
30
-
31
- @toggle_all_checkbox.prop checked: allChecked, indeterminate: someChecked
32
-
33
- _didChangeToggleAllCheckbox: ->
34
- setting = @toggle_all_checkbox.prop 'checked'
35
- @checkboxes.prop checked: setting
36
- setting
37
-
38
- option: (key, value) ->
39
- if $.isPlainObject(key)
40
- @options = $.extend(true, @options, key)
41
- else if key?
42
- @options[key]
43
- else
44
- @options[key] = value
45
-
46
- $.widget.bridge 'checkboxToggler', ActiveAdmin.CheckboxToggler
@@ -1,104 +0,0 @@
1
- class ActiveAdmin.DropdownMenu
2
-
3
- constructor: (@options, @element) ->
4
- @$element = $(@element)
5
-
6
- defaults = {
7
- fadeInDuration: 20,
8
- fadeOutDuration: 100,
9
- onClickActionItemCallback: null
10
- }
11
-
12
- @options = $.extend defaults, @options
13
- @isOpen = false
14
-
15
- @$menuButton = @$element.find '.dropdown_menu_button'
16
- @$menuList = @$element.find '.dropdown_menu_list_wrapper'
17
-
18
- @_buildMenuList()
19
- @_bind()
20
-
21
- open: ->
22
- @isOpen = true
23
- @$menuList.fadeIn @options.fadeInDuration
24
-
25
- @_position()
26
- @
27
-
28
-
29
- close: ->
30
- @isOpen = false
31
- @$menuList.fadeOut this.options.fadeOutDuration
32
- @
33
-
34
- destroy: ->
35
- @$element = null
36
- @
37
-
38
- isDisabled: ->
39
- @$menuButton.hasClass 'disabled'
40
-
41
- disable: ->
42
- @$menuButton.addClass 'disabled'
43
-
44
- enable: ->
45
- @$menuButton.removeClass 'disabled'
46
-
47
- option: (key, value) ->
48
- if $.isPlainObject(key)
49
- @options = $.extend(true, @options, key)
50
- else if key?
51
- @options[key]
52
- else
53
- @options[key] = value
54
-
55
- # Private
56
-
57
- _buildMenuList: ->
58
- @$nipple = $('<div class="dropdown_menu_nipple"></div>')
59
- @$menuList.prepend @$nipple
60
- @$menuList.hide()
61
-
62
- _bind: ->
63
- $('body').click =>
64
- @close() if @isOpen
65
-
66
- @$menuButton.click =>
67
- unless @isDisabled()
68
- if @isOpen then @close() else @open()
69
- false
70
-
71
- _position: ->
72
- @$menuList.css 'top', @$menuButton.position().top + @$menuButton.outerHeight() + 10
73
-
74
- button_left = @$menuButton.position().left
75
- button_center = @$menuButton.outerWidth() / 2
76
- button_right = button_left + button_center * 2
77
- menu_center = @$menuList.outerWidth() / 2
78
- nipple_center = @$nipple.outerWidth() / 2
79
- window_right = $(window).width()
80
-
81
- centered_menu_left = button_left + button_center - menu_center
82
- centered_menu_right = button_left + button_center + menu_center
83
-
84
- if centered_menu_left < 0
85
- # Left align with button
86
- @$menuList.css 'left', button_left
87
- @$nipple.css 'left', button_center - nipple_center
88
- else if centered_menu_right > window_right
89
- # Right align with button
90
- @$menuList.css 'right', window_right - button_right
91
- @$nipple.css 'right', button_center - nipple_center
92
- else
93
- # Center align under button
94
- @$menuList.css 'left', centered_menu_left
95
- @$nipple.css 'left', menu_center - nipple_center
96
-
97
- $.widget.bridge 'aaDropdownMenu', ActiveAdmin.DropdownMenu
98
-
99
- onDOMReady = ->
100
- $('.dropdown_menu').aaDropdownMenu()
101
-
102
- $(document).
103
- ready(onDOMReady).
104
- on 'page:load turbolinks:load', onDOMReady
@@ -1,19 +0,0 @@
1
- ActiveAdmin.flash =
2
- class Flash
3
- @error: (message, close_after) ->
4
- new @ message, "error", close_after
5
- @notice: (message, close_after) ->
6
- new @ message, "notice", close_after
7
- reference: ->
8
- @reference
9
- constructor: (@message, @type = "notice", close_after) ->
10
- @reference = jQuery("<div>").addClass("flash flash_#{@type}").text(@message)
11
- jQuery ".flashes"
12
- .append @reference
13
- @close_after close_after if close_after?
14
- close_after: (close_after) ->
15
- setTimeout =>
16
- @close()
17
- , close_after * 1000
18
- close: ->
19
- @reference.remove()
@@ -1,79 +0,0 @@
1
- $ ->
2
- # Provides a before-removal hook:
3
- # $ ->
4
- # # This is a good place to tear down JS plugins to prevent memory leaks.
5
- # $(document).on 'has_many_remove:before', '.has_many_container', (e, fieldset, container)->
6
- # fieldset.find('.select2').select2 'destroy'
7
- #
8
- # # If you need to do anything after removing the items you can use the
9
- # has_many_remove:after hook
10
- # $(document).on 'has_many_remove:after', '.has_many_container', (e, fieldset, container)->
11
- # list_item_count = container.find('.has_many_fields').length
12
- # alert("There are now #{list_item_count} items in the list")
13
- #
14
- $(document).on 'click', 'a.button.has_many_remove', (e)->
15
- e.preventDefault()
16
- parent = $(@).closest '.has_many_container'
17
- to_remove = $(@).closest 'fieldset'
18
- recompute_positions parent
19
-
20
- parent.trigger 'has_many_remove:before', [to_remove, parent]
21
- to_remove.remove()
22
- parent.trigger 'has_many_remove:after', [to_remove, parent]
23
-
24
- # Provides before and after creation hooks:
25
- # $ ->
26
- # # The before hook allows you to prevent the creation of new records.
27
- # $(document).on 'has_many_add:before', '.has_many_container', (e, container)->
28
- # if $(@).children('fieldset').length >= 3
29
- # alert "you've reached the maximum number of items"
30
- # e.preventDefault()
31
- #
32
- # # The after hook is a good place to initialize JS plugins and the like.
33
- # $(document).on 'has_many_add:after', '.has_many_container', (e, fieldset, container)->
34
- # fieldset.find('select').chosen()
35
- #
36
- $(document).on 'click', 'a.button.has_many_add', (e)->
37
- e.preventDefault()
38
- parent = $(@).closest '.has_many_container'
39
- parent.trigger before_add = $.Event('has_many_add:before'), [parent]
40
-
41
- unless before_add.isDefaultPrevented()
42
- index = parent.data('has_many_index') || parent.children('fieldset').length - 1
43
- parent.data has_many_index: ++index
44
-
45
- regex = new RegExp $(@).data('placeholder'), 'g'
46
- html = $(@).data('html').replace regex, index
47
-
48
- fieldset = $(html).insertBefore(@)
49
- recompute_positions parent
50
- parent.trigger 'has_many_add:after', [fieldset, parent]
51
-
52
- $(document).on 'change','.has_many_container[data-sortable] :input[name$="[_destroy]"]', ->
53
- recompute_positions $(@).closest '.has_many'
54
-
55
- init_sortable()
56
- $(document).on 'has_many_add:after', '.has_many_container', init_sortable
57
-
58
-
59
- init_sortable = ->
60
- elems = $('.has_many_container[data-sortable]:not(.ui-sortable)')
61
- elems.sortable \
62
- items: '> fieldset',
63
- handle: '> ol > .handle',
64
- stop: recompute_positions
65
- elems.each recompute_positions
66
-
67
- recompute_positions = (parent)->
68
- parent = if parent instanceof jQuery then parent else $(@)
69
- input_name = parent.data 'sortable'
70
- position = parseInt(parent.data('sortable-start') || 0, 10)
71
-
72
- parent.children('fieldset').each ->
73
- # We ignore nested inputs, so when defining your has_many, be sure to keep
74
- # your sortable input at the root of the has_many block.
75
- destroy_input = $(@).find "> ol > .input > :input[name$='[_destroy]']"
76
- sortable_input = $(@).find "> ol > .input > :input[name$='[#{input_name}]']"
77
-
78
- if sortable_input.length
79
- sortable_input.val if destroy_input.is ':checked' then '' else position++