Skip to content

Commit 1384738

Browse files
authored
OPH-787 | Blueprint dropdown options are shown on open (#156)
* feat: when opening the link to blueprint dropdown the options are fetched Refs: oph-787 * refactor: make the naam bestuur dropdown also show options on open Refs: oph-787
1 parent 88e7132 commit 1384738

File tree

4 files changed

+33
-25
lines changed

4 files changed

+33
-25
lines changed

app/components/process-select-by-group.hbs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
@loadingMessage="Aan het laden..."
66
@noMatchesMessage="Geen resultaten"
77
@searchMessage="Typ om te zoeken"
8-
@searchField="group"
9-
@search={{perform this.loadGroupsTask}}
8+
@options={{this.groups}}
9+
@onOpen={{perform this.loadGroupsTask}}
1010
@selected={{@selected}}
1111
@onChange={{@onChange}}
1212
@classifications={{@classifications}}
1313
@triggerId={{@id}}
1414
as |group|
1515
>
16-
{{group}}
16+
<p class="au-u-word-break-all">{{group}}</p>
1717
</PowerSelect>
1818
</div>

app/components/process-select-by-group.js

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import Component from '@glimmer/component';
2+
import { A } from '@ember/array';
23
import { service } from '@ember/service';
3-
import { restartableTask, timeout } from 'ember-concurrency';
4+
import { restartableTask } from 'ember-concurrency';
45
import ENV from 'frontend-openproceshuis/config/environment';
6+
import { tracked } from '@glimmer/tracking';
57

68
export default class ProcessSelectByGroupComponent extends Component {
79
@service store;
810

9-
@restartableTask
10-
*loadGroupsTask(searchParams = '') {
11-
if (!searchParams?.trim()) return;
12-
13-
yield timeout(200);
11+
@tracked groups = A([]);
1412

13+
@restartableTask
14+
*loadGroupsTask() {
1515
const processQuery = {
1616
'filter[:not:status]': ENV.resourceStates.archived,
1717
include: 'publisher,relevant-administrative-units',
@@ -43,11 +43,8 @@ export default class ProcessSelectByGroupComponent extends Component {
4343
sort: ':no-case:name',
4444
};
4545

46-
if (searchParams) {
47-
groupQuery['filter[name]'] = searchParams;
48-
}
49-
5046
const result = yield this.store.query('group', groupQuery);
51-
if (result) return [...new Set(result.map((r) => r.name))];
47+
this.groups.clear();
48+
this.groups.pushObjects([...new Set(result.map((r) => r.name))]);
5249
}
5350
}

app/components/process/blueprint-card/blueprint-multiple-select.hbs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
<div class={{if @error "ember-power-select--error"}}>
22
<PowerSelectMultiple
3-
@searchEnabled="true"
3+
@searchEnabled={{true}}
44
@searchMessage="Typ om te zoeken"
55
@loadingMessage="Aan het laden ..."
66
@noMatchesMessage="Geen resultaten"
7+
@options={{this.processes}}
78
@search={{perform this.loadBlueprintProcessesTask}}
9+
@onOpen={{perform this.loadBlueprintProcessesTask}}
810
@selected={{@selected}}
911
@onChange={{@onChange}}
1012
as |blueprintProcess|
Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,33 @@
11
import Component from '@glimmer/component';
2-
import { task } from 'ember-concurrency';
3-
import { inject as service } from '@ember/service';
2+
3+
import { A } from '@ember/array';
4+
import { tracked } from '@glimmer/tracking';
5+
import { service } from '@ember/service';
6+
7+
import { restartableTask } from 'ember-concurrency';
8+
49
import ENV from 'frontend-openproceshuis/config/environment';
510

611
export default class ProcessIcrCardBlueprintMultipleSelectComponent extends Component {
712
@service store;
813

9-
@task
10-
*loadBlueprintProcessesTask(params) {
14+
@tracked processes = A([]);
15+
16+
loadBlueprintProcessesTask = restartableTask(async (params) => {
1117
const query = {
1218
filter: {
13-
title: params,
1419
'is-blueprint': true,
1520
':not:status': ENV.resourceStates.archived,
1621
},
22+
sort: 'title',
1723
};
1824

19-
return yield this.store.query('process', query).then(
20-
// fixme: frontend workaround because booleans are not interpreted correctly by the query
21-
(results) => results.filter((process) => process.isBlueprint === true),
22-
);
23-
}
25+
if (params && typeof params === 'string' && params.trim() !== '') {
26+
query.filter.title = params;
27+
}
28+
29+
const processes = await this.store.query('process', query);
30+
this.processes.clear();
31+
this.processes.pushObjects(processes);
32+
});
2433
}

0 commit comments

Comments
 (0)