43 lines
1.8 KiB
CoffeeScript
43 lines
1.8 KiB
CoffeeScript
collection_button_click = (target, options = {}) ->
|
|
return if target.data('confirmation') and not confirm(target.data('confirmation'))
|
|
action_name = target.data('action')
|
|
[resource, scenario] = full_resource.split('/') if full_resource = target.data('resource')
|
|
if not full_resource and target.attr('href') # direct collection_edit links
|
|
url = "#{target.attr('href')}&reveal=yes"
|
|
else
|
|
request_params = options.request_params || target.data('requestParams')
|
|
return unless request_params
|
|
# important to make a copy of options.request_params, otherwize the ids will be persisted in there
|
|
request_params = $.extend({}, request_params)
|
|
|
|
# See if multiselect ids is requested
|
|
for k, v of request_params
|
|
if v is 'selected_ids' # Implement multi select by inserting ids here
|
|
selected_ids = Dunlop.selected_ids()
|
|
return alert("Nothing selected") unless selected_ids.length
|
|
request_params[k] = selected_ids.join('~')
|
|
break
|
|
|
|
url_path ="collection_edit_#{resource}_#{scenario.pluralize()}_path"
|
|
request_params['reveal'] = 'yes'
|
|
return alert("The route #{url_path} does not exist") unless Routes[url_path]
|
|
url = Routes[url_path](request_params)
|
|
Dunlop.action_in_progress = 1
|
|
$.get url, (result) ->
|
|
$('#workflow-step-modal .content').html result
|
|
$('#workflow-step-modal').foundation('reveal', 'open')
|
|
Dunlop.setup $('#workflow-step-modal'), ->
|
|
$('#workflow-step-modal .workflow-step-back-button').click (e) ->
|
|
e.preventDefault()
|
|
$('#workflow-step-modal').foundation('reveal', 'close')
|
|
false
|
|
false
|
|
|
|
Dunlop.register_setup 'collection-button', (target) ->
|
|
# setup collection edit buttons
|
|
target.find('.collection-edit').click (evt) ->
|
|
evt.preventDefault()
|
|
collection_button_click $(this)
|
|
false
|
|
|