46 lines
951 B
CoffeeScript
46 lines
951 B
CoffeeScript
trigger_callback = (control_name,event)->
|
|
$.ajax
|
|
data:
|
|
control_name: control_name
|
|
event: event
|
|
cache: no
|
|
.done (new_states)->
|
|
states = new_states
|
|
for name,state of states
|
|
controls[name].update(state)
|
|
return
|
|
|
|
class WSF_CONTROL
|
|
constructor: (@control_name, @$el)->
|
|
@attach_events()
|
|
return
|
|
|
|
attach_events: ()->
|
|
return
|
|
|
|
update: (state)->
|
|
return
|
|
|
|
controls = {}
|
|
|
|
class WSF_BUTTON_CONTROL extends WSF_CONTROL
|
|
attach_events: ()->
|
|
self = @
|
|
@$el.click ()->
|
|
self.click()
|
|
click: ()->
|
|
trigger_callback(@control_name, 'click')
|
|
|
|
update: (state) ->
|
|
@$el.text(state.text)
|
|
|
|
typemap =
|
|
"WSF_BUTTON_CONTROL":WSF_BUTTON_CONTROL
|
|
|
|
for name,state of states
|
|
$el = $('[data-name='+name+']')
|
|
type = $el.data('type')
|
|
#bind widget
|
|
controls[name]=new typemap[type](name,$el)
|
|
|