37 lines
961 B
JavaScript
37 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
|