metamaps--metamaps/frontend/src/Metamaps/DataModel/Mapping.js
2016-11-07 15:25:08 -05:00

38 lines
961 B
JavaScript

import _ from 'lodash'
import Backbone from 'backbone'
try { Backbone.$ = window.$ } catch (err) {}
import Active from '../Active'
import Map from '../Map'
import Synapse from '../Synapse'
import Topic from '../Topic'
const Mapping = Backbone.Model.extend({
urlRoot: '/mappings',
blacklist: ['created_at', 'updated_at'],
toJSON: function(options) {
return _.omit(this.attributes, this.blacklist)
},
initialize: function() {
if (this.isNew()) {
this.set({
'user_id': Active.Mapper.id,
'map_id': Active.Map ? Active.Map.id : null
})
}
},
getMap: function() {
return Map.get(this.get('map_id'))
},
getTopic: function() {
if (this.get('mappable_type') !== 'Topic') return false
return Topic.get(this.get('mappable_id'))
},
getSynapse: function() {
if (this.get('mappable_type') !== 'Synapse') return false
return Synapse.get(this.get('mappable_id'))
}
})
export default Mapping