30 lines
927 B
JavaScript
30 lines
927 B
JavaScript
import Component from '@ember/component';
|
|
import tag from 'ember-awesome-macros/tag';
|
|
import { computed } from '@ember/object';
|
|
import { reads } from '@ember/object/computed';
|
|
import { inject } from '@ember/service';
|
|
|
|
export default Component.extend({
|
|
kredits: inject(),
|
|
|
|
tagName: 'li',
|
|
classNames: ['proposal-list-item'],
|
|
|
|
attributeBindings: ['data-proposal-id', 'title'],
|
|
|
|
title: tag`(${'proposal.kind'}) ${'proposal.description'}`,
|
|
'data-proposal-id': reads('proposal.id'),
|
|
|
|
canBeVoted: computed('voterIds.[]', 'kredits.currentUser', function() {
|
|
let { isExecuted, voterIds } = this.proposal;
|
|
let { currentUser } = this.kredits;
|
|
voterIds = voterIds.map((id) => id.toString());
|
|
|
|
return currentUser.isCore && !isExecuted && !voterIds.includes(currentUser.id);
|
|
}),
|
|
|
|
selected: computed('selectedProposals.[]', function() {
|
|
return this.selectedProposals.includes(this.proposal.id);
|
|
})
|
|
});
|