1 <!-- idlObject and fieldName applied programmatically -->
2 <eg-translate #translator></eg-translate>
4 <ng-template #dialogContent>
5 <div class="modal-header bg-info">
6 <h4 class="modal-title" i18n>Record Editor: {{recordLabel}}</h4>
7 <button type="button" class="close"
8 i18n-aria-label aria-label="Close" (click)="close()">
9 <span aria-hidden="true">×</span>
12 <div class="modal-body">
13 <form #fmEditForm="ngForm" role="form" class="form-validated common-form striped-odd">
14 <ng-container *ngIf="!record">
15 <!-- display a progress dialog while the editor
16 fetches the needed data -->
17 <eg-progress-inline></eg-progress-inline>
19 <ng-container *ngIf="record">
20 <div class="form-group row" *ngFor="let field of fields">
21 <div class="col-lg-3">
22 <label for="{{idPrefix}}-{{field.name}}">{{field.label}}</label>
24 <div class="col-lg-7">
26 <ng-container [ngSwitch]="inputType(field)">
28 <ng-container *ngSwitchCase="'template'">
30 *ngTemplateOutlet="field.template; context:customTemplateFieldContext(field)">
34 <ng-container *ngSwitchCase="'readonly'">
35 <span>{{record[field.name]()}}</span>
38 <ng-container *ngSwitchCase="'readonly-money'">
39 <span>{{record[field.name]() | currency}}</span>
42 <ng-container *ngSwitchCase="'readonly-list'">
43 <ng-container *ngIf="field.linkedValues">
44 <span>{{field.linkedValues[0].label}}</span>
48 <ng-container *ngSwitchCase="'timestamp'">
50 domId="{{idPrefix}}-{{field.name}}"
51 [readOnly]="field.readOnly"
52 (onChangeAsIso)="record[field.name]($event)"
53 initialIso="{{record[field.name]()}}">
57 <ng-container *ngSwitchCase="'org_unit'">
59 placeholder="{{field.label}}..."
61 domId="{{idPrefix}}-{{field.name}}"
62 [limitPerms]="modePerms[mode]"
63 [readOnly]="field.readOnly"
64 [applyDefault]="field.orgDefaultAllowed"
65 [initialOrgId]="record[field.name]()"
66 (onChange)="record[field.name]($event)">
70 <ng-container *ngSwitchCase="'money'">
73 type="number" step="0.1"
75 id="{{idPrefix}}-{{field.name}}"
76 placeholder="{{field.label}}..."
78 [readonly]="field.readOnly"
79 [required]="field.isRequired()"
80 [ngModel]="record[field.name]()"
81 (ngModelChange)="record[field.name]($event)"/>
84 <ng-container *ngSwitchCase="'int'">
89 id="{{idPrefix}}-{{field.name}}"
90 placeholder="{{field.label}}..."
92 [required]="field.isRequired()"
93 [ngModel]="record[field.name]()"
94 (ngModelChange)="record[field.name]($event)"/>
97 <ng-container *ngSwitchCase="'float'">
100 type="number" step="0.1"
101 name="{{field.name}}"
102 id="{{idPrefix}}-{{field.name}}"
103 placeholder="{{field.label}}..."
105 [required]="field.isRequired()"
106 [ngModel]="record[field.name]()"
107 (ngModelChange)="record[field.name]($event)"/>
110 <ng-container *ngSwitchCase="'text'">
113 id="{{idPrefix}}-{{field.name}}" name="{{field.name}}"
115 placeholder="{{field.label}}..." i18n-placeholder
116 [required]="field.isRequired()"
117 [ngModel]="record[field.name]()"
118 (ngModelChange)="record[field.name]($event)"/>
121 <ng-container *ngSwitchCase="'bool'">
123 class="form-check-input"
125 name="{{field.name}}"
126 id="{{idPrefix}}-{{field.name}}"
127 [disabled]="field.readOnly"
128 [ngModel]="record[field.name]()"
129 (ngModelChange)="record[field.name]($event)"/>
132 <ng-container *ngSwitchCase="'list'">
134 id="{{idPrefix}}-{{field.name}}" name="{{field.name}}"
135 placeholder="{{field.label}}..." i18n-placeholder
136 [required]="field.isRequired()"
137 [entries]="field.linkedValues"
138 [asyncDataSource]="field.linkedValuesSource"
139 [startId]="record[field.name]()"
140 (onChange)="record[field.name]($event ? $event.id : null)">
143 </ng-container> <!-- switch -->
145 <div class="col-lg-1" *ngIf="field.i18n && !field.readOnly">
146 <a (click)="openTranslator(field.name)"
147 i18n-title title="Translate">
148 <button class="btn btn-outline-info mat-icon-in-button">
149 <span class="material-icons">translate</span>
157 <div class="modal-footer">
158 <button type="button" class="btn btn-success" *ngIf="mode == 'view'"
159 (click)="close()" i18n>Close</button>
160 <button type="button" class="btn btn-info"
161 [disabled]="fmEditForm.invalid" *ngIf="mode != 'view'"
162 (click)="save()" i18n>Save</button>
163 <button type="button" class="btn btn-warning ml-2" *ngIf="mode != 'view'"
164 (click)="cancel()" i18n>Cancel</button>