Skip to content

Commit ba30738

Browse files
committed
Consolidate JS into a single file; drop support for older jquery-ui
1 parent 3865fc5 commit ba30738

File tree

3 files changed

+71
-74
lines changed

3 files changed

+71
-74
lines changed
Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,72 @@
11
#= require jquery-ui/widgets/sortable
2-
#= require active_admin/sortable_core
2+
#= require jquery.mjs.nestedSortable
3+
4+
window.ActiveAdminSortableEvent = do ->
5+
eventToListeners = {}
6+
7+
return {
8+
add: (event, callback) ->
9+
if not eventToListeners.hasOwnProperty(event)
10+
eventToListeners[event] = []
11+
eventToListeners[event].push(callback)
12+
13+
trigger: (event, args) ->
14+
if eventToListeners.hasOwnProperty(event)
15+
for callback in eventToListeners[event]
16+
try
17+
callback.call(null, args)
18+
catch e
19+
console.error(e) if console and console.error
20+
}
21+
22+
$ ->
23+
$('.disclose').bind 'click', (event) ->
24+
$(this).closest('li').toggleClass('mjs-nestedSortable-collapsed').toggleClass('mjs-nestedSortable-expanded')
25+
26+
$(".index_as_sortable [data-sortable-type]").each ->
27+
$this = $(@)
28+
29+
if $this.data('sortable-type') == "tree"
30+
max_levels = $this.data('max-levels')
31+
tab_hack = 20 # nestedSortable default
32+
else
33+
max_levels = 1
34+
tab_hack = 99999
35+
36+
$this.nestedSortable
37+
forcePlaceholderSize: true
38+
forceHelperSizeType: true
39+
errorClass: 'cantdoit'
40+
disableNesting: 'cantdoit'
41+
handle: '> .item'
42+
listType: 'ol'
43+
items: 'li'
44+
opacity: .6
45+
placeholder: 'placeholder'
46+
revert: 250
47+
maxLevels: max_levels,
48+
tabSize: tab_hack
49+
protectRoot: $this.data('protect-root')
50+
# prevent drag flickers
51+
tolerance: 'pointer'
52+
toleranceElement: '> div'
53+
isTree: true
54+
startCollapsed: $this.data("start-collapsed")
55+
update: ->
56+
$this.nestedSortable("disable")
57+
$.ajax
58+
url: $this.data("sortable-url")
59+
type: "post"
60+
data: $this.nestedSortable("serialize")
61+
.always ->
62+
$this.find('.item').each (index) ->
63+
if index % 2
64+
$(this).removeClass('odd').addClass('even')
65+
else
66+
$(this).removeClass('even').addClass('odd')
67+
$this.nestedSortable("enable")
68+
ActiveAdminSortableEvent.trigger('ajaxAlways')
69+
.done ->
70+
ActiveAdminSortableEvent.trigger('ajaxDone')
71+
.fail ->
72+
ActiveAdminSortableEvent.trigger('ajaxFail')

app/assets/javascripts/active_admin/sortable_core.js.coffee

Lines changed: 0 additions & 71 deletions
This file was deleted.

app/assets/javascripts/active_admin/sortable_ui5.js.coffee

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)