File tree Expand file tree Collapse file tree 6 files changed +42
-4
lines changed
lib/components/record-modal Expand file tree Collapse file tree 6 files changed +42
-4
lines changed Original file line number Diff line number Diff line change 181
181
"downloadObject" : " Download {{name}}" ,
182
182
"downloadTemplate" : " Get template" ,
183
183
"duplicate" : " Duplicate" ,
184
+ "duplicateRecord" : " Duplicate record" ,
184
185
"edit" : " Edit" ,
185
186
"email" : {
186
187
"customTemplate" : " Custom template" ,
Original file line number Diff line number Diff line change 181
181
"downloadObject" : " Télécharger {{name}}" ,
182
182
"downloadTemplate" : " Télécharger le modèle" ,
183
183
"duplicate" : " Dupliquer" ,
184
+ "duplicateRecord" : " Dupliquer l'enregistrement" ,
184
185
"edit" : " Modifier" ,
185
186
"email" : {
186
187
"customTemplate" : " Modèle personnalisé" ,
Original file line number Diff line number Diff line change 181
181
"downloadObject" : " ****** {{name}}" ,
182
182
"downloadTemplate" : " ******" ,
183
183
"duplicate" : " ******" ,
184
+ "duplicateRecord" : " ******" ,
184
185
"edit" : " ******" ,
185
186
"email" : {
186
187
"customTemplate" : " ******" ,
Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ export const GET_RECORD_BY_ID = gql`
19
19
form {
20
20
id
21
21
structure
22
+ canCreateRecords
22
23
permissions {
23
24
recordsUnicity
24
25
}
@@ -42,6 +43,7 @@ export const GET_FORM_STRUCTURE = gql`
42
43
form(id: $id) {
43
44
id
44
45
structure
46
+ canCreateRecords
45
47
metadata {
46
48
name
47
49
automated
Original file line number Diff line number Diff line change 2
2
< ng-container ngProjectAs ="header ">
3
3
< ng-container *ngIf ="!loading ">
4
4
< div class ="flex flex-wrap justify-between items-center gap-4 mb-4 ">
5
+ <!-- Record summary -->
5
6
< shared-record-summary
6
7
*ngIf ="!data.compareTo "
7
8
[record] ="record "
8
9
(showHistory) ="onShowHistory() "
9
10
> </ shared-record-summary >
10
11
11
- < shared-form-actions
12
- [survey] ="survey "
13
- [surveyNext] ="surveyNext || undefined "
14
- > </ shared-form-actions >
12
+ < div class ="flex gap-4 items-center mr-4 ">
13
+ <!-- Translate form -->
14
+ < shared-form-actions
15
+ [survey] ="survey "
16
+ [surveyNext] ="surveyNext || undefined "
17
+ > </ shared-form-actions >
18
+
19
+ <!-- Open form to duplicate record -->
20
+ < ui-button
21
+ *ngIf ="form?.canCreateRecords && !data.compareTo "
22
+ variant ="primary "
23
+ category ="secondary "
24
+ (click) ="onDuplicate() "
25
+ >
26
+ {{ 'common.duplicateRecord' | translate }}
27
+ </ ui-button >
28
+ </ div >
15
29
</ div >
16
30
< ui-tabs
17
31
[selectedIndex] ="(selectedPageIndex$ | async)! "
Original file line number Diff line number Diff line change @@ -263,6 +263,25 @@ export class RecordModalComponent
263
263
this . dialogRef . close ( true as any ) ;
264
264
}
265
265
266
+ /**
267
+ * Open a create form modal prefilled with this record's data
268
+ */
269
+ public async onDuplicate ( ) : Promise < void > {
270
+ if ( ! this . form ?. id ) return ;
271
+ const { FormModalComponent } = await import (
272
+ '../form-modal/form-modal.component'
273
+ ) ;
274
+ this . dialog . open ( FormModalComponent , {
275
+ disableClose : true ,
276
+ data : {
277
+ template : this . form . id ,
278
+ prefillData : this . record ?. data ,
279
+ askForConfirm : false ,
280
+ } ,
281
+ autoFocus : false ,
282
+ } ) ;
283
+ }
284
+
266
285
/**
267
286
* Opens the history of the record in a modal.
268
287
*/
You can’t perform that action at this time.
0 commit comments