Files
dunlop-core/app/assets/javascripts/dunlop/base.coffee
T

43 lines
1.5 KiB
CoffeeScript

#= require_self
#= require ./helpers
#= require_tree ./active_support
class Dunlop
constructor: ->
@setup_callbacks = {}
@action_in_progress = 0
setup: (target, callback)->
@action_in_progress = 1
target ||= $(document)
for setup_label, callbacks_of_label of @setup_callbacks
callbacks_of_label.forEach (callback)=>
callback.call(@, target)
# Set all optial boolean labels to the maximum label. NOTE: this is a hack
delay 300, ->
labels = $('.optional-boolean-label, .optional-input-activator-label')
label_minimum_length = if labels.filter( -> $(@).parents('.optional-attribute-container').data('one') ).length then 356 else 320
if labels.length
labels.each -> label_minimum_length = $(@).width() if $(@).width() > label_minimum_length
#max_optional_label_width = Math.max.apply(null, labels.map((i, el) -> $(el).width()).toArray())
#max_optional_label_width = Math.max(max_optional_label_width, 356) # form display width match for big screens = 366 - 10
labels.css 'width', "#{label_minimum_length + 10}px" if label_minimum_length
if callback
callback.call(@)
@action_in_progress = 0
else
@action_in_progress = 0
selected_ids: -> MultiSelect.selected_ids()
register_setup: (label_or_callback, labelled_callback)->
unless labelled_callback?
labelled_callback = label_or_callback
label_or_callback = 'anonymous'
(@setup_callbacks[label_or_callback] ||= []).push labelled_callback
@Dunlop = new Dunlop()