Files
project-work/worker-toolkit-flaredown/repo/frontend/app/components/add-trackings.js

47 lines
1.2 KiB
JavaScript

import Ember from 'ember';
import TrackablesFromType from 'flaredown/mixins/trackables-from-type';
const {
get,
} = Ember;
export default Ember.Component.extend(TrackablesFromType, {
tracking: Ember.inject.service(),
setupTracking: Ember.on('init', function() {
this.get('tracking').setup({
at: new Date(),
trackableType: this.get('trackableType').capitalize()
});
}),
existingTrackings: Ember.computed.alias('tracking.existingTrackings'),
newTrackings: Ember.computed.alias('tracking.newTrackings'),
actions: {
trackSelected(selectedTrackable) {
this.track(selectedTrackable);
},
remove(tracking) {
this.get('tracking').untrack({
tracking: tracking
});
}
},
track: function(trackable) {
const trackableType = get(this, 'trackableType').capitalize();
const trackableIds = this.get('store').peekAll('tracking').filterBy('trackableType', trackableType).map((tr) => {
return get(tr, 'trackable.id');
});
if (!trackableIds.includes(get(trackable, 'id'))) {
this.get('tracking').track(trackable, null, () => {
this.set('selectedTrackable', null);
});
}
}
});