65 lines
1.5 KiB
CoffeeScript
65 lines
1.5 KiB
CoffeeScript
context = window
|
|
logger = context.JK.logger
|
|
if context.JK.Rest
|
|
rest = new context.JK.Rest()
|
|
else
|
|
rest = context.JK.Rest2
|
|
|
|
|
|
@ConfigStore = Reflux.createStore(
|
|
{
|
|
top_message: null
|
|
event_page_top_logo_url: null
|
|
|
|
# this path taken on event landing p age
|
|
listenables: @ConfigActions
|
|
|
|
onConfigInit: () ->
|
|
@fetch(0)
|
|
|
|
init: ->
|
|
# context.AppStore not available in landing pages. This path below is for the /client view
|
|
if context.AppStore
|
|
this.listenTo(context.AppStore, this.onAppInit)
|
|
|
|
process: (response) ->
|
|
@top_message = response.top_message
|
|
@event_page_top_logo_url = response.event_page_top_logo_url
|
|
@changed()
|
|
|
|
fetch: (wait) ->
|
|
setTimeout((() =>
|
|
result = rest.getConfigClient()
|
|
if result.done
|
|
result.done((response) =>
|
|
@process(response)
|
|
)
|
|
.fail((jqXHR) =>
|
|
console.log("failed to fetch config")
|
|
)
|
|
else # fetch style
|
|
result
|
|
.then((response) =>
|
|
if !response.ok
|
|
throw Error(response.statusText)
|
|
else
|
|
return response.json()
|
|
)
|
|
.then((response) =>
|
|
@process(response)
|
|
)
|
|
.catch((jqXHR) =>
|
|
console.log("failed to fetch config")
|
|
)
|
|
|
|
), wait)
|
|
|
|
onAppInit: (@app) ->
|
|
@fetch(2000)
|
|
|
|
changed:() ->
|
|
@trigger({top_message: @top_message, event_page_top_logo_url: @event_page_top_logo_url})
|
|
|
|
}
|
|
)
|