errorModalTemplate = require('templates/modal/error') {applyErrorsToForm} = require('lib/forms') module.exports.parseServerError = (text) -> try error = JSON.parse(text) or {message:"Unknown error."} catch SyntaxError error = {message:text or "Unknown error."} error = error[0] if _.isArray(error) error module.exports.genericFailure = (jqxhr) -> Backbone.Mediator.publish('server-error', {response:jqxhr}) return connectionFailure() if not jqxhr.status error = module.exports.parseServerError(jqxhr.responseText) message = error.message message = error.property + ' ' + message if error.property console.warn(jqxhr.status, jqxhr.statusText, error) existingForm = $('.form:visible:first') if existingForm[0] missingErrors = applyErrorsToForm(existingForm, [error]) for error in missingErrors existingForm.append($('
').text(error.message)) else res = errorModalTemplate( status:jqxhr.status statusText:jqxhr.statusText message: message ) showErrorModal(res) module.exports.backboneFailure = (model, jqxhr, options) -> module.exports.genericFailure(jqxhr) module.exports.connectionFailure = connectionFailure = -> html = errorModalTemplate( status: 0 statusText:'Connection Gone' message: 'No response from the CoCo servers, captain.' ) showErrorModal(html) showErrorModal = (html) -> # TODO: make a views/modal/error_modal view for this to use so the template can reuse templates/modal/modal_base? $('#modal-wrapper').html(html) $('.modal:visible').modal('hide') $('#modal-error').modal('show')