@eqproject/eqp-dynamic-module 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/bundles/eqproject-eqp-dynamic-module.umd.js +3991 -0
  2. package/bundles/eqproject-eqp-dynamic-module.umd.js.map +1 -0
  3. package/bundles/eqproject-eqp-dynamic-module.umd.min.js +17 -0
  4. package/bundles/eqproject-eqp-dynamic-module.umd.min.js.map +1 -0
  5. package/eqproject-eqp-dynamic-module.d.ts +6 -0
  6. package/eqproject-eqp-dynamic-module.metadata.json +1 -0
  7. package/esm2015/eqproject-eqp-dynamic-module.js +7 -0
  8. package/esm2015/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +262 -0
  9. package/esm2015/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.js +649 -0
  10. package/esm2015/lib/components/private/add-form-field/add-form-field.component.js +577 -0
  11. package/esm2015/lib/components/private/dynamic-module-field/dynamic-module-field.component.js +127 -0
  12. package/esm2015/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +170 -0
  13. package/esm2015/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.js +56 -0
  14. package/esm2015/lib/components/private/field-templates/date-field-template/date-field-template.component.js +71 -0
  15. package/esm2015/lib/components/private/field-templates/image-field-template/image-field-template.component.js +196 -0
  16. package/esm2015/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.js +115 -0
  17. package/esm2015/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.js +71 -0
  18. package/esm2015/lib/components/private/field-templates/text-field-template/text-field-template.component.js +67 -0
  19. package/esm2015/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.js +51 -0
  20. package/esm2015/lib/components/private/form-records/add-form-record/add-form-record.component.js +130 -0
  21. package/esm2015/lib/components/private/form-records/list-form-record/list-form-record.component.js +216 -0
  22. package/esm2015/lib/components/private/spinner/spinner.component.js +23 -0
  23. package/esm2015/lib/eqp-dynamic-module.module.js +69 -0
  24. package/esm2015/lib/interfaces/iBaseFieldComponent.interface.js +1 -0
  25. package/esm2015/lib/interfaces/iRootObject.interface.js +1 -0
  26. package/esm2015/lib/models/baseField.model.js +36 -0
  27. package/esm2015/lib/models/baseObj.model.js +9 -0
  28. package/esm2015/lib/models/context.model.js +8 -0
  29. package/esm2015/lib/models/endPointConfiguration.model.js +23 -0
  30. package/esm2015/lib/models/entity.model.js +7 -0
  31. package/esm2015/lib/models/fields/attachmentField.model.js +22 -0
  32. package/esm2015/lib/models/fields/booleanField.model.js +12 -0
  33. package/esm2015/lib/models/fields/dateField.model.js +11 -0
  34. package/esm2015/lib/models/fields/imageField.model.js +8 -0
  35. package/esm2015/lib/models/fields/listValueField.model.js +14 -0
  36. package/esm2015/lib/models/fields/lookupField.model.js +5 -0
  37. package/esm2015/lib/models/fields/numericField.model.js +5 -0
  38. package/esm2015/lib/models/fields/testareaField.model.js +4 -0
  39. package/esm2015/lib/models/fields/textField.model.js +14 -0
  40. package/esm2015/lib/models/form.model.js +24 -0
  41. package/esm2015/lib/models/record.model.js +8 -0
  42. package/esm2015/lib/modules/material.module.js +108 -0
  43. package/esm2015/lib/services/custom-form-validators.service.js +19 -0
  44. package/esm2015/lib/services/eqp-dynamic-module-dialog.service.js +113 -0
  45. package/esm2015/lib/services/spinner.service.js +43 -0
  46. package/esm2015/lib/services/utilityHelper.services.js +387 -0
  47. package/esm2015/public-api.js +39 -0
  48. package/esm5/eqproject-eqp-dynamic-module.js +7 -0
  49. package/esm5/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +269 -0
  50. package/esm5/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.js +664 -0
  51. package/esm5/lib/components/private/add-form-field/add-form-field.component.js +588 -0
  52. package/esm5/lib/components/private/dynamic-module-field/dynamic-module-field.component.js +128 -0
  53. package/esm5/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +173 -0
  54. package/esm5/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.js +57 -0
  55. package/esm5/lib/components/private/field-templates/date-field-template/date-field-template.component.js +72 -0
  56. package/esm5/lib/components/private/field-templates/image-field-template/image-field-template.component.js +206 -0
  57. package/esm5/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.js +119 -0
  58. package/esm5/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.js +72 -0
  59. package/esm5/lib/components/private/field-templates/text-field-template/text-field-template.component.js +68 -0
  60. package/esm5/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.js +52 -0
  61. package/esm5/lib/components/private/form-records/add-form-record/add-form-record.component.js +133 -0
  62. package/esm5/lib/components/private/form-records/list-form-record/list-form-record.component.js +220 -0
  63. package/esm5/lib/components/private/spinner/spinner.component.js +24 -0
  64. package/esm5/lib/eqp-dynamic-module.module.js +72 -0
  65. package/esm5/lib/interfaces/iBaseFieldComponent.interface.js +1 -0
  66. package/esm5/lib/interfaces/iRootObject.interface.js +1 -0
  67. package/esm5/lib/models/baseField.model.js +43 -0
  68. package/esm5/lib/models/baseObj.model.js +13 -0
  69. package/esm5/lib/models/context.model.js +14 -0
  70. package/esm5/lib/models/endPointConfiguration.model.js +33 -0
  71. package/esm5/lib/models/entity.model.js +14 -0
  72. package/esm5/lib/models/fields/attachmentField.model.js +29 -0
  73. package/esm5/lib/models/fields/booleanField.model.js +19 -0
  74. package/esm5/lib/models/fields/dateField.model.js +18 -0
  75. package/esm5/lib/models/fields/imageField.model.js +19 -0
  76. package/esm5/lib/models/fields/listValueField.model.js +25 -0
  77. package/esm5/lib/models/fields/lookupField.model.js +12 -0
  78. package/esm5/lib/models/fields/numericField.model.js +12 -0
  79. package/esm5/lib/models/fields/testareaField.model.js +11 -0
  80. package/esm5/lib/models/fields/textField.model.js +21 -0
  81. package/esm5/lib/models/form.model.js +39 -0
  82. package/esm5/lib/models/record.model.js +14 -0
  83. package/esm5/lib/modules/material.module.js +111 -0
  84. package/esm5/lib/services/custom-form-validators.service.js +23 -0
  85. package/esm5/lib/services/eqp-dynamic-module-dialog.service.js +123 -0
  86. package/esm5/lib/services/spinner.service.js +46 -0
  87. package/esm5/lib/services/utilityHelper.services.js +396 -0
  88. package/esm5/public-api.js +39 -0
  89. package/fesm2015/eqproject-eqp-dynamic-module.js +3580 -0
  90. package/fesm2015/eqproject-eqp-dynamic-module.js.map +1 -0
  91. package/fesm5/eqproject-eqp-dynamic-module.js +3766 -0
  92. package/fesm5/eqproject-eqp-dynamic-module.js.map +1 -0
  93. package/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.d.ts +101 -0
  94. package/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.d.ts +235 -0
  95. package/lib/components/private/add-form-field/add-form-field.component.d.ts +199 -0
  96. package/lib/components/private/dynamic-module-field/dynamic-module-field.component.d.ts +55 -0
  97. package/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.d.ts +68 -0
  98. package/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.d.ts +21 -0
  99. package/lib/components/private/field-templates/date-field-template/date-field-template.component.d.ts +27 -0
  100. package/lib/components/private/field-templates/image-field-template/image-field-template.component.d.ts +65 -0
  101. package/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.d.ts +51 -0
  102. package/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.d.ts +26 -0
  103. package/lib/components/private/field-templates/text-field-template/text-field-template.component.d.ts +22 -0
  104. package/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.d.ts +20 -0
  105. package/lib/components/private/form-records/add-form-record/add-form-record.component.d.ts +52 -0
  106. package/lib/components/private/form-records/list-form-record/list-form-record.component.d.ts +64 -0
  107. package/lib/components/private/spinner/spinner.component.d.ts +9 -0
  108. package/lib/eqp-dynamic-module.module.d.ts +2 -0
  109. package/{src/lib/interfaces/iBaseFieldComponent.interface.ts → lib/interfaces/iBaseFieldComponent.interface.d.ts} +1 -1
  110. package/{src/lib/interfaces/iRootObject.interface.ts → lib/interfaces/iRootObject.interface.d.ts} +1 -1
  111. package/{src/lib/models/baseField.model.ts → lib/models/baseField.model.d.ts} +5 -14
  112. package/{src/lib/models/baseObj.model.ts → lib/models/baseObj.model.d.ts} +3 -3
  113. package/lib/models/context.model.d.ts +9 -0
  114. package/{src/lib/models/endPointConfiguration.model.ts → lib/models/endPointConfiguration.model.d.ts} +12 -16
  115. package/{src/lib/models/entity.model.ts → lib/models/entity.model.d.ts} +1 -2
  116. package/lib/models/fields/attachmentField.model.d.ts +17 -0
  117. package/{src/lib/models/fields/booleanField.model.ts → lib/models/fields/booleanField.model.d.ts} +4 -8
  118. package/{src/lib/models/fields/dateField.model.ts → lib/models/fields/dateField.model.d.ts} +3 -5
  119. package/{src/lib/models/fields/imageField.model.ts → lib/models/fields/imageField.model.d.ts} +3 -8
  120. package/{src/lib/models/fields/listValueField.model.ts → lib/models/fields/listValueField.model.d.ts} +8 -13
  121. package/{src/lib/models/fields/lookupField.model.ts → lib/models/fields/lookupField.model.d.ts} +2 -5
  122. package/{src/lib/models/fields/numericField.model.ts → lib/models/fields/numericField.model.d.ts} +2 -3
  123. package/{src/lib/models/fields/testareaField.model.ts → lib/models/fields/testareaField.model.d.ts} +2 -3
  124. package/lib/models/fields/textField.model.d.ts +15 -0
  125. package/{src/lib/models/form.model.ts → lib/models/form.model.d.ts} +12 -25
  126. package/{src/lib/models/record.model.ts → lib/models/record.model.d.ts} +5 -4
  127. package/lib/modules/material.module.d.ts +2 -0
  128. package/lib/services/custom-form-validators.service.d.ts +5 -0
  129. package/lib/services/eqp-dynamic-module-dialog.service.d.ts +34 -0
  130. package/lib/services/spinner.service.d.ts +15 -0
  131. package/lib/services/utilityHelper.services.d.ts +77 -0
  132. package/package.json +41 -31
  133. package/{src/public-api.ts → public-api.d.ts} +0 -3
  134. package/karma.conf.js +0 -32
  135. package/ng-package.json +0 -18
  136. package/src/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.html +0 -10
  137. package/src/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.scss +0 -3
  138. package/src/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.ts +0 -228
  139. package/src/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.html +0 -212
  140. package/src/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.scss +0 -30
  141. package/src/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.ts +0 -692
  142. package/src/lib/components/private/add-form-field/add-form-field.component.html +0 -417
  143. package/src/lib/components/private/add-form-field/add-form-field.component.scss +0 -38
  144. package/src/lib/components/private/add-form-field/add-form-field.component.ts +0 -599
  145. package/src/lib/components/private/dynamic-module-field/dynamic-module-field.component.html +0 -42
  146. package/src/lib/components/private/dynamic-module-field/dynamic-module-field.component.scss +0 -0
  147. package/src/lib/components/private/dynamic-module-field/dynamic-module-field.component.ts +0 -125
  148. package/src/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.html +0 -25
  149. package/src/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.scss +0 -0
  150. package/src/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.ts +0 -172
  151. package/src/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.html +0 -32
  152. package/src/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.scss +0 -0
  153. package/src/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.ts +0 -53
  154. package/src/lib/components/private/field-templates/date-field-template/date-field-template.component.html +0 -6
  155. package/src/lib/components/private/field-templates/date-field-template/date-field-template.component.scss +0 -0
  156. package/src/lib/components/private/field-templates/date-field-template/date-field-template.component.ts +0 -70
  157. package/src/lib/components/private/field-templates/image-field-template/image-field-template.component.html +0 -57
  158. package/src/lib/components/private/field-templates/image-field-template/image-field-template.component.scss +0 -4
  159. package/src/lib/components/private/field-templates/image-field-template/image-field-template.component.ts +0 -203
  160. package/src/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.html +0 -46
  161. package/src/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.scss +0 -13
  162. package/src/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.ts +0 -114
  163. package/src/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.html +0 -6
  164. package/src/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.scss +0 -0
  165. package/src/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.ts +0 -70
  166. package/src/lib/components/private/field-templates/text-field-template/text-field-template.component.html +0 -5
  167. package/src/lib/components/private/field-templates/text-field-template/text-field-template.component.scss +0 -0
  168. package/src/lib/components/private/field-templates/text-field-template/text-field-template.component.ts +0 -65
  169. package/src/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.html +0 -5
  170. package/src/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.scss +0 -0
  171. package/src/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.ts +0 -48
  172. package/src/lib/components/private/form-records/add-form-record/add-form-record.component.html +0 -74
  173. package/src/lib/components/private/form-records/add-form-record/add-form-record.component.scss +0 -0
  174. package/src/lib/components/private/form-records/add-form-record/add-form-record.component.ts +0 -117
  175. package/src/lib/components/private/form-records/list-form-record/list-form-record.component.html +0 -14
  176. package/src/lib/components/private/form-records/list-form-record/list-form-record.component.scss +0 -7
  177. package/src/lib/components/private/form-records/list-form-record/list-form-record.component.ts +0 -213
  178. package/src/lib/components/private/spinner/spinner.component.html +0 -3
  179. package/src/lib/components/private/spinner/spinner.component.scss +0 -100
  180. package/src/lib/components/private/spinner/spinner.component.ts +0 -19
  181. package/src/lib/eqp-dynamic-module.module.ts +0 -65
  182. package/src/lib/models/context.model.ts +0 -10
  183. package/src/lib/models/fields/attachmentField.model.ts +0 -32
  184. package/src/lib/models/fields/textField.model.ts +0 -18
  185. package/src/lib/modules/material.module.ts +0 -104
  186. package/src/lib/services/custom-form-validators.service.ts +0 -21
  187. package/src/lib/services/eqp-dynamic-module-dialog.service.ts +0 -114
  188. package/src/lib/services/spinner.service.ts +0 -40
  189. package/src/lib/services/utilityHelper.services.ts +0 -413
  190. package/src/test.ts +0 -26
  191. package/tsconfig.lib.json +0 -23
  192. package/tsconfig.lib.prod.json +0 -6
  193. package/tsconfig.spec.json +0 -17
  194. package/tslint.json +0 -17
@@ -1,228 +0,0 @@
1
- import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
2
- import { Context } from '../../../models/context.model';
3
- import { EndPointConfiguration, EndPointData, EndPointDataParams, ParamTypeEnum, RequestMethodEnum } from '../../../models/endPointConfiguration.model';
4
- import { Form, FormTypeEnum } from '../../../models/form.model';
5
- import { DynRecord, Record } from '../../../models/record.model';
6
- import { EqpDynamicModuleDialogService } from '../../../services/eqp-dynamic-module-dialog.service';
7
- import { UtilityHelperService } from '../../../services/utilityHelper.services';
8
-
9
- @Component({
10
- selector: 'eqp-dynamic-module',
11
- templateUrl: './eqp-dynamic-module.component.html',
12
- styleUrls: ['./eqp-dynamic-module.component.scss']
13
- })
14
- export class EqpDynamicModuleComponent implements OnInit {
15
-
16
- @Input() context: Context = new Context();
17
- //@Input() form: Form = new Form();
18
- @Input() formID: string;
19
- @Input() values: Array<Record>;
20
- @Input() showButtons = true;
21
- @Input() showTitle = true;
22
-
23
- /**
24
- * Url del server da chiamare per recuperare, salvare o eliminare i record.
25
- * Usato per creare la configurazione di default degli endpoint da chiamare.
26
- */
27
- @Input() baseServerUrl: string = null;
28
-
29
- /**
30
- * Token da usare negli endpoint da chiamare per recuperare o salvare i record.
31
- * Usato solo se viene popolata la proprietà "baseServerUrl".
32
- */
33
- @Input() userToken: string = null;
34
-
35
- /**
36
- * Configurazione degli endpoint da chiamare per recuperare o salvare i dati.
37
- * Può essere definita dall'utente oppure lasciata null, viene popolata con dei
38
- * valori di default se viene valorizzata la proprietà "baseServerUrl" altrimenti
39
- * viene lasciata null e non viene eseguita nessuna chiamata al server.
40
- */
41
- @Input() endPointConfiguration: EndPointConfiguration = null;
42
-
43
- /**
44
- * Eventi emessi quando si salva, elimina o duplica un record
45
- * se non è stato specificato un endpoint da chiamare.
46
- */
47
- @Output() saveRecord: EventEmitter<Record> = new EventEmitter<Record>();
48
- @Output() deleteRecord: EventEmitter<Record> = new EventEmitter<Record>();
49
- @Output() duplicateRecord: EventEmitter<Record> = new EventEmitter<Record>();
50
-
51
- /**
52
- * Eventi emessi DOPO aver eseguito una chiamata al server per il salvataggio,
53
- * l'eliminazione o la duplicazione di un record all'endpoint specificato.
54
- */
55
- @Output() afterSaveRecord: EventEmitter<Record> = new EventEmitter<Record>();
56
- @Output() afterDeleteRecord: EventEmitter<Record> = new EventEmitter<Record>();
57
- @Output() afterDuplicateRecord: EventEmitter<Record> = new EventEmitter<Record>();
58
-
59
- form: Form = new Form();
60
- viewMode: FormTypeEnum = FormTypeEnum.LIST;
61
- FormTypeEnum = FormTypeEnum;
62
- selectedRecord: Record;
63
- onlyView: boolean;
64
-
65
- constructor(
66
- private utilityHelperService: UtilityHelperService
67
- ) { }
68
-
69
- ngOnInit(): void {
70
- UtilityHelperService.SetContext(this.context);
71
- this.configureDefaultEndPoints();
72
- this.getFormByID();
73
- }
74
-
75
- getFormByID(){
76
- const dynamicModuleParams: Array<EndPointDataParams> = new Array<EndPointDataParams>();
77
- dynamicModuleParams.push({
78
- ParamName: "id",
79
- ParamValue: this.formID,
80
- ParamType: ParamTypeEnum['Query param']
81
- });
82
- this.utilityHelperService.RunEndPointCall(this.endPointConfiguration.Forms.GetByIDEndPoint, dynamicModuleParams, (res: Form) => {
83
- this.form = res;
84
- this.getRecordsByFormID();
85
- }, (err) => {
86
- console.log(err);
87
- });
88
- }
89
-
90
- /**
91
- * Metodo per configurare gli endpoint da usare di default a partire dall'url base del server
92
- * a cui si deve connettere e al token da passare per autenticarsi.
93
- * Se la proprietà "baseServerUrl" è null e non sono stati configurati i vari endpoint allora
94
- * non viene eseguita nessuna chiamata http per recuperare/salvare i dati.
95
- */
96
- configureDefaultEndPoints() {
97
- if (!this.endPointConfiguration && this.baseServerUrl) {
98
- this.endPointConfiguration = this.utilityHelperService.ConfigureDefaultEndPoints(this.baseServerUrl, this.userToken);
99
- }
100
- }
101
-
102
- /**
103
- * Metodo per recuperare tutti i record salvati per una particolare Form.
104
- * La chiamata viene effettuata solo se è stato configurato l'endPoint da usare.
105
- * La risposta della chiamata deve essere un array di oggetti di tipo "DynRecord"
106
- * a partire dai quali vengono ricreati i Record usati nel client.
107
- */
108
- getRecordsByFormID() {
109
- if (this.endPointConfiguration && this.endPointConfiguration.Records && this.endPointConfiguration.Records.GetByFormIDEndPoint) {
110
- var dynamicModuleParams = [
111
- { ParamName: 'EntID', ParamValue: this.form.ID, ParamType: ParamTypeEnum['Query param'] }
112
- ];
113
- this.utilityHelperService.RunEndPointCall(this.endPointConfiguration.Records.GetByFormIDEndPoint, dynamicModuleParams, (res: Array<DynRecord>) => {
114
- this.values = new Array<Record>();
115
- res.forEach(r => {
116
- var tmpRec: Record = new Record();
117
- tmpRec = JSON.parse(r.SerializedValues);
118
- tmpRec.ID = r.ID;
119
- tmpRec.EntID = r.EntID;
120
- this.values.push(tmpRec);
121
- });
122
- });
123
- }
124
- }
125
-
126
- /**
127
- * Metodo invocato quando si vuole aggiungere, visualizzare o modificare un record.
128
- * Se l'evento è null vuol dire che stiamo aggiungendo un nuovo record altrimenti siamo in modifica
129
- * o visualizzazione. In questi ultimi due casi, se è stato configurato un endpoint per il recupero
130
- * del record completo allora viene effettuata una chiamata al server, altrimenti viene usato l'oggetto selezionato.
131
- * @param event Oggetto con due proprietà:
132
- * "record" = oggetto da modificare/visualizzare,
133
- * "onlyView" = booleano (se TRUE siamo in visualizzazione altrimenti in modifica)
134
- */
135
- onAddViewEditRecord(event: { record: Record, onlyView: boolean }) {
136
- if (event != null) {
137
- this.onlyView = event.onlyView;
138
- if (this.endPointConfiguration && this.endPointConfiguration.Records && this.endPointConfiguration.Records.GetByIDEndPoint) {
139
- var dynamicModuleParams = [
140
- { ParamName: "id", ParamValue: event.record.ID, ParamType: ParamTypeEnum['Query param'] }
141
- ];
142
- this.utilityHelperService.RunEndPointCall(this.endPointConfiguration.Records.GetByIDEndPoint, dynamicModuleParams, (res: DynRecord) => {
143
- this.selectedRecord = JSON.parse(res.SerializedValues);
144
- this.selectedRecord.ID = res.ID;
145
- this.selectedRecord.EntID = res.EntID;
146
- this.viewMode = FormTypeEnum.SCALAR;
147
- });
148
- } else {
149
- this.selectedRecord = JSON.parse(JSON.stringify(event.record));
150
- this.viewMode = FormTypeEnum.SCALAR;
151
- }
152
- } else {
153
- this.selectedRecord = null;
154
- this.onlyView = false;
155
- this.viewMode = FormTypeEnum.SCALAR;
156
- }
157
- }
158
-
159
- /**
160
- * Metodo per salvare il record aggiunto o modificato.
161
- * Se è stato configurato un endPoint per il salvataggio viene effettuata una chiamata al server passando l'oggeto da salvare
162
- * nel body della chiamata, altrimenti scatena l'evento "saveRecord".
163
- * @param event Oggetto di tipo Record da salvare.
164
- */
165
- onSaveRecord(event: Record) {
166
- if (event != null && this.endPointConfiguration != null && this.endPointConfiguration.Records.SaveEndPoint) {
167
- var dynRec: DynRecord = new DynRecord();
168
- dynRec.ID = event.ID ?? null;
169
- dynRec.EntID = this.form.ID;
170
- dynRec.Values = event ?? null;
171
- var dynamicModuleParams = [
172
- { ParamName: "Record", ParamValue: dynRec, ParamType: ParamTypeEnum['In Body'] }
173
- ];
174
- this.utilityHelperService.RunEndPointCall(this.endPointConfiguration.Records.SaveEndPoint, dynamicModuleParams, (res) => {
175
- this.getRecordsByFormID();
176
- this.afterSaveRecord.emit(event);
177
- this.viewMode = FormTypeEnum.LIST;
178
- });
179
- } else {
180
- this.saveRecord.emit(event);
181
- this.viewMode = FormTypeEnum.LIST;
182
- }
183
- }
184
-
185
- /**
186
- * Metodo per duplicare un record precedentemente salvato.
187
- * Se è stato configurato un endPoint per la duplicazione lato server allora effettua una chiamata passando nel body
188
- * un oggetto contenente il record da duplicare, altrimenti scatena l'evento di output "duplicateRecord".
189
- * @param record Oggetto di tipo Record da duplicare.
190
- */
191
- onDuplicateRecord(record: Record) {
192
- if (this.endPointConfiguration && this.endPointConfiguration.Records.DuplicateEndPoint) {
193
- EqpDynamicModuleDialogService.Confirm('Duplicare il record selezionato?', () => {
194
- var dynamicModuleParams = [
195
- { ParamName: "id", ParamValue: record.ID, ParamType: ParamTypeEnum['Query param'] }
196
- ];
197
- this.utilityHelperService.RunEndPointCall(this.endPointConfiguration.Records.DuplicateEndPoint, dynamicModuleParams, (res) => {
198
- this.getRecordsByFormID();
199
- this.afterDuplicateRecord.emit(record);
200
- });
201
- }, false, 'Richiesta conferma');
202
- } else {
203
- this.duplicateRecord.emit(record);
204
- }
205
- }
206
-
207
- /**
208
- * Metodo per eliminare un record.
209
- * Se è stato configurato un endPoint per l'eliminazione allora effettua una chiamata passando l'ID del record da eliminare
210
- * come query param all'interno della rotta, altrimenti scatena l'evento di output "deleteRecord".
211
- * @param record Oggetto di tipo Record da duplicare.
212
- */
213
- onDeleteRecord(record: Record) {
214
- if (this.endPointConfiguration && this.endPointConfiguration.Records.DeleteEndPoint) {
215
- EqpDynamicModuleDialogService.Confirm('Eliminare il record selezionato?', () => {
216
- var dynamicModuleParams = [
217
- { ParamName: "id", ParamValue: record.ID, ParamType: ParamTypeEnum['Query param'] }
218
- ];
219
- this.utilityHelperService.RunEndPointCall(this.endPointConfiguration.Records.DeleteEndPoint, dynamicModuleParams, (res) => {
220
- this.getRecordsByFormID();
221
- this.afterDeleteRecord.emit(record);
222
- });
223
- }, false, 'Richiesta conferma');
224
- } else {
225
- this.deleteRecord.emit(record);
226
- }
227
- }
228
- }
@@ -1,212 +0,0 @@
1
- <eqp-dynamic-module-spinner></eqp-dynamic-module-spinner>
2
-
3
- <mat-horizontal-stepper linear #stepper>
4
- <!-- DATI GENERALI DELLA FORM -->
5
- <mat-step [stepControl]="formFormGroup">
6
- <form [formGroup]="formFormGroup" (keydown.enter)="false">
7
- <ng-template matStepLabel>
8
- <div class="stepper-header-overlay" (click)="setFormStatus(false)"></div>
9
- Dati generali della form
10
- </ng-template>
11
-
12
- <div class="row">
13
- <div class="col-md-4">
14
- <mat-form-field>
15
- <mat-label>Nome</mat-label>
16
- <input matInput formControlName="Name" [(ngModel)]="form.Name" required>
17
- </mat-form-field>
18
- </div>
19
-
20
- <div class="col-md-4">
21
- <eqp-select [enumData]="FormScalarTypeEnum" [(ngModelInput)]="form.FormScalarType"
22
- [isRequired]="true" [showCancelButton]="false" placeholder="Tipo di visualizzazione"
23
- [formGroupInput]="formFormGroup" [formControlNameInput]="'FormScalarType'"
24
- (ngModelInputChange)="onChangeFormScalarType()">
25
- </eqp-select>
26
- </div>
27
- </div>
28
- <div class="row" *ngIf="form.FormScalarType && form.FormScalarType != FormScalarTypeEnum.Semplice">
29
- <div class="col-md-4 d-flex align-items-center">
30
- <mat-form-field>
31
- <mat-label> Nome sezione (invio per confermare) </mat-label>
32
- <input matInput [(ngModel)]="formFieldGroupName" [ngModelOptions]="{standalone: true}"
33
- (keyup)="onFormFieldGroupNameKeyUp($event)">
34
- </mat-form-field>
35
- </div>
36
- <div class="col-md-4 d-flex align-items-center">
37
- <span class="mr-3">Sezioni inserite:</span>
38
- <ul class="section-list">
39
- <li *ngFor="let groupName of form.FormFieldsGroups, let i=index">
40
- <mat-icon class="mr-1" (click)="onDeleteFormFieldGroupName(groupName.Name)">close
41
- </mat-icon>
42
- <span> {{i+1}}) {{groupName.Name}}</span>
43
- </li>
44
- </ul>
45
- </div>
46
- </div>
47
-
48
- <div class="mt-2 d-flex justify-content-end">
49
- <button mat-raised-button color="primary" matStepperNext
50
- [disabled]="formFormGroup.invalid">Successivo</button>
51
- </div>
52
- </form>
53
- </mat-step>
54
-
55
- <!-- AGGIUNTA DEI CAMPI DELLA FORM -->
56
- <mat-step [completed]="isFieldStepCompleted()">
57
- <ng-template matStepLabel>
58
- <div class="stepper-header-overlay" (click)="setFormStatus(false)"></div>
59
- Campi da inserire
60
- </ng-template>
61
-
62
- <div class="row justify-content-end">
63
- <button class="btn btn-primary" mat-raised-button color="primary" type="button" (click)="openFieldDialog()">
64
- <mat-icon>add</mat-icon>
65
- <span style="margin-left: 10px;">Aggiungi campo</span>
66
- </button>
67
-
68
- <button class="btn btn-primary ml-2" mat-raised-button color="primary" type="button"
69
- (click)="openInnerFormDialog()" *ngIf="!innerFormManagment">
70
- <mat-icon>add</mat-icon>
71
- <span style="margin-left: 10px;">Aggiungi form di dettaglio</span>
72
- </button>
73
- </div>
74
-
75
- <eqp-table #fieldsTable [createMatCard]="false" [columns]="fieldsColumns" [data]="form.Fields"
76
- [emptyTableMessage]="'Nessun campo inserito'" [searchText]="'Cerca'">
77
- </eqp-table>
78
-
79
- <div class="mt-2 d-flex justify-content-end">
80
- <button class="mr-2" mat-raised-button matStepperPrevious>Precedente</button>
81
- <button mat-raised-button color="primary" matStepperNext [disabled]="!isFieldStepCompleted()"
82
- (click)="setFormStatus(false)">Successivo</button>
83
- </div>
84
- </mat-step>
85
-
86
- <!-- AGGIUNTA DELLE OPERAZIONI SUI RECORD -->
87
- <mat-step>
88
- <ng-template matStepLabel>
89
- <div class="stepper-header-overlay" (click)="setFormStatus(false)"></div>
90
- Azioni aggiuntive sui record
91
- </ng-template>
92
-
93
- <div class="row justify-content-end">
94
- <button class="btn btn-primary" mat-raised-button color="primary" type="button"
95
- (click)="openActionOnRecordDialog()">
96
- <mat-icon>add</mat-icon>
97
- <span style="margin-left: 10px;">Aggiungi azione</span>
98
- </button>
99
- </div>
100
- <eqp-table #actionsOnRecordTable [createMatCard]="false" [columns]="actionsOnRecordColumns"
101
- [data]="form.ActionsOnRecord" [emptyTableMessage]="'Nessuna action inserita'" [searchText]="'Cerca'">
102
- </eqp-table>
103
-
104
- <div class="mt-2 d-flex justify-content-end">
105
- <button class="mr-2" mat-raised-button matStepperPrevious>Precedente</button>
106
- <button mat-raised-button color="primary" matStepperNext (click)="setFormStatus(true)">
107
- Successivo
108
- </button>
109
- </div>
110
- </mat-step>
111
-
112
- <!-- VISUALIZZAZIONE FORM CREATA -->
113
- <mat-step>
114
- <ng-template matStepLabel>
115
- <div class="stepper-header-overlay"
116
- (click)="setFormStatus(formFormGroup.valid && form.Fields && form.Fields.length > 0)"></div>
117
- Anteprima
118
- </ng-template>
119
-
120
- <add-form-record *ngIf="previewForm && formCompleted" [form]="previewForm" [showButtons]="false">
121
- </add-form-record>
122
-
123
-
124
- <div class="mt-2 d-flex justify-content-end">
125
- <button class="mr-2" mat-raised-button matStepperPrevious (click)="setFormStatus(false)">Precedente</button>
126
- <button mat-raised-button color="primary" (click)="saveForm()">Salva form</button>
127
- </div>
128
- </mat-step>
129
- </mat-horizontal-stepper>
130
-
131
- <div class="row" *ngIf="innerFormManagment">
132
- <div class="col-md-12 text-right">
133
- <button mat-raised-button (click)="saveFormEvent.emit(null)">Esci</button>
134
- </div>
135
- </div>
136
-
137
- <!-- DIALOG AGGIUNTA/MODIFICA CAMPO -->
138
- <ng-template #dialogField>
139
- <eqp-dynamic-module-add-form-field [field]="selectedField" [indexField]="indexSelectedField"
140
- (saveFieldEvent)="onSaveField($event)" [availableFields]="form.Fields"
141
- [formFieldsGroups]="form.FormScalarType != FormScalarTypeEnum.Semplice ? form.FormFieldsGroups : null">
142
- </eqp-dynamic-module-add-form-field>
143
- </ng-template>
144
-
145
- <!-- TEMPLATE PER VISUALIZZARE LA COLONNA DELLA SEZIONE NELLA TABELLA DEI FIELDS -->
146
- <ng-template #fieldSectionColumnTemplate let-row="row">
147
- <eqp-select [arrayData]="form.FormFieldsGroups" [(ngModelInput)]="row.FieldGroup" [arrayKeyProperty]="'Name'"
148
- [arrayValueProperty]="'Name'" placeholder="Sezione" [isRequired]="true" [includeFullObject]="false">
149
- </eqp-select>
150
- </ng-template>
151
-
152
- <!-- DIALOG PER AGGIUNGERE/MODIFICARE UNA ACTION SUI RECORD DELLA FORM -->
153
- <ng-template #dialogActionOnRecord>
154
- <div class="container-fluid" style="max-height: 70vh !important; overflow-x: hidden; overflow-y: auto;">
155
- <form [formGroup]="actionOnRecordFormGroup">
156
- <div class="row">
157
- <div class="header-title-standard">{{indexSelectedAction != null && indexSelectedAction >= 0 ?
158
- "Modifica"
159
- : "Aggiungi"}} azione sul record</div>
160
- </div>
161
- <div class="row">
162
- <div class="col-sm-12 col-md-4 mt-2">
163
- <mat-form-field>
164
- <mat-label> Nome </mat-label>
165
- <input formControlName="Name" required matInput [(ngModel)]="selectedAction.Name">
166
- </mat-form-field>
167
- </div>
168
-
169
- <div class="col-sm-12 col-md-4 mt-2">
170
- <mat-form-field>
171
- <mat-label> Icona </mat-label>
172
- <input formControlName="Icon" required matInput [(ngModel)]="selectedAction.Icon">
173
- </mat-form-field>
174
- </div>
175
- </div>
176
- <div class="row">
177
- <div class="col-sm-12 col-md-12 mt-2">
178
- <mat-form-field>
179
- <textarea matInput [placeholder]="'Azione (Javascript)'" [rows]="3" formControlName="Action"
180
- required [(ngModel)]="selectedAction.Action" [matAutocomplete]="actionAutocomplete"
181
- (keyup)="setActionAutocompleteOptions($event)"
182
- (focus)="setActionAutocompleteOptions(null)"></textarea>
183
- <mat-autocomplete #actionAutocomplete="matAutocomplete">
184
- <mat-option *ngFor="let option of actionAutocompleteOptions" [value]="option.value">
185
- {{option.label}}
186
- </mat-option>
187
- </mat-autocomplete>
188
- </mat-form-field>
189
- </div>
190
- </div>
191
-
192
-
193
- <div class="row mt-2 mb-1">
194
- <div class="col-sm-12 text-right">
195
- <button class="mr-2" mat-raised-button color="primary" (click)="saveActionOnRecord()"
196
- [disabled]="actionOnRecordFormGroup.invalid" type="button">
197
- Salva
198
- </button>
199
- <button class="btn mat-raised-button" (click)="closeDialogActionOnRecord()" type="button">
200
- Esci
201
- </button>
202
- </div>
203
- </div>
204
- </form>
205
- </div>
206
- </ng-template>
207
-
208
- <!-- TEMPLATE PER CONFIGURARE LE FORM DI DETTAGLIO -->
209
- <ng-template #dialogInnerForm>
210
- <eqp-dynamic-module-configurator [form]="selectedInnerForm" [innerFormManagment]="true"
211
- (saveFormEvent)="onSaveOrExitInnerForm($event)"></eqp-dynamic-module-configurator>
212
- </ng-template>
@@ -1,30 +0,0 @@
1
- ::ng-deep mat-form-field {
2
- width: 100%;
3
- }
4
-
5
- .stepper-header-overlay {
6
- position: absolute;
7
- top: 0;
8
- left: 0;
9
- width: 100%;
10
- height: 100%;
11
- }
12
-
13
-
14
- .section-list {
15
- list-style: none;
16
- padding: 0;
17
- mat-icon {
18
- vertical-align: middle;
19
- font-size: 15px;
20
- height: 15px;
21
- width: 15px;
22
- color: var(--danger);
23
- margin-right: 10px;
24
- cursor: pointer;
25
- }
26
- }
27
-
28
- .danger-color {
29
- color: var(--danger);
30
- }