Skip to content

Commit

Permalink
remove "Jupyter" from workflow-related UI
Browse files Browse the repository at this point in the history
  • Loading branch information
svonworl authored Oct 1, 2024
1 parent a5e690e commit daf8a4f
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 23 deletions.
11 changes: 6 additions & 5 deletions src/app/shared/entry/descriptor-language.service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,23 +28,24 @@ describe('Service: DescriptorLanguage', () => {
it('should return the descriptor languages in an string array', () => {
const stubValue: Array<DescriptorLanguageBean> = [{ value: 'cwl' }, { value: 'wdl' }, { value: 'nextflow' }];
metadataServiceSpy.getDescriptorLanguages.and.returnValue(observableOf(stubValue));
workflowQuerySpy.entryType$ = observableOf('workflow');
const descriptorLanguageService = new DescriptorLanguageService(metadataServiceSpy, workflowQuerySpy);
descriptorLanguageService.filteredDescriptorLanguages$.pipe(first()).subscribe((languages: Array<string>) => {
expect(languages).toEqual(['cwl', 'wdl', 'nextflow'], 'service returned stub value');
});
});
it('should be able to filter service out', () => {
it('should be able to filter service and notebook out', () => {
const descriptorLanguageBeans: DescriptorLanguageBean[] = [];
descriptorLanguageBeans.push({ friendlyName: 'potato', value: 'potato' });
descriptorLanguageBeans.push({ friendlyName: 'beef', value: 'beef' });
descriptorLanguageBeans.push({ friendlyName: 'stew', value: 'stew' });
descriptorLanguageBeans.push({ friendlyName: 'generic placeholder for services', value: 'service' });
descriptorLanguageBeans.push({ friendlyName: 'generic placeholder for notebooks', value: 'jupyter' });
metadataServiceSpy.getDescriptorLanguages.and.returnValue(observableOf(descriptorLanguageBeans));
workflowQuerySpy.entryType$ = observableOf('workflow');
const descriptorLanguageService = new DescriptorLanguageService(metadataServiceSpy, workflowQuerySpy);
const filteredDescriptorLanguageBeans = descriptorLanguageService.filterService(descriptorLanguageBeans);
expect(filteredDescriptorLanguageBeans.length).toEqual(3);
filteredDescriptorLanguageBeans.forEach((descriptorLanguageBean) => {
expect(descriptorLanguageBean.value).not.toEqual(descriptorLanguageService.knownServiceValue);
descriptorLanguageService.filteredDescriptorLanguages$.pipe(first()).subscribe((languages: Array<string>) => {
expect(languages).toEqual(['potato', 'beef', 'stew'], 'service returned stub value');
});
});
it('should be able to get home page inner HTML', () => {
Expand Down
23 changes: 5 additions & 18 deletions src/app/shared/entry/descriptor-language.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ export class DescriptorLanguageService {
readonly knownServiceValue = 'service';

public descriptorLanguages$: Observable<Array<Workflow.DescriptorTypeEnum>>;
public descriptorLanguagesInnerHTML$: Observable<string>;
public noService$: Observable<DescriptorLanguageBean[]>;
private descriptorLanguagesBean$ = new BehaviorSubject<DescriptorLanguageBean[]>([]);
public filteredDescriptorLanguages$: Observable<Array<Workflow.DescriptorTypeEnum>>;
constructor(private metadataService: MetadataService, private sessionQuery: SessionQuery) {
Expand All @@ -47,10 +45,6 @@ export class DescriptorLanguageService {
}
})
);
this.noService$ = this.descriptorLanguagesBean$.pipe(map((beans) => this.filterService(beans)));
this.descriptorLanguagesInnerHTML$ = this.noService$.pipe(
map((descriptorLanguageBeans: DescriptorLanguageBean[]) => this.getDescriptorLanguagesInnerHTML(descriptorLanguageBeans))
);
const combined$ = combineLatest([this.descriptorLanguages$, this.sessionQuery.entryType$]);
this.filteredDescriptorLanguages$ = combined$.pipe(map((combined) => this.filterLanguages(combined[0], combined[1])));
}
Expand Down Expand Up @@ -233,17 +227,6 @@ export class DescriptorLanguageService {
}
}

/**
* Certain pages ignore the 'service' descriptor language completely, this filters it out of the known languages
*
* @param {DescriptorLanguageBean[]} beans Descriptor language bean returned from the metadata endpoint
* @returns {DescriptorLanguageBean[]} Filtered list of languages that do not have 'service' in it
* @memberof DescriptorLanguageService
*/
filterService(beans: DescriptorLanguageBean[]): DescriptorLanguageBean[] {
return beans.filter((bean) => bean.value !== this.knownServiceValue);
}

/**
* Some entries are not meant to show all descriptor types
*
Expand All @@ -254,7 +237,11 @@ export class DescriptorLanguageService {
*/
filterLanguages(descriptorTypes: Workflow.DescriptorTypeEnum[], entryType: EntryType): Workflow.DescriptorTypeEnum[] {
if (entryType === EntryType.BioWorkflow || entryType === EntryType.Tool || !entryType) {
return descriptorTypes.filter((descriptorType) => descriptorType !== Workflow.DescriptorTypeEnum.Service);
return descriptorTypes.filter(
(descriptorType) => descriptorType !== Workflow.DescriptorTypeEnum.Service && descriptorType !== Workflow.DescriptorTypeEnum.Jupyter
);
} else if (entryType === EntryType.Notebook) {
return [Workflow.DescriptorTypeEnum.Jupyter];
} else {
return [Workflow.DescriptorTypeEnum.Service];
}
Expand Down

0 comments on commit daf8a4f

Please sign in to comment.