Files
start-os/ui/src/app/modals/app-config-list/app-config-list.page.html
Matt Hill 5741cf084f Subnav (#391)
* begin subnav implementation

* implement subnav AND angular forms for comparison

* unions working-ish, list of enums working

* new form approach almost complete

* finish new forms approach for action inputs and config

* expandable list items and handlebars display

* Config animation (#394)

* config cammel

* config animation

Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>

* improve server settings inputs, still needs work

* delete all notifications, styling, and bugs

* contracted by default

Co-authored-by: Drew Ansbacher <drew.ansbacher@gmail.com>
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
2022-01-21 20:35:52 -07:00

54 lines
2.8 KiB
HTML

<ion-content class="subheader-padding">
<config-header [spec]="spec" [error]="error"></config-header>
<ion-button *ngIf="spec.subtype !== 'enum'" (click)="createOrEdit()">
<ion-icon name="add" color="primary"></ion-icon>
</ion-button>
<!-- enum list -->
<ion-item-group *ngIf="spec.subtype === 'enum'">
<ion-item-divider class="borderless"></ion-item-divider>
<ion-item-divider>
{{ value.length }} selected
<span *ngIf="min">&nbsp;(min: {{ min }})</span>
<span *ngIf="max">&nbsp;(max: {{ max }})</span>
<ion-button slot="end" fill="clear" color="primary" (click)="toggleSelectAll()">{{ selectAll ? 'All' : 'None' }}</ion-button>
</ion-item-divider>
<ion-item *ngFor="let option of options">
<ion-label>{{ option.value }}</ion-label>
<ion-checkbox slot="end" [(ngModel)]="option.checked" (click)="toggleSelected(option.value)"></ion-checkbox>
</ion-item>
</ion-item-group>
<!-- not enum list -->
<div *ngIf="spec.subtype !== 'enum'">
<ion-item-divider class="borderless"></ion-item-divider>
<ion-item-group>
<ion-item-divider style="font-size: small; color: var(--ion-color-medium);">
{{ value.length }}&nbsp;
<span *ngIf="value.length === 1">Entry</span>
<span *ngIf="value.length !== 1">Entries</span>
<span *ngIf="min">&nbsp;(min: {{ min }})</span>
<span *ngIf="max">&nbsp;(max: {{ max }})</span>
</ion-item-divider>
<div *ngFor="let v of value; index as i;">
<ion-item button detail="false" (click)="createOrEdit(i)">
<ion-icon size="small" slot="start" *ngIf="!annotations.members[i] || (annotations.members[i] | annotationStatus: 'NoChange')" style="margin-right: 15px; color: rgba(0,0,0,0); background: radial-gradient(#2a4e8970, #2a4e8970 35%, transparent 35%, transparent);" name="ellipse"></ion-icon>
<ion-icon size="small" slot="start" *ngIf="!annotations.members[i] || (annotations.members[i] | annotationStatus: 'Added')" style="margin-right: 15px; color: rgba(0,0,0,0); background: radial-gradient(#2a4e8970, #2a4e8970 35%, transparent 35%, transparent);" name="ellipse"></ion-icon>
<ion-icon size="small" slot="start" *ngIf="annotations.members[i] && (annotations.members[i] | annotationStatus: 'Edited')" style="margin-right: 15px" color="primary" name="ellipse"></ion-icon>
<ion-icon size="small" slot="start" *ngIf="annotations.members[i] && (annotations.members[i] | annotationStatus: 'Invalid')" style="margin-right: 15px" color="danger" name="warning-outline"></ion-icon>
<ion-label>{{ valueString[i] }}</ion-label>
<ion-button slot="end" fill="clear" (click)="presentAlertDelete(i, $event)">
<ion-icon slot="icon-only" name="close"></ion-icon>
</ion-button>
</ion-item>
</div>
</ion-item-group>
</div>
</ion-content>