Initial commit

This commit is contained in:
2026-09-17 21:45:57 +02:00
commit 9160e861e0
302 changed files with 31275 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
<h2 mat-dialog-title>{{ isEdit ? 'Edit' : 'New' }} {{ data.config.singular }}</h2>
<mat-dialog-content>
<form [formGroup]="form" class="dialog-form">
@for (f of data.config.fields; track f.key) {
@switch (f.type) {
@case ('select') {
<mat-form-field class="full-width">
<mat-label>{{ f.label }}</mat-label>
<mat-select [formControlName]="f.key">
<mat-option [value]="null"></mat-option>
@for (opt of optionsFor(f.key); track opt.value) {
<mat-option [value]="opt.value">{{ opt.label }}</mat-option>
}
</mat-select>
</mat-form-field>
}
@case ('date') {
<mat-form-field class="full-width">
<mat-label>{{ f.label }}</mat-label>
<input matInput [matDatepicker]="dp" [formControlName]="f.key" />
<mat-datepicker-toggle matSuffix [for]="dp"></mat-datepicker-toggle>
<mat-datepicker #dp></mat-datepicker>
</mat-form-field>
}
@case ('datetime') {
<mat-form-field class="full-width">
<mat-label>{{ f.label }}</mat-label>
<input matInput type="datetime-local" [formControlName]="f.key" />
</mat-form-field>
}
@case ('number') {
<mat-form-field class="full-width">
<mat-label>{{ f.label }}</mat-label>
<input matInput type="number" [formControlName]="f.key" [min]="f.min ?? null" [max]="f.max ?? null" />
@if (f.hint) { <mat-hint>{{ f.hint }}</mat-hint> }
</mat-form-field>
}
@case ('textarea') {
<mat-form-field class="full-width">
<mat-label>{{ f.label }}</mat-label>
<textarea matInput rows="3" [formControlName]="f.key"></textarea>
</mat-form-field>
}
@default {
<mat-form-field class="full-width">
<mat-label>{{ f.label }}</mat-label>
<input matInput [formControlName]="f.key" [maxlength]="f.maxLength ?? null" />
@if (f.hint) { <mat-hint>{{ f.hint }}</mat-hint> }
</mat-form-field>
}
}
}
</form>
</mat-dialog-content>
<mat-dialog-actions align="end">
<button mat-button (click)="cancel()">Cancel</button>
<button mat-flat-button color="primary" (click)="save()" [disabled]="form.invalid">
{{ isEdit ? 'Save' : 'Create' }}
</button>
</mat-dialog-actions>