70 lines
2.0 KiB
CoffeeScript
70 lines
2.0 KiB
CoffeeScript
$ = jQuery
|
|
context = window
|
|
logger = context.JK.logger
|
|
rest = new context.JK.Rest()
|
|
LocationActions = context.LocationActions
|
|
|
|
@RetailerStore = Reflux.createStore(
|
|
{
|
|
retailer: null,
|
|
teacherInvitations: null
|
|
|
|
listenables: @RetailerActions
|
|
|
|
init: ->
|
|
this.listenTo(context.AppStore, this.onAppInit)
|
|
|
|
onAppInit: (@app) ->
|
|
|
|
onLoaded: (response) ->
|
|
@retailer = response
|
|
|
|
if @retailer.state
|
|
LocationActions.selectRegion('US', @retailer.state)
|
|
|
|
if @retailer.photo_url?
|
|
@retailer.photo_url = @retailer.photo_url + '?cache-bust=' + new Date().getTime()
|
|
|
|
if @retailer.large_photo_url?
|
|
@retailer.large_photo_url = @retailer.large_photo_url + '?cache-bust=' + new Date().getTime()
|
|
|
|
@changed()
|
|
rest.listRetailerInvitations({id:@retailer.id}).done((response) => @onLoadedTeacherInvitations(response)).fail((jqXHR) => @onRetailerInvitationFail(jqXHR))
|
|
|
|
onLoadedTeacherInvitations: (response) ->
|
|
@teacherInvitations = response.entries
|
|
@changed()
|
|
|
|
onAddInvitation: (teacher, invitation) ->
|
|
@teacherInvitations.push(invitation)
|
|
@changed()
|
|
|
|
onDeleteInvitation: (id) ->
|
|
if @teacherInvitations?
|
|
@teacherInvitations = @teacherInvitations.filter (invitation) -> invitation.id isnt id
|
|
|
|
@changed()
|
|
|
|
onRefresh: (retailerId) ->
|
|
if !retailerId?
|
|
retailerId = @retailer?.id
|
|
rest.getRetailer({id: retailerId}).done((response) => @onLoaded(response)).fail((jqXHR) => @onRetailerFail(jqXHR))
|
|
|
|
onUpdateRetailer: (retailer) ->
|
|
@retailer = retailer
|
|
@changed()
|
|
|
|
onRetailerFail:(jqXHR) ->
|
|
@app.layout.notify({title: 'Unable to Request Retailer Info', text: "We recommend you refresh the page."})
|
|
|
|
onRetailerInvitationFail:(jqXHR) ->
|
|
@app.layout.notify({title: 'Unable to Request Retailer Invitation Info', text: "We recommend you refresh the page."})
|
|
|
|
changed:() ->
|
|
@trigger(@getState())
|
|
|
|
getState:() ->
|
|
{retailer: @retailer, teacherInvitations: @teacherInvitations}
|
|
}
|
|
)
|