77 lines
1.7 KiB
JavaScript
77 lines
1.7 KiB
JavaScript
import Ember from 'ember';
|
|
import CheckinByDate from 'flaredown/mixins/checkin-by-date';
|
|
import DatesRetriever from 'flaredown/mixins/chart/dates-retriever';
|
|
import DS from 'ember-data';
|
|
import moment from 'moment';
|
|
|
|
const {
|
|
get,
|
|
set,
|
|
computed,
|
|
computed: { alias },
|
|
Component,
|
|
inject: { service },
|
|
setProperties,
|
|
} = Ember;
|
|
|
|
const STEPS = {
|
|
INITIAL: 1,
|
|
CREATE: 2,
|
|
INDEX: 3
|
|
};
|
|
|
|
export default Component.extend(CheckinByDate, DatesRetriever, {
|
|
i18n: service(),
|
|
patternsLoading: service(),
|
|
|
|
STEPS,
|
|
selectedPattern: null,
|
|
currentStep: null,
|
|
dateRange: 2,
|
|
serieHeight: 75,
|
|
loadingPatterns: alias('patternsLoading.loadingPatterns'),
|
|
|
|
patterns: computed(function() {
|
|
return DS.PromiseArray.create({
|
|
promise: get(this, 'store').findAll('pattern')
|
|
});
|
|
}),
|
|
|
|
/*eslint-disable no-dupe-keys*/
|
|
currentStep: computed('patterns.length', function(){
|
|
return get(this, 'patterns.length') > 0 ? STEPS.INDEX : STEPS.INITIAL;
|
|
}),
|
|
/*eslint-enable no-dupe-keys*/
|
|
|
|
checkins: computed(function() {
|
|
return this
|
|
.store
|
|
.peekAll('checkin')
|
|
.toArray()
|
|
.sort(
|
|
(a, b) => moment(get(a, 'date')).diff(get(b, 'date'), 'days')
|
|
);
|
|
}),
|
|
|
|
actions: {
|
|
create() {
|
|
setProperties(this, { selectedPattern: null, currentStep: STEPS.CREATE });
|
|
},
|
|
|
|
edit(pattern) {
|
|
setProperties(this, { selectedPattern: pattern, currentStep: STEPS.CREATE });
|
|
},
|
|
|
|
requestData(page) {
|
|
get(this, 'store').query('pattern', { page: page }).then((record) => {
|
|
get(this, 'patterns').toArray().pushObject(record);
|
|
set(this, 'loadingPatterns', false);
|
|
})
|
|
},
|
|
|
|
nextStep() {
|
|
set(this, 'currentStep', STEPS.CREATE);
|
|
},
|
|
},
|
|
});
|