-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathcomponent.js
68 lines (56 loc) · 1.63 KB
/
component.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import { action } from "@ember/object";
import { inject as service } from "@ember/service";
import Component from "@glimmer/component";
import { tracked } from "@glimmer/tracking";
export default class CaseTransfer extends Component {
@service store;
@service notification;
@service intl;
@service fetch;
@tracked transferModalVisible = false;
@tracked removeAccess = false;
@tracked newAssignees = [];
@action
selectNewAssignees(value) {
this.newAssignees = value.map((assignee) => assignee.id);
}
@action
async transferCases() {
const adapter = this.store.adapterFor("case-access");
const uri = `${adapter.buildURL("case-access")}/transfer`;
const caseIds = [];
const dossierNrs = [];
this.args.cases.forEach((c) => {
caseIds.push(c.id);
dossierNrs.push(c.documentNumber);
});
const body = {
case_ids: caseIds,
dossier_nrs: dossierNrs,
new_assignees: this.newAssignees,
to_remove_assignees: [],
};
if (this.removeAccess) {
body.to_remove_assignees = this.args.toRemove;
}
const headers = adapter.headers;
headers["content-type"] = "application/json";
try {
await this.fetch.fetch(uri, {
method: "POST",
headers,
body: JSON.stringify(body),
});
this.notification.success(
this.intl.t("documents.bulkEdit.transfer.success"),
);
this.transferModalVisible = false;
this.removeAccess = false;
this.newAssignees = [];
await this.args.afterTransfer();
} catch (error) {
console.error(error);
this.notification.fromError(error);
}
}
}