activeadmin 1.4.3 → 2.0.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 +4 -4
- data/CHANGELOG.md +92 -11
- data/CONTRIBUTING.md +12 -11
- data/README.md +34 -8
- data/app/assets/javascripts/active_admin/base.es6 +23 -0
- data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
- data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
- data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
- data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
- data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
- data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +55 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
- data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
- data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
- data/app/assets/stylesheets/active_admin/_forms.scss +2 -14
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
- data/app/views/active_admin/devise/registrations/new.html.erb +1 -2
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
- data/app/views/layouts/active_admin_logged_out.html.erb +1 -1
- data/config/locales/bg.yml +0 -1
- data/config/locales/he.yml +0 -1
- data/config/locales/hu.yml +4 -0
- data/config/locales/lt.yml +2 -2
- data/config/locales/uk.yml +2 -0
- data/docs/0-installation.md +2 -2
- data/docs/13-authorization-adapter.md +4 -4
- data/docs/CNAME +1 -1
- data/docs/index.html +2 -2
- data/lib/active_admin/application.rb +8 -14
- data/lib/active_admin/application_settings.rb +3 -0
- data/lib/active_admin/asset_registration.rb +0 -8
- data/lib/active_admin/base_controller/authorization.rb +2 -4
- data/lib/active_admin/base_controller.rb +6 -6
- data/lib/active_admin/batch_actions/controller.rb +1 -1
- data/lib/active_admin/batch_actions/resource_extension.rb +4 -4
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/csv_builder.rb +1 -1
- data/lib/active_admin/dependency.rb +7 -75
- data/lib/active_admin/dsl.rb +1 -8
- data/lib/active_admin/error.rb +1 -1
- data/lib/active_admin/filters/active_filter.rb +3 -1
- data/lib/active_admin/filters/active_sidebar.rb +5 -1
- data/lib/active_admin/filters/forms.rb +2 -2
- data/lib/active_admin/filters/formtastic_addons.rb +1 -1
- data/lib/active_admin/filters/resource_extension.rb +3 -3
- data/lib/active_admin/form_builder.rb +3 -3
- data/lib/active_admin/generators/boilerplate.rb +1 -1
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +1 -1
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
- data/lib/active_admin/menu_item.rb +1 -1
- data/lib/active_admin/namespace.rb +2 -2
- data/lib/active_admin/namespace_settings.rb +7 -4
- data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +10 -5
- data/lib/active_admin/orm/active_record/comments.rb +4 -4
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/pundit_adapter.rb +13 -4
- data/lib/active_admin/resource/action_items.rb +1 -1
- data/lib/active_admin/resource/attributes.rb +7 -4
- data/lib/active_admin/resource/menu.rb +3 -3
- data/lib/active_admin/resource/naming.rb +3 -3
- data/lib/active_admin/resource/routes.rb +9 -4
- data/lib/active_admin/resource/scopes.rb +3 -3
- data/lib/active_admin/resource/sidebars.rb +1 -1
- data/lib/active_admin/resource.rb +2 -2
- data/lib/active_admin/resource_collection.rb +2 -2
- data/lib/active_admin/resource_controller/action_builder.rb +10 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
- data/lib/active_admin/resource_dsl.rb +5 -3
- data/lib/active_admin/router.rb +1 -1
- data/lib/active_admin/scope.rb +4 -4
- data/lib/active_admin/settings_node.rb +1 -1
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers/display_helper.rb +10 -2
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +2 -0
- data/lib/active_admin/view_helpers.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +7 -1
- data/lib/active_admin/views/components/attributes_table.rb +3 -3
- data/lib/active_admin/views/components/paginated_collection.rb +1 -1
- data/lib/active_admin/views/components/sidebar_section.rb +0 -3
- data/lib/active_admin/views/components/status_tag.rb +1 -18
- data/lib/active_admin/views/components/table_for.rb +2 -2
- data/lib/active_admin/views/components/tabs.rb +11 -2
- data/lib/active_admin/views/footer.rb +1 -1
- data/lib/active_admin/views/index_as_table.rb +5 -4
- data/lib/active_admin/views/pages/base.rb +3 -0
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin.rb +9 -4
- data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/install/install_generator.rb +6 -2
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -1
- data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
- data/lib/generators/active_admin/page/page_generator.rb +1 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
- data/lib/ransack_ext.rb +3 -3
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
- data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
- data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
- metadata +106 -95
- data/.circleci/config.yml +0 -572
- data/.github/ISSUE_TEMPLATE.md +0 -20
- data/.gitignore +0 -16
- data/.mdlrc +0 -1
- data/.rspec +0 -1
- data/.rspec_parallel +0 -2
- data/.rubocop.yml +0 -99
- data/.simplecov +0 -9
- data/.yardopts +0 -7
- data/Gemfile +0 -30
- data/Gemfile.common +0 -26
- data/Gemfile.lock +0 -433
- data/Rakefile +0 -24
- data/activeadmin.gemspec +0 -32
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
- data/bin/install_chromedriver.sh +0 -17
- data/config/i18n-tasks.yml +0 -26
- data/config/mdl_style.rb +0 -11
- data/cucumber.yml +0 -7
- data/gemfiles/rails_42.gemfile +0 -10
- data/gemfiles/rails_42.gemfile.lock +0 -339
- data/gemfiles/rails_50.gemfile +0 -10
- data/gemfiles/rails_50.gemfile.lock +0 -353
- data/gemfiles/rails_51.gemfile +0 -10
- data/gemfiles/rails_51.gemfile.lock +0 -353
- data/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
- data/lib/bug_report_templates/active_admin_master.rb +0 -111
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/tasks/application_generator.rb +0 -50
- data/tasks/docs.rake +0 -64
- data/tasks/gemfiles.rake +0 -8
- data/tasks/lint.rake +0 -110
- data/tasks/local.rake +0 -27
- data/tasks/release.rake +0 -6
- data/tasks/test.rake +0 -42
|
@@ -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++
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
ActiveAdmin.modal_dialog = (message, inputs, callback)->
|
|
2
|
-
html = """<form id="dialog_confirm" title="#{message}"><ul>"""
|
|
3
|
-
for name, type of inputs
|
|
4
|
-
if /^(datepicker|checkbox|text|number)$/.test type
|
|
5
|
-
wrapper = 'input'
|
|
6
|
-
else if type is 'textarea'
|
|
7
|
-
wrapper = 'textarea'
|
|
8
|
-
else if $.isArray type
|
|
9
|
-
[wrapper, elem, opts, type] = ['select', 'option', type, '']
|
|
10
|
-
else
|
|
11
|
-
throw new Error "Unsupported input type: {#{name}: #{type}}"
|
|
12
|
-
|
|
13
|
-
klass = if type is 'datepicker' then type else ''
|
|
14
|
-
html += """<li>
|
|
15
|
-
<label>#{name.charAt(0).toUpperCase() + name.slice(1)}</label>
|
|
16
|
-
<#{wrapper} name="#{name}" class="#{klass}" type="#{type}">""" +
|
|
17
|
-
(if opts then (
|
|
18
|
-
for v in opts
|
|
19
|
-
$elem = $("<#{elem}/>")
|
|
20
|
-
if $.isArray v
|
|
21
|
-
$elem.text(v[0]).val(v[1])
|
|
22
|
-
else
|
|
23
|
-
$elem.text(v)
|
|
24
|
-
$elem.wrap('<div>').parent().html()
|
|
25
|
-
).join '' else '') +
|
|
26
|
-
"</#{wrapper}>" +
|
|
27
|
-
"</li>"
|
|
28
|
-
[wrapper, elem, opts, type, klass] = [] # unset any temporary variables
|
|
29
|
-
|
|
30
|
-
html += "</ul></form>"
|
|
31
|
-
|
|
32
|
-
form = $(html).appendTo('body')
|
|
33
|
-
$('body').trigger 'modal_dialog:before_open', [form]
|
|
34
|
-
|
|
35
|
-
form.dialog
|
|
36
|
-
modal: true
|
|
37
|
-
open: (event, ui) ->
|
|
38
|
-
$('body').trigger 'modal_dialog:after_open', [form]
|
|
39
|
-
dialogClass: 'active_admin_dialog'
|
|
40
|
-
buttons:
|
|
41
|
-
OK: ->
|
|
42
|
-
callback $(@).serializeObject()
|
|
43
|
-
$(@).dialog('close')
|
|
44
|
-
Cancel: ->
|
|
45
|
-
$(@).dialog('close').remove()
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
class ActiveAdmin.PerPage
|
|
2
|
-
constructor: (@options, @element)->
|
|
3
|
-
@$element = $(@element)
|
|
4
|
-
@_init()
|
|
5
|
-
@_bind()
|
|
6
|
-
|
|
7
|
-
_init: ->
|
|
8
|
-
@$params = @_queryParams()
|
|
9
|
-
|
|
10
|
-
_bind: ->
|
|
11
|
-
@$element.change =>
|
|
12
|
-
@$params['per_page'] = @$element.val()
|
|
13
|
-
delete @$params['page']
|
|
14
|
-
if typeof Turbolinks != 'undefined'
|
|
15
|
-
Turbolinks.visit(window.location.href.split('?')[0] + '?' + $.param(@$params))
|
|
16
|
-
else
|
|
17
|
-
location.search = $.param(@$params)
|
|
18
|
-
|
|
19
|
-
_queryParams: ->
|
|
20
|
-
query = window.location.search.substring(1)
|
|
21
|
-
params = {}
|
|
22
|
-
re = /([^&=]+)=([^&]*)/g
|
|
23
|
-
while m = re.exec(query)
|
|
24
|
-
params[@_decode(m[1])] = @_decode(m[2])
|
|
25
|
-
params
|
|
26
|
-
|
|
27
|
-
_decode: (value) ->
|
|
28
|
-
#replace "+" before decodeURIComponent
|
|
29
|
-
decodeURIComponent(value.replace(/\+/g, '%20'))
|
|
30
|
-
|
|
31
|
-
option: (key, value) ->
|
|
32
|
-
if $.isPlainObject(key)
|
|
33
|
-
@options = $.extend(true, @options, key)
|
|
34
|
-
else if key?
|
|
35
|
-
@options[key]
|
|
36
|
-
else
|
|
37
|
-
@options[key] = value
|
|
38
|
-
|
|
39
|
-
$.widget.bridge 'perPage', ActiveAdmin.PerPage
|
|
40
|
-
|
|
41
|
-
onDOMReady = ->
|
|
42
|
-
$('.pagination_per_page select').perPage()
|
|
43
|
-
|
|
44
|
-
$(document).
|
|
45
|
-
ready(onDOMReady).
|
|
46
|
-
on 'page:load turbolinks:load', onDOMReady
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
class ActiveAdmin.TableCheckboxToggler extends ActiveAdmin.CheckboxToggler
|
|
2
|
-
_init: ->
|
|
3
|
-
super
|
|
4
|
-
|
|
5
|
-
_bind: ->
|
|
6
|
-
super
|
|
7
|
-
|
|
8
|
-
@$container.find('tbody td').click (e)=>
|
|
9
|
-
@_didClickCell(e.target) if e.target.type isnt 'checkbox'
|
|
10
|
-
|
|
11
|
-
_didChangeCheckbox: (checkbox) ->
|
|
12
|
-
super
|
|
13
|
-
|
|
14
|
-
$(checkbox).parents('tr').toggleClass 'selected', checkbox.checked
|
|
15
|
-
|
|
16
|
-
_didChangeToggleAllCheckbox: ->
|
|
17
|
-
@$container.find('tbody tr').toggleClass 'selected', super
|
|
18
|
-
|
|
19
|
-
_didClickCell: (cell) ->
|
|
20
|
-
$(cell).parent('tr').find(':checkbox').click()
|
|
21
|
-
|
|
22
|
-
$.widget.bridge 'tableCheckboxToggler', ActiveAdmin.TableCheckboxToggler
|
data/bin/install_chromedriver.sh
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
set -euo pipefail
|
|
4
|
-
|
|
5
|
-
curl --silent \
|
|
6
|
-
--show-error \
|
|
7
|
-
--location \
|
|
8
|
-
--fail \
|
|
9
|
-
--retry 3 \
|
|
10
|
-
--output /tmp/chromedriver_linux64.zip \
|
|
11
|
-
https://chromedriver.storage.googleapis.com/2.38/chromedriver_linux64.zip
|
|
12
|
-
|
|
13
|
-
unzip /tmp/chromedriver_linux64.zip chromedriver -d ~/.local/bin
|
|
14
|
-
|
|
15
|
-
rm /tmp/chromedriver_linux64.zip
|
|
16
|
-
|
|
17
|
-
chromedriver --version
|
data/config/i18n-tasks.yml
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
# The "main" locale
|
|
4
|
-
base_locale: en
|
|
5
|
-
|
|
6
|
-
# Read and write translations
|
|
7
|
-
data:
|
|
8
|
-
yaml:
|
|
9
|
-
write:
|
|
10
|
-
# Do not wrap lines at 80 characters
|
|
11
|
-
line_width: -1
|
|
12
|
-
|
|
13
|
-
# Find translate calls
|
|
14
|
-
search:
|
|
15
|
-
# Paths or `File.find` patterns to search in
|
|
16
|
-
paths:
|
|
17
|
-
- app
|
|
18
|
-
- lib
|
|
19
|
-
|
|
20
|
-
# Files or `File.fnmatch` patterns to exclude from search
|
|
21
|
-
exclude:
|
|
22
|
-
- app/assets/images
|
|
23
|
-
- lib/bug_report_templates/tmp
|
|
24
|
-
|
|
25
|
-
# Guess usages such as t("categories.#{category}.title")
|
|
26
|
-
strict: false
|
data/config/mdl_style.rb
DELETED
data/cucumber.yml
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<%
|
|
2
|
-
std_opts = "--format progress --order random"
|
|
3
|
-
default_opts = std_opts + " --format ParallelTests::Gherkin::RuntimeLogger --out tmp/parallel_runtime_cucumber.log"
|
|
4
|
-
%>
|
|
5
|
-
|
|
6
|
-
default: <%= default_opts %> --require features/support/regular_env.rb features --tags 'not @requires-reloading' --tags 'not @wip'
|
|
7
|
-
class-reloading: CLASS_RELOADING=true <%= std_opts %> --require features/support/reload_env.rb features --tags @requires-reloading
|
data/gemfiles/rails_42.gemfile
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
source "https://rubygems.org"
|
|
2
|
-
|
|
3
|
-
eval_gemfile(File.expand_path(File.join("..", "Gemfile.common"), __dir__))
|
|
4
|
-
|
|
5
|
-
gem "rails", "~> 4.2.10"
|
|
6
|
-
gem "devise", "~> 4.4" # required for Ruby 2.5, see devise/issues/4736
|
|
7
|
-
gem "draper", "~> 2.1"
|
|
8
|
-
gem "activerecord-jdbcsqlite3-adapter", "~> 1.3", platforms: :jruby
|
|
9
|
-
|
|
10
|
-
gemspec path: "../"
|