Skip to content

Commit 214cdf8

Browse files
committed
...
1 parent 6a45b72 commit 214cdf8

File tree

1 file changed

+26
-19
lines changed

1 file changed

+26
-19
lines changed

node.js/fiori.md

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,14 @@ Draft-enabled entities have corresponding CSN entities for drafts:
2525

2626
```js
2727
const { MyEntity } = srv.entities
28-
MyEntity.drafts // points to model.definitions['MyEntity.drafts']
28+
MyEntity.drafts // points to model.definitions[MyEntity.drafts]
2929
```
3030

3131
In event handlers, the `target` is resolved before the handler execution and points to either the active or draft entity:
3232

3333
```js
34-
srv.on('READ', 'MyEntity.drafts', (req, next) => {
35-
assert.equal(req.target.name, 'MyEntity.drafts')
34+
srv.on('READ', MyEntity.drafts, (req, next) => {
35+
assert.equal(req.target.name, MyEntity.drafts)
3636
return next()
3737
})
3838
```
@@ -52,11 +52,11 @@ In addition to the standard CRUD events, draft-specific events are provided on d
5252
### `NEW`
5353

5454
```js
55-
srv.before('NEW', 'MyEntity.drafts', req => {
55+
srv.before('NEW', MyEntity.drafts, req => {
5656
req.data.ID = uuid()
5757
}))
58-
srv.after('EDIT', 'MyEntity.drafts', /*...*/)
59-
srv.on('NEW', 'MyEntity.drafts', /*...*/)
58+
srv.after('EDIT', MyEntity.drafts, /*...*/)
59+
srv.on('NEW', MyEntity.drafts, /*...*/)
6060
```
6161

6262
The `NEW` event is triggered when the user created a new draft.
@@ -67,23 +67,30 @@ You can modify the initial draft data in a `before` handler.
6767
### `EDIT`
6868

6969
```js
70-
srv.before('EDIT', 'MyEntity', /*...*/)
71-
srv.after('EDIT', 'MyEntity', /*...*/)
72-
srv.on('EDIT', 'MyEntity', /*...*/)
70+
srv.before('EDIT', MyEntity, /*...*/)
71+
srv.after('EDIT', MyEntity, /*...*/)
72+
srv.on('EDIT', MyEntity, /*...*/)
7373
```
7474

7575
The `EDIT` event is triggered when the user starts editing an active entity.
7676
As a result, a new entry to `MyEntity.drafts` is created.
7777

78-
> [!note]
79-
> For logical reasons handlers for the `EDIT` event are registered on the active entity, i.e. `MyEntity` in the code above, not on the `MyEntity.drafts` entity.
78+
For logical reasons handlers for the `EDIT` event are registered on the active entity, i.e. `MyEntity` in the code above, not on the `MyEntity.drafts` entity.
79+
80+
You can also register handlers on the standard `CREATE` events for draft entities, which would be called whenever a new draft is created, be it via `NEW` or `EDIT`, like so:
81+
82+
```js
83+
srv.before('CREATE', MyEntity.drafts, /*...*/)
84+
srv.after('CREATE', MyEntity.drafts, /*...*/)
85+
srv.on('CREATE', MyEntity.drafts, /*...*/)
86+
```
8087

8188

8289
### `DISCARD`
8390

8491
```js
85-
srv.before('DISCARD', 'MyEntity.drafts', /*...*/)
86-
srv.on('DISCARD', 'MyEntity.drafts', /*...*/)
92+
srv.before('DISCARD', MyEntity.drafts, /*...*/)
93+
srv.on('DISCARD', MyEntity.drafts, /*...*/)
8794
```
8895

8996
The `DISCARD` event is triggered when the user discards a draft started before.
@@ -93,9 +100,9 @@ In this case, the draft entity is deleted and the active entity isn't changed.
93100
### `PATCH`
94101

95102
```js
96-
srv.before('PATCH', 'MyEntity.drafts', /*...*/)
97-
srv.after('PATCH', 'MyEntity.drafts', /*...*/)
98-
srv.on('PATCH', 'MyEntity.drafts', /*...*/)
103+
srv.before('PATCH', MyEntity.drafts, /*...*/)
104+
srv.after('PATCH', MyEntity.drafts, /*...*/)
105+
srv.on('PATCH', MyEntity.drafts, /*...*/)
99106
```
100107

101108
The `PATCH` event is triggered whenever the user edits a field in a draft.
@@ -105,9 +112,9 @@ It's actually an alias for the standard CRUD `UPDATE` event.
105112
### `SAVE`
106113

107114
```js
108-
srv.before('SAVE', 'MyEntity.drafts', /*...*/)
109-
srv.after('SAVE', 'MyEntity.drafts', /*...*/)
110-
srv.on('SAVE', 'MyEntity.drafts', /*...*/)
115+
srv.before('SAVE', MyEntity.drafts, /*...*/)
116+
srv.after('SAVE', MyEntity.drafts, /*...*/)
117+
srv.on('SAVE', MyEntity.drafts, /*...*/)
111118
```
112119

113120
The `SAVE` event is triggered when the user saves / activates a draft. This results in either a CREATE or an UPDATE on the active entity depending on whether the draft was created via `NEW` or `EDIT`.

0 commit comments

Comments
 (0)