Add quick filter for contribution kind

This commit is contained in:
2019-07-06 16:16:28 +02:00
parent abb7d95804
commit edd7ffd3c5
5 changed files with 42 additions and 14 deletions
+13 -5
View File
@@ -9,6 +9,11 @@ export default Component.extend({
tagName: 'div',
classNames: ['contributions'],
showQuickFilter: false,
hideSmallContributions: false,
contributorId: null,
contributionKind: null,
kredits: service(),
contributorsSorting: Object.freeze(['name:asc']),
@@ -23,11 +28,11 @@ export default Component.extend({
});
}),
showQuickFilter: false,
hideSmallContributions: false,
contributorId: null,
contributionKinds: computed('contributions.[]', function() {
return this.contributions.mapBy('kind').uniq();
}),
contributionsFiltered: computed('contributions.[]', 'hideSmallContributions', 'contributorId', function() {
contributionsFiltered: computed('contributions.[]', 'hideSmallContributions', 'contributorId', 'contributionKind', function() {
return this.contributions.filter(c => {
let included = true;
@@ -35,7 +40,10 @@ export default Component.extend({
c.amount <= 500) { included = false; }
if (isPresent(this.contributorId) &&
(c.contributorId.toString() !== this.contributorId.toString())) { included = false; }
c.contributorId.toString() !== this.contributorId.toString()) { included = false; }
if (isPresent(this.contributionKind) &&
c.kind !== this.contributionKind) { included = false; }
return included;
});
@@ -11,6 +11,16 @@
</select>
</label>
<label class="filter-contribution-kind">
Kind:
<select onchange={{action (mut contributionKind) value="target.value"}}>
<option value="" selected>all</option>
{{#each contributionKinds as |kind|}}
<option value={{kind}} selected={{eq contributionKind kind}}>{{capitalize-string kind}}</option>
{{/each}}
</select>
</label>
<label class="filter-contribution-size">
{{input type="checkbox" checked=hideSmallContributions}}
Hide small contributions
+7
View File
@@ -0,0 +1,7 @@
import Helper from '@ember/component/helper';
export default Helper.extend({
compute([string]) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
});