52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
import Ember from 'ember';
|
|
import moment from 'moment';
|
|
|
|
const {
|
|
get,
|
|
computed,
|
|
Mixin,
|
|
setProperties,
|
|
inject: {
|
|
service,
|
|
},
|
|
computed: {
|
|
alias,
|
|
},
|
|
} = Ember;
|
|
|
|
export default Mixin.create({
|
|
chartsVisibilityService: service('charts-visibility'),
|
|
|
|
patternIncludes : alias('chartsVisibilityService.patternIncludes'),
|
|
|
|
checkins: [],
|
|
trackables: [],
|
|
|
|
isChartEnablerDisabled: computed('patternIncludes.length', function() {
|
|
return get(this, 'patternIncludes.length') === 0;
|
|
}),
|
|
|
|
setChartsData() {
|
|
const tags = this.store.peekAll('tag').toArray();
|
|
const foods = this.store.peekAll('food').toArray();
|
|
const checkins = this.peekSortedCheckins();
|
|
const symptoms = this.store.peekAll('symptom').toArray();
|
|
const conditions = this.store.peekAll('condition').toArray();
|
|
const treatments = this.store.peekAll('treatment').toArray();
|
|
const harveyBradshawIndices = this.store.peekAll('harveyBradshawIndex').toArray();
|
|
const trackables = [...conditions, ...symptoms, ...treatments, ...tags, ...foods, ...harveyBradshawIndices];
|
|
|
|
return this.isDestroyed || setProperties(this, {checkins, trackables});
|
|
},
|
|
|
|
peekSortedCheckins() {
|
|
return this
|
|
.store
|
|
.peekAll('checkin')
|
|
.toArray()
|
|
.sort(
|
|
(a, b) => moment(get(a, 'date')).diff(get(b, 'date'), 'days')
|
|
);
|
|
},
|
|
});
|