This commit is contained in:
Drew Ansbacher
2021-08-19 11:40:52 -06:00
committed by Aiden McClelland
parent 88ed581d95
commit f3190cc68f
4 changed files with 20 additions and 6 deletions

View File

@@ -17,6 +17,9 @@
<p *ngIf="control.hasError('numberNotInRange')">
Number not in range
</p>
<p *ngIf="control.hasError('invalidNumber')">
Invalid Number
</p>
</ng-container>
<!-- list -->

View File

@@ -88,6 +88,7 @@ export class FormObjectComponent {
const newItem = this.formService.getListItem(listSpec, val)
newItem.markAllAsTouched()
arr.insert(0, newItem)
console.log('new Item', newItem)
if (['object', 'union'].includes(listSpec.subtype)) {
const displayAs = (listSpec.spec as ListValueSpecOf<'object'>)['display-as']
this.objectListInfo[key].push({
@@ -163,11 +164,11 @@ export class FormObjectComponent {
}
private deleteListItem (key: string, index: number, markDirty = true): void {
this.objectListInfo[key][index].height = '0px'
if (this.objectListInfo[key]) this.objectListInfo[key][index].height = '0px'
const arr = this.formGroup.get(key) as FormArray
if (markDirty) arr.markAsDirty()
pauseFor(500).then(() => {
this.objectListInfo[key].splice(index, 1)
if (this.objectListInfo[key]) this.objectListInfo[key].splice(index, 1)
arr.removeAt(index)
})
}

View File

@@ -29,11 +29,11 @@ export class AppInterfacesPage {
const pkgId = this.route.snapshot.paramMap.get('pkgId')
const pkg = this.patch.data['package-data'][pkgId]
const interfaces = pkg.manifest.interfaces
const addressesMap = pkg.installed['interface-addresses']
const addressesMap = pkg.installed['interface-addresses'] || { }
const ui = interfaces['ui']
if (ui) {
const uiAddresses = addressesMap['ui']
const uiAddresses = addressesMap['ui'] || { }
this.ui = {
def: ui,
addresses: {
@@ -50,8 +50,8 @@ export class AppInterfacesPage {
return {
def: interfaces[key],
addresses: {
'lan-address': addresses['lan-address'] ? 'https://' + addresses['lan-address'] : null,
'tor-address': addresses['tor-address'] ? 'http://' + addresses['tor-address'] : null,
'lan-address': addresses && addresses['lan-address'] ? 'https://' + addresses['lan-address'] : null,
'tor-address': addresses && addresses['tor-address'] ? 'http://' + addresses['tor-address'] : null,
},
}
})

View File

@@ -119,6 +119,8 @@ export class FormService {
private numberValidators (spec: ValueSpecNumber | ListValueSpecNumber): ValidatorFn[] {
const validators: ValidatorFn[] = []
validators.push(isNumber())
if (!(spec as ValueSpecNumber).nullable) {
validators.push(Validators.required)
}
@@ -160,6 +162,14 @@ export function numberInRange (stringRange: string): ValidatorFn {
}
}
export function isNumber (): ValidatorFn {
return (control: AbstractControl): ValidationErrors | null => {
return control.value == Number(control.value) ?
null :
{ invalidNumber: { value: control.value } }
}
}
export function isInteger (): ValidatorFn {
return (control: AbstractControl): ValidationErrors | null => {
return control.value == Math.trunc(control.value) ?