diff --git a/src/app/adf-home/df-welcome-page/df-welcome-page.component.html b/src/app/adf-home/df-welcome-page/df-welcome-page.component.html index d9331d40..9a65dbed 100644 --- a/src/app/adf-home/df-welcome-page/df-welcome-page.component.html +++ b/src/app/adf-home/df-welcome-page/df-welcome-page.component.html @@ -61,9 +61,15 @@

- {{ 'home.welcomePage.clientPlatformHeading' | transloco }} + {{ 'home.quickstartPage.quickstartSubHeading' | transloco }}

+
    +
  1. {{ 'home.quickstartPage.quickstartSteps.stepOne' | transloco }}
  2. +
  3. {{ 'home.quickstartPage.quickstartSteps.stepTwo' | transloco }}
  4. +
  5. {{ 'home.quickstartPage.quickstartSteps.stepThree' | transloco }}
  6. +
+

{{ 'home.welcomePage.nativeExamplesHeading' | transloco }} @@ -94,3 +100,5 @@

+ + diff --git a/src/app/adf-home/df-welcome-page/df-welcome-page.component.ts b/src/app/adf-home/df-welcome-page/df-welcome-page.component.ts index 3a956c65..fe24a5a7 100644 --- a/src/app/adf-home/df-welcome-page/df-welcome-page.component.ts +++ b/src/app/adf-home/df-welcome-page/df-welcome-page.component.ts @@ -19,6 +19,9 @@ import { faHeart, } from '@fortawesome/free-solid-svg-icons'; import { TranslocoPipe } from '@ngneat/transloco'; +import { DfQuickstartPageComponent } from '../df-quickstart-page/df-quickstart-page.component'; +import { DfResourcesPageComponent } from '../df-resources-page/df-resources-page.component'; +import { DfDownloadPageComponent } from '../df-download-page/df-download-page.component'; @Component({ selector: 'df-welcome-page', @@ -34,6 +37,9 @@ import { TranslocoPipe } from '@ngneat/transloco'; DfIconCardLinkComponent, AsyncPipe, TranslocoPipe, + DfQuickstartPageComponent, + DfResourcesPageComponent, + DfDownloadPageComponent, ], }) export class DfWelcomePageComponent { diff --git a/src/app/adf-home/routes.ts b/src/app/adf-home/routes.ts index dea8961e..0c35be04 100644 --- a/src/app/adf-home/routes.ts +++ b/src/app/adf-home/routes.ts @@ -2,33 +2,46 @@ import { Routes } from '@angular/router'; import { ROUTES } from '../shared/types/routes'; export const HomeRoutes: Routes = [ - { path: '', redirectTo: ROUTES.WELCOME, pathMatch: 'full' }, { - path: ROUTES.WELCOME, + path: '', loadComponent: () => import('./df-welcome-page/df-welcome-page.component').then( m => m.DfWelcomePageComponent ), }, - { - path: ROUTES.QUICKSTART, - loadComponent: () => - import('./df-quickstart-page/df-quickstart-page.component').then( - m => m.DfQuickstartPageComponent - ), - }, - { - path: ROUTES.RESOURCES, - loadComponent: () => - import('./df-resources-page/df-resources-page.component').then( - m => m.DfResourcesPageComponent - ), - }, - { - path: ROUTES.DOWNLOAD, - loadComponent: () => - import('./df-download-page/df-download-page.component').then( - m => m.DfDownloadPageComponent - ), - }, + // { + // path: ROUTES.WELCOME, + // loadComponent: () => + // import('./df-welcome-page/df-welcome-page.component').then( + // m => m.DfWelcomePageComponent + // ), + // }, + // { + // path: ROUTES.WELCOME, + // loadComponent: () => + // import('./df-welcome-page/df-welcome-page.component').then( + // m => m.DfWelcomePageComponent + // ), + // }, + // { + // path: ROUTES.QUICKSTART, + // loadComponent: () => + // import('./df-quickstart-page/df-quickstart-page.component').then( + // m => m.DfQuickstartPageComponent + // ), + // }, + // { + // path: ROUTES.RESOURCES, + // loadComponent: () => + // import('./df-resources-page/df-resources-page.component').then( + // m => m.DfResourcesPageComponent + // ), + // }, + // { + // path: ROUTES.DOWNLOAD, + // loadComponent: () => + // import('./df-download-page/df-download-page.component').then( + // m => m.DfDownloadPageComponent + // ), + // }, ]; diff --git a/src/app/adf-roles/df-role-details/df-role-details.component.html b/src/app/adf-roles/df-role-details/df-role-details.component.html index 62ac8ea8..a5134279 100644 --- a/src/app/adf-roles/df-role-details/df-role-details.component.html +++ b/src/app/adf-roles/df-role-details/df-role-details.component.html @@ -1,7 +1,12 @@

{{ 'roles.rolesOverview.description' | transloco }}

- + + {{ alertMsg }} +
{{ 'name' | transloco }} diff --git a/src/app/adf-roles/df-role-details/df-role-details.component.ts b/src/app/adf-roles/df-role-details/df-role-details.component.ts index 26477e1d..4b93e57b 100644 --- a/src/app/adf-roles/df-role-details/df-role-details.component.ts +++ b/src/app/adf-roles/df-role-details/df-role-details.component.ts @@ -25,6 +25,11 @@ import { MatSlideToggleModule } from '@angular/material/slide-toggle'; import { MatButtonModule } from '@angular/material/button'; import { DfRolesAccessComponent } from '../df-roles-access/df-roles-access.component'; import { UntilDestroy } from '@ngneat/until-destroy'; +import { + AlertType, + DfAlertComponent, +} from 'src/app/shared/components/df-alert/df-alert.component'; +import { catchError, throwError } from 'rxjs'; @UntilDestroy({ checkProperties: true }) @Component({ selector: 'df-role-details', @@ -42,11 +47,15 @@ import { UntilDestroy } from '@ngneat/until-destroy'; MatButtonModule, DfRolesAccessComponent, NgIf, + DfAlertComponent, ], }) export class DfRoleDetailsComponent implements OnInit { roleForm: FormGroup; type = ''; + alertMsg = ''; + showAlert = false; + alertType: AlertType = 'error'; constructor( @Inject(ROLE_SERVICE_TOKEN) @@ -137,6 +146,12 @@ export class DfRoleDetailsComponent implements OnInit { return result; } + triggerAlert(type: AlertType, msg: string) { + this.alertType = type; + this.alertMsg = msg; + this.showAlert = true; + } + onSubmit() { if (this.roleForm.invalid) return; @@ -168,7 +183,12 @@ export class DfRoleDetailsComponent implements OnInit { if (this.type === 'edit' && payload.id) { this.roleService .update(payload.id, payload) - + .pipe( + catchError(err => { + this.triggerAlert('error', err.error.error.message); + return throwError(() => new Error(err)); + }) + ) .subscribe(() => { this.goBack(); }); @@ -178,7 +198,15 @@ export class DfRoleDetailsComponent implements OnInit { fields: '*', related: 'role_service_access_by_role_id,lookup_by_role_id', }) - + .pipe( + catchError(err => { + this.triggerAlert( + 'error', + err.error.error.context.resource[0].message + ); + return throwError(() => new Error(err)); + }) + ) .subscribe(() => { this.goBack(); }); diff --git a/src/app/adf-schema/df-table-details/df-table-details.types.ts b/src/app/adf-schema/df-table-details/df-table-details.types.ts index 29e40aca..36bd7fc2 100644 --- a/src/app/adf-schema/df-table-details/df-table-details.types.ts +++ b/src/app/adf-schema/df-table-details/df-table-details.types.ts @@ -1,4 +1,3 @@ -// TODO fix all any types export interface TableDetailsType { alias?: string; name: string; diff --git a/src/app/adf-services/df-service-details/df-service-details.component.html b/src/app/adf-services/df-service-details/df-service-details.component.html index 751a0027..43069126 100644 --- a/src/app/adf-services/df-service-details/df-service-details.component.html +++ b/src/app/adf-services/df-service-details/df-service-details.component.html @@ -1,5 +1,5 @@ - + {{ 'services.controls.serviceType.label' | transloco }} @@ -16,7 +16,7 @@ {{ 'services.controls.namespace.label' | transloco }} @@ -58,10 +58,15 @@ - - {{ - 'services.config' | transloco - }} + + {{ 'services.options' | transloco }} +
{ - this.router.navigate(['../'], { relativeTo: this.activatedRoute }); + this.router.navigate([`/api-connections/api-docs/${data.name}`]); }); } } diff --git a/src/app/adf-user-management/df-login/df-login.component.html b/src/app/adf-user-management/df-login/df-login.component.html index b74967b2..3c134266 100644 --- a/src/app/adf-user-management/df-login/df-login.component.html +++ b/src/app/adf-user-management/df-login/df-login.component.html @@ -22,7 +22,7 @@ - + {{ 'userManagement.controls.services.label' | transloco @@ -37,7 +37,9 @@ - + {{ 'userManagement.controls.email.label' | transloco }} @@ -59,7 +61,7 @@ {{ 'userManagement.controls.username.altLabel' | transloco @@ -72,7 +74,7 @@ - + {{ 'userManagement.controls.password.label' | transloco }} diff --git a/src/app/shared/components/df-field-array/df-array-field.component.ts b/src/app/shared/components/df-field-array/df-array-field.component.ts index 8d805bbc..4aca066a 100644 --- a/src/app/shared/components/df-field-array/df-array-field.component.ts +++ b/src/app/shared/components/df-field-array/df-array-field.component.ts @@ -133,15 +133,22 @@ export class DfArrayFieldComponent implements OnInit, ControlValueAccessor { this.fieldArray = this.fb.array([]); } - writeValue(value?: Array): void { - if (value && this.schema.type === 'array') { + writeValue(value?: Array | { [key: string]: any }): void { + if (value && Array.isArray(value) && this.schema.type === 'array') { if (this.schema.items === 'string') { this.fieldArray = this.fb.array(value.map(v => new FormControl(v))); } else { this.fieldArray = this.fb.array(value.map(v => this.createGroup(v))); } } else if (value && this.schema.type === 'object') { - // TODO do something + this.fieldArray = this.fb.array( + Object.keys(value).map(key => + this.createGroup({ + key, + value: (value as { [key: string]: any })[key], + }) + ) + ); } this.fieldArray.valueChanges .pipe( diff --git a/src/app/shared/components/df-manage-table/df-manage-table.component.ts b/src/app/shared/components/df-manage-table/df-manage-table.component.ts index 0612c5d9..98ae97f1 100644 --- a/src/app/shared/components/df-manage-table/df-manage-table.component.ts +++ b/src/app/shared/components/df-manage-table/df-manage-table.component.ts @@ -211,7 +211,7 @@ export abstract class DfManageTableComponent } viewRow(row: T): void { - this.router.navigate([(row as any).id], { + this.router.navigate([`${(row as any).id}-${(row as any).name}`], { relativeTo: this._activatedRoute, }); } diff --git a/src/app/shared/components/df-side-nav/df-side-nav.component.html b/src/app/shared/components/df-side-nav/df-side-nav.component.html index a629cac6..5019b45b 100644 --- a/src/app/shared/components/df-side-nav/df-side-nav.component.html +++ b/src/app/shared/components/df-side-nav/df-side-nav.component.html @@ -12,12 +12,6 @@ -