28 lines
1.0 KiB
JavaScript
28 lines
1.0 KiB
JavaScript
import Ember from 'ember';
|
|
|
|
const WeekGoalTotalCompletionRateComponent = Ember.Component.extend({
|
|
tagName: '',
|
|
goals: [],
|
|
completed: Ember.computed('goals', 'goals.@each.goal', 'goals.@each.done', function() {
|
|
let me = this;
|
|
return me.get('goal') > 0 && me.get('goal') == me.get('done');
|
|
}),
|
|
goal: Ember.computed('goals.@each.goal', function() {
|
|
return this.get('goals').map(it => it.goal).reduce((pv, g) => pv + parseInt(g), 0);
|
|
}),
|
|
done: Ember.computed('goals.@each.done', function() {
|
|
return this.get('goals').map(it => it.done).reduce((pv, g) => pv + parseInt(g), 0);
|
|
}),
|
|
totalRate: Ember.computed('goal', 'done', function() {
|
|
let me = this;
|
|
let goal = me.get('goal');
|
|
let done = me.get('done');
|
|
let result = ((done * 1.0 / goal * 1.0) * 100).toFixed(2);
|
|
return result > 0 ? (result + '%').replace(/\.00%$/g, '%') : 0;
|
|
})
|
|
});
|
|
WeekGoalTotalCompletionRateComponent.reopenClass({
|
|
positionalParams: ['goals'],
|
|
});
|
|
|
|
export default WeekGoalTotalCompletionRateComponent; |