class Pettanr.Proxy constructor: (options) -> @operators = options.operators _.extend(this, Backbone.Events) local_router: (parsed_callback) -> local_router = new Pettanr.LocalRouter({operators: @operators}) @listenTo(local_router, 'go', parsed_callback) @listenTo(local_router, 'deny', @deny) @listenTo(local_router, 'cancel', @cancel) local_router http_get: (url, form) -> @local_router(@get).navigate(url, form) get: (params, form) -> controller = Pettanr.AppController.new2(params, form, @operators) @listenTo(controller, 'ready', @ready) @listenTo(controller, 'title', @title) @listenTo(controller, 'done', @done) @listenTo(controller, 'lock', @lock) action_name = params['action'] controller[action_name]() ready: (view) -> @trigger('ready', view) title: (params, str) -> @trigger('title', params, str) done: (params) -> @trigger('done', params) lock: (params) -> @trigger('lock', params) deny: (params, form, safe_url) -> @trigger('deny', params, form, safe_url) cancel: () -> @trigger('cancel') http_post: (url, form) -> @local_router(@post).navigate(url, form) post: (params, form) -> controller = Pettanr.AppController.new2(params, form, @operators) @listenTo(controller, 'success', @success) @listenTo(controller, 'fail', @fail) @listenTo(controller, 'redirect', @redirect) @listenTo(controller, 'sign_in', @sign_in) @listenTo(controller, 'sign_out', @sign_out) action_name = params['action'] controller[action_name]() success: (model, response) -> @trigger('success', model, response) fail: (response) -> @trigger('fail', response) redirect: (new_url) -> @trigger('redirect', new_url) sign_in: (user) -> @trigger('sign_in', user) sign_out: () -> @trigger('sign_out')