client/commuter-profile/index.js
var modal = require('../modal')
var page = require('page')
var session = require('../session')
var SignUpForm = require('../sign-up-form')
var view = require('../view')
var debounce = require('debounce')
var config = require('../config')
/**
* Expose `Modal`
*/
var Modal = module.exports = modal({
closable: true,
width: '640px',
template: require('./template.html')
})
Modal.prototype.applicationName = function () {
return config.name()
}
/**
* Sign Up Form
*/
Modal.prototype.signUpForm = function () {
return new SignUpForm()
}
/**
* Log out
*/
Modal.prototype.logout = function (e) {
if (e) e.preventDefault()
this.hide()
session.logout(function (err) {
if (err) console.error(err)
page('/')
})
}
/**
* Proxy values
*/
Modal.prototype.anonymous = function () {
return !this.model.user()
}
Modal.prototype.fullName = function () {
if (!this.model.user()) return 'unknown'
return this.model.user().fullName()
}
Modal.prototype.email = function () {
if (!this.model.user()) return 'unknown'
return this.model.user().email()
}
Modal.prototype.places = function () {
if (!this.model.user()) return []
return this.model.user().user_metadata().modeify_places
}
Modal.prototype['places-view'] = function () {
var PlaceRow = view(require('./place.html'))
PlaceRow.prototype.setFrom = function () {
placeChanged('from', this.model)
}
PlaceRow.prototype.setTo = function () {
placeChanged('to', this.model)
}
PlaceRow.prototype.deletePlace = function () {
session.user().deleteFavoritePlace(this.model.address)
session.user().saveUserMetadata(function () {})
this.el.remove()
}
return PlaceRow
}
var placeChanged = debounce(function (name, locationData) {
var plan = session.plan()
plan.setAddress(name, locationData, function (err, res) {
if (err) console.error(err)
else plan.updateRoutes()
})
}, 150, true)