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"
9 (click)="dismiss('cross_click')">
10 <span aria-hidden="true">×</span>
13 <div class="modal-body">
14 <form #fmEditForm="ngForm" role="form" class="form-validated common-form striped-odd">
15 <div class="form-group row" *ngFor="let field of fields">
16 <div class="col-lg-3">
17 <label for="{{idPrefix}}-{{field.name}}">{{field.label}}</label>
19 <div class="col-lg-7">
21 <ng-container [ngSwitch]="inputType(field)">
23 <ng-container *ngSwitchCase="'template'">
25 *ngTemplateOutlet="field.template; context:customTemplateFieldContext(field)">
29 <ng-container *ngSwitchCase="'readonly'">
30 <span>{{record[field.name]()}}</span>
33 <ng-container *ngSwitchCase="'readonly-money'">
34 <span>{{record[field.name]() | currency}}</span>
37 <ng-container *ngSwitchCase="'readonly-list'">
38 <ng-container *ngIf="field.linkedValues">
39 <span>{{field.linkedValues[0].label}}</span>
43 <ng-container *ngSwitchCase="'timestamp'">
45 domId="{{idPrefix}}-{{field.name}}"
46 (onChangeAsIso)="record[field.name]($event)"
47 initialIso="{{record[field.name]()}}">
51 <ng-container *ngSwitchCase="'org_unit'">
53 placeholder="{{field.label}}..."
55 domId="{{idPrefix}}-{{field.name}}"
56 [limitPerms]="modePerms[mode]"
57 [readOnly]="field.readOnly"
58 [applyDefault]="field.orgDefaultAllowed"
59 [initialOrgId]="record[field.name]()"
60 (onChange)="record[field.name]($event)">
64 <ng-container *ngSwitchCase="'money'">
67 type="number" step="0.1"
69 id="{{idPrefix}}-{{field.name}}"
70 placeholder="{{field.label}}..."
72 [readonly]="field.readOnly"
73 [required]="field.isRequired()"
74 [ngModel]="record[field.name]()"
75 (ngModelChange)="record[field.name]($event)"/>
78 <ng-container *ngSwitchCase="'int'">
83 id="{{idPrefix}}-{{field.name}}"
84 placeholder="{{field.label}}..."
86 [required]="field.isRequired()"
87 [ngModel]="record[field.name]()"
88 (ngModelChange)="record[field.name]($event)"/>
91 <ng-container *ngSwitchCase="'float'">
94 type="number" step="0.1"
96 id="{{idPrefix}}-{{field.name}}"
97 placeholder="{{field.label}}..."
99 [required]="field.isRequired()"
100 [ngModel]="record[field.name]()"
101 (ngModelChange)="record[field.name]($event)"/>
104 <ng-container *ngSwitchCase="'text'">
107 id="{{idPrefix}}-{{field.name}}" name="{{field.name}}"
109 placeholder="{{field.label}}..." i18n-placeholder
110 [required]="field.isRequired()"
111 [ngModel]="record[field.name]()"
112 (ngModelChange)="record[field.name]($event)"/>
115 <ng-container *ngSwitchCase="'bool'">
117 class="form-check-input"
119 name="{{field.name}}"
120 id="{{idPrefix}}-{{field.name}}"
121 [disabled]="field.readOnly"
122 [ngModel]="record[field.name]()"
123 (ngModelChange)="record[field.name]($event)"/>
126 <ng-container *ngSwitchCase="'list'">
128 id="{{idPrefix}}-{{field.name}}" name="{{field.name}}"
129 placeholder="{{field.label}}..." i18n-placeholder
130 [required]="field.isRequired()"
131 [entries]="field.linkedValues"
132 [asyncDataSource]="field.linkedValuesSource"
133 [startId]="record[field.name]()"
134 (onChange)="record[field.name]($event ? $event.id : null)">
137 </ng-container> <!-- switch -->
139 <div class="col-lg-1" *ngIf="field.i18n && !field.readOnly">
140 <a (click)="openTranslator(field.name)"
141 i18n-title title="Translate">
142 <button class="btn btn-outline-info mat-icon-in-button">
143 <span class="material-icons">translate</span>
150 <div class="modal-footer">
151 <button type="button" class="btn btn-success" *ngIf="mode == 'view'"
152 (click)="close()" i18n>Close</button>
153 <button type="button" class="btn btn-info"
154 [disabled]="fmEditForm.invalid" *ngIf="mode != 'view'"
155 (click)="save()" i18n>Save</button>
156 <button type="button" class="btn btn-warning ml-2" *ngIf="mode != 'view'"
157 (click)="cancel()" i18n>Cancel</button>