From 344c89459f597cfd69d83eb3d3963f63955cdec5 Mon Sep 17 00:00:00 2001 From: xgui3783 <xgui3783@gmail.com> Date: Thu, 13 Aug 2020 14:06:14 +0200 Subject: [PATCH] bugfix: pmap for new KgDsPrvw API (#628) --- src/glue.spec.ts | 6 ++---- src/glue.ts | 10 +++++----- src/services/state/uiState.store.helper.ts | 1 + src/ui/databrowserModule/constants.ts | 2 +- src/ui/databrowserModule/preview/preview.base.ts | 9 ++++++--- .../preview/previewDatasetFile.directive.ts | 9 ++++++++- .../regionMenu/regionMenu.template.html | 1 + 7 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/glue.spec.ts b/src/glue.spec.ts index 8db3fe572..f1fc2ade8 100644 --- a/src/glue.spec.ts +++ b/src/glue.spec.ts @@ -253,7 +253,7 @@ describe('> glue.ts', () => { // debounce at 100ms tick(200) - const req = ctrl.expectOne(`${DS_PREVIEW_URL}/${datasetId}/${encodeURIComponent(filename)}`) + const req = ctrl.expectOne(`${DS_PREVIEW_URL}/${encodeURIComponent('minds/core/dataset/v1.0.0')}/${datasetId}/${encodeURIComponent(filename)}`) req.flush(nifti) })) @@ -270,8 +270,6 @@ describe('> glue.ts', () => { const glue = TestBed.inject(DatasetPreviewGlue) - - store.setState({ uiState: { previewingDatasetFiles: [ file1 ] @@ -282,7 +280,7 @@ describe('> glue.ts', () => { // debounce at 100ms tick(200) - const req = ctrl.expectOne(`${DS_PREVIEW_URL}/${datasetId}/${encodeURIComponent(filename)}`) + const req = ctrl.expectOne(`${DS_PREVIEW_URL}/${encodeURIComponent('minds/core/dataset/v1.0.0')}/${datasetId}/${encodeURIComponent(filename)}`) req.flush(nifti) const { name, volumeMetadata } = nifti diff --git a/src/glue.ts b/src/glue.ts index 1e2cc043c..bee292f7e 100644 --- a/src/glue.ts +++ b/src/glue.ts @@ -120,8 +120,8 @@ export class DatasetPreviewGlue implements IDatasetPreviewGlue, OnDestroy{ } static GetDatasetPreviewId(data: IDatasetPreviewData ){ - const { datasetId, filename } = data - return `${datasetId}:${filename}` + const { datasetSchema = 'untitled', datasetId, filename } = data + return `${datasetSchema}/${datasetId}:${filename}` } static GetDatasetPreviewFromId(id: string): IDatasetPreviewData{ @@ -196,12 +196,12 @@ export class DatasetPreviewGlue implements IDatasetPreviewGlue, OnDestroy{ } private fetchedDatasetPreviewCache: Map<string, any> = new Map() - public getDatasetPreviewFromId({ datasetId, filename }: IDatasetPreviewData){ - const dsPrvId = DatasetPreviewGlue.GetDatasetPreviewId({ datasetId, filename }) + public getDatasetPreviewFromId({ datasetSchema = 'minds/core/dataset/v1.0.0', datasetId, filename }: IDatasetPreviewData){ + const dsPrvId = DatasetPreviewGlue.GetDatasetPreviewId({ datasetSchema, datasetId, filename }) const cachedPrv = this.fetchedDatasetPreviewCache.get(dsPrvId) const filteredDsId = /[a-f0-9-]+$/.exec(datasetId) if (cachedPrv) return of(cachedPrv) - return this.http.get(`${DS_PREVIEW_URL}/${filteredDsId}/${encodeURIComponent(filename)}`, { responseType: 'json' }).pipe( + return this.http.get(`${DS_PREVIEW_URL}/${encodeURIComponent(datasetSchema)}/${filteredDsId}/${encodeURIComponent(filename)}`, { responseType: 'json' }).pipe( map(json => { return { ...json, diff --git a/src/services/state/uiState.store.helper.ts b/src/services/state/uiState.store.helper.ts index 376c4d788..2f712457a 100644 --- a/src/services/state/uiState.store.helper.ts +++ b/src/services/state/uiState.store.helper.ts @@ -33,6 +33,7 @@ export enum EnumWidgetTypes{ } export interface IDatasetPreviewData{ + datasetSchema?: string datasetId: string filename: string } diff --git a/src/ui/databrowserModule/constants.ts b/src/ui/databrowserModule/constants.ts index 617d39598..58ec6aa08 100644 --- a/src/ui/databrowserModule/constants.ts +++ b/src/ui/databrowserModule/constants.ts @@ -95,4 +95,4 @@ export interface DatasetPreview { filename: string } -export const GET_KGDS_PREVIEW_INFO_FROM_ID_FILENAME: InjectionToken<({ datasetId, filename }) => Observable<any>> = new InjectionToken('GET_KGDS_PREVIEW_INFO_FROM_ID_FILENAME') +export const GET_KGDS_PREVIEW_INFO_FROM_ID_FILENAME: InjectionToken<({ datasetSchema, datasetId, filename }) => Observable<any>> = new InjectionToken('GET_KGDS_PREVIEW_INFO_FROM_ID_FILENAME') diff --git a/src/ui/databrowserModule/preview/preview.base.ts b/src/ui/databrowserModule/preview/preview.base.ts index 3caeef0ff..b1191fdd3 100644 --- a/src/ui/databrowserModule/preview/preview.base.ts +++ b/src/ui/databrowserModule/preview/preview.base.ts @@ -16,6 +16,9 @@ export class PreviewBase implements OnChanges{ @Input() datasetId: string + @Input() + datasetSchema: string = 'minds/core/dataste/v1.0.0' + previewtype: EnumPreviewFileTypes fetchingFlag: boolean = false @@ -28,10 +31,10 @@ export class PreviewBase implements OnChanges{ * if already complete, do not attempt to fetch */ - const { datasetId, filename } = this + const { datasetId, filename, datasetSchema } = this if (!filename || !datasetId) return this.fetchingFlag = true - this.getDatasetPreviewFromId({ datasetId, filename }) + this.getDatasetPreviewFromId({ datasetSchema, datasetId, filename }) .subscribe( file => { this.fetchingFlag = false @@ -42,7 +45,7 @@ export class PreviewBase implements OnChanges{ } constructor( - private getDatasetPreviewFromId: ({ datasetId, filename }) => Observable<any> + private getDatasetPreviewFromId: ({ datasetSchema, datasetId, filename }) => Observable<any> ){ } diff --git a/src/ui/databrowserModule/preview/previewDatasetFile.directive.ts b/src/ui/databrowserModule/preview/previewDatasetFile.directive.ts index f3f649ddf..d52c6aab0 100644 --- a/src/ui/databrowserModule/preview/previewDatasetFile.directive.ts +++ b/src/ui/databrowserModule/preview/previewDatasetFile.directive.ts @@ -38,7 +38,14 @@ export class PreviewDatasetFile extends PreviewBase implements OnChanges{ } @Input('iav-dataset-preview-dataset-file-kgschema') - kgSchema: string = `minds/core/dataset/v1.0.0` + set kgSchema(val){ + if (!val) return + this.datasetSchema = val + } + + get kgSchema(){ + return this.datasetSchema + } @Input('iav-dataset-preview-dataset-file-fullid') fullId: string diff --git a/src/ui/parcellationRegion/regionMenu/regionMenu.template.html b/src/ui/parcellationRegion/regionMenu/regionMenu.template.html index 75d64eafe..9cde285d0 100644 --- a/src/ui/parcellationRegion/regionMenu/regionMenu.template.html +++ b/src/ui/parcellationRegion/regionMenu/regionMenu.template.html @@ -26,6 +26,7 @@ [color]="previewDirective.active ? 'primary' : 'basic'" *ngFor="let originDataset of (region.originDatasets || []); let index = index" iav-dataset-preview-dataset-file + [iav-dataset-preview-dataset-file-kgschema]="originDataset.kgSchema" [iav-dataset-preview-dataset-file-kgid]="originDataset.kgId" [iav-dataset-preview-dataset-file-filename]="originDataset.filename" #previewDirective="iavDatasetPreviewDatasetFile" -- GitLab