38 lines
943 B
JavaScript
38 lines
943 B
JavaScript
|
import _ from 'lodash'
|
||
|
import Backbone from 'backbone'
|
||
|
Backbone.$ = window.$
|
||
|
|
||
|
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
|