From 1f6693d866f6724cc03527c7365749440f03858e Mon Sep 17 00:00:00 2001 From: Yi-Jacob Date: Wed, 8 May 2024 10:05:53 -0500 Subject: [PATCH] 215 - Add Refresh Schema Option --- .../df-cache/df-cache-table.component.ts | 2 +- .../df-manage-tables-table.component.ts | 9 +++++++-- .../df-manage-services-table.component.ts | 5 +++-- .../df-manage-table.component.html | 9 +++++++++ .../df-manage-table/df-manage-table.component.ts | 16 +++++++++++++++- .../df-side-nav/df-side-nav.component.html | 2 +- .../df-side-nav/df-side-nav.component.ts | 5 +++-- src/app/shared/services/df-base-crud.service.ts | 3 +++ src/app/shared/types/generic-http.ts | 1 + src/app/shared/types/service.ts | 1 + 10 files changed, 44 insertions(+), 9 deletions(-) diff --git a/src/app/adf-config/df-cache/df-cache-table.component.ts b/src/app/adf-config/df-cache/df-cache-table.component.ts index fe49d22d..84d1c415 100644 --- a/src/app/adf-config/df-cache/df-cache-table.component.ts +++ b/src/app/adf-config/df-cache/df-cache-table.component.ts @@ -27,7 +27,7 @@ import { Actions } from 'src/app/shared/types/table'; export class DfCacheTableComponent extends DfManageTableComponent { constructor( @Inject(CACHE_SERVICE_TOKEN) - private cacheService: DfBaseCrudService, + cacheService: DfBaseCrudService, router: Router, activatedRoute: ActivatedRoute, liveAnnouncer: LiveAnnouncer, diff --git a/src/app/adf-schema/df-manage-tables-table/df-manage-tables-table.component.ts b/src/app/adf-schema/df-manage-tables-table/df-manage-tables-table.component.ts index 08ba6e71..f109e6d4 100644 --- a/src/app/adf-schema/df-manage-tables-table/df-manage-tables-table.component.ts +++ b/src/app/adf-schema/df-manage-tables-table/df-manage-tables-table.component.ts @@ -66,12 +66,17 @@ export class DfManageTablesTableComponent extends DfManageTableComponent>({ limit, offset, filter, + refresh, }) .subscribe(data => { this.dataSource.data = this.mapDataToTable(data.resource); diff --git a/src/app/shared/components/df-manage-table/df-manage-table.component.html b/src/app/shared/components/df-manage-table/df-manage-table.component.html index a4880881..8264bcfd 100644 --- a/src/app/shared/components/df-manage-table/df-manage-table.component.html +++ b/src/app/shared/components/df-manage-table/df-manage-table.component.html @@ -8,6 +8,15 @@ type="button"> +
faPlus = faPlus; faEllipsisV = faEllipsisV; faTriangleExclamation = faTriangleExclamation; + faRefresh = faRefresh; allowCreate = true; allowFilter = true; currentFilter = new FormControl(''); + schema = false; abstract columns: Array>; @@ -100,6 +103,7 @@ export abstract class DfManageTableComponent }, ], }; + cacheService: any; constructor( protected router: Router, @@ -112,6 +116,7 @@ export abstract class DfManageTableComponent ngOnInit(): void { if (!this.tableData) { this.activatedRoute.data.subscribe(({ data }) => { + this.schema = this.router.url.includes('schema'); if (data && data.resource) { this.dataSource.data = this.mapDataToTable(data.resource); } @@ -175,7 +180,12 @@ export abstract class DfManageTableComponent abstract mapDataToTable(data: Array): Array; - abstract refreshTable(limit?: number, offset?: number, filter?: string): void; + abstract refreshTable( + limit?: number, + offset?: number, + filter?: string, + refresh?: true + ): void; abstract filterQuery(value: string): string; @@ -243,4 +253,8 @@ export abstract class DfManageTableComponent !this.actions.default.disabled) ); } + + refreshSchema() { + this.refreshTable(undefined, undefined, undefined, true); + } } 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 081dfbaf..26bd2210 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 @@ -117,7 +117,7 @@

- {{ breadcrumb.translationKey | transloco }} + {{ breadcrumb.translationKey | transloco }} {{ breadcrumb.label }} diff --git a/src/app/shared/components/df-side-nav/df-side-nav.component.ts b/src/app/shared/components/df-side-nav/df-side-nav.component.ts index cf039483..d4bea21f 100644 --- a/src/app/shared/components/df-side-nav/df-side-nav.component.ts +++ b/src/app/shared/components/df-side-nav/df-side-nav.component.ts @@ -17,6 +17,7 @@ import { faMagnifyingGlass, faPlus, faUser, + faRefresh, } from '@fortawesome/free-solid-svg-icons'; import { routes } from 'src/app/routes'; import { @@ -38,7 +39,7 @@ import { UntilDestroy } from '@ngneat/until-destroy'; import { CommonModule } from '@angular/common'; import { DfSearchService } from '../../services/df-search.service'; import { FormControl, ReactiveFormsModule } from '@angular/forms'; -import { HttpClient } from '@angular/common/http'; + @UntilDestroy({ checkProperties: true }) @Component({ selector: 'df-side-nav', @@ -83,6 +84,7 @@ export class DfSideNavComponent implements OnInit { recents$ = this.searchService.recents$; smallScreen$ = this.breakpointService.isSmallScreen; faPlus = faPlus; + faRefresh = faRefresh; constructor( // public dialogRef: MatDialogRef, @@ -132,7 +134,6 @@ export class DfSideNavComponent implements OnInit { this.nav = accessibleRoutes(transformRoutes(routes), accessByTabs); } else { this.nav = transformRoutes(routes); - console.log('this.nav', this.nav); } }); this.search.valueChanges diff --git a/src/app/shared/services/df-base-crud.service.ts b/src/app/shared/services/df-base-crud.service.ts index 4dfe2f62..7bd2c4de 100644 --- a/src/app/shared/services/df-base-crud.service.ts +++ b/src/app/shared/services/df-base-crud.service.ts @@ -183,6 +183,9 @@ export class DfBaseCrudService { if (options.includeCount !== undefined) { params.include_count = options.includeCount; } + if (options.refresh) { + params.refresh = options.refresh; + } if (options.additionalParams) { options.additionalParams.forEach(param => { diff --git a/src/app/shared/types/generic-http.ts b/src/app/shared/types/generic-http.ts index 917eea33..d8457131 100644 --- a/src/app/shared/types/generic-http.ts +++ b/src/app/shared/types/generic-http.ts @@ -41,6 +41,7 @@ export interface RequestOptions { additionalParams: KeyValuePair[]; additionalHeaders: KeyValuePair[]; includeCacheControl: boolean; + refresh: boolean; } export type GenericCreateResponse = GenericListResponse<{ id: number }>; diff --git a/src/app/shared/types/service.ts b/src/app/shared/types/service.ts index 55c5c452..868efa62 100644 --- a/src/app/shared/types/service.ts +++ b/src/app/shared/types/service.ts @@ -79,6 +79,7 @@ export interface Service { lastModifiedById: number | null; config: any; serviceDocByServiceId: number | null; + refresh: boolean; } export interface ServiceRow {