From 568197ec11aa3c6241e8a019f2bf47d10a7f9b4f Mon Sep 17 00:00:00 2001 From: hyunnaye Date: Mon, 23 Sep 2024 14:21:02 -0400 Subject: [PATCH 1/8] initial --- src/app/shared/state/paginator.service.ts | 14 ++++++- .../workflow/versions/versions.component.html | 7 ++++ .../workflow/versions/versions.component.ts | 38 ++++++++++++------- src/app/workflow/workflow.component.html | 1 - 4 files changed, 44 insertions(+), 16 deletions(-) diff --git a/src/app/shared/state/paginator.service.ts b/src/app/shared/state/paginator.service.ts index 6d684aaa14..5a023e532b 100644 --- a/src/app/shared/state/paginator.service.ts +++ b/src/app/shared/state/paginator.service.ts @@ -5,7 +5,7 @@ import { PaginatorInfo, PaginatorStore } from './paginator.store'; export class PaginatorService { constructor(private paginatorStore: PaginatorStore) {} - setPaginator(type: 'tool' | 'workflow' | 'lambdaEvent', pageSize: number, pageNumber: number): void { + setPaginator(type: 'tool' | 'workflow' | 'lambdaEvent' | 'version', pageSize: number, pageNumber: number): void { const paginatorInfo: PaginatorInfo = { pageSize: pageSize, pageIndex: pageNumber, @@ -14,8 +14,10 @@ export class PaginatorService { this.setToolPaginatorSize(paginatorInfo); } else if (type === 'workflow') { this.setWorkflowPaginatorSize(paginatorInfo); - } else { + } else if (type === 'lambdaEvent') { this.setLambdaEventPaginatorSize(paginatorInfo); + } else { + this.setVersionPaginatorSize(paginatorInfo); } } @@ -44,4 +46,12 @@ export class PaginatorService { }; }); } + setVersionPaginatorSize(paginatorInfo: PaginatorInfo) { + this.paginatorStore.update((state) => { + return { + ...state, + lambdaEvent: paginatorInfo, + }; + }); + } } diff --git a/src/app/workflow/versions/versions.component.html b/src/app/workflow/versions/versions.component.html index 381b954014..4b3709c55f 100644 --- a/src/app/workflow/versions/versions.component.html +++ b/src/app/workflow/versions/versions.component.html @@ -291,5 +291,12 @@ *matRowDef="let row; columns: displayedColumns; let version" data-cy="versionRow" > + diff --git a/src/app/workflow/versions/versions.component.ts b/src/app/workflow/versions/versions.component.ts index ca825a2a96..f4f8f2c7d2 100644 --- a/src/app/workflow/versions/versions.component.ts +++ b/src/app/workflow/versions/versions.component.ts @@ -22,7 +22,7 @@ import { AlertService } from '../../shared/alert/state/alert.service'; import { DateService } from '../../shared/date.service'; import { Dockstore } from '../../shared/dockstore.model'; import { DockstoreService } from '../../shared/dockstore.service'; -import { Doi, EntryType, VersionVerifiedPlatform } from '../../shared/openapi'; +import { Doi, EntryType, VersionVerifiedPlatform, WorkflowsService } from '../../shared/openapi'; import { ExtendedWorkflow } from '../../shared/models/ExtendedWorkflow'; import { SessionQuery } from '../../shared/session/session.query'; import { ExtendedWorkflowQuery } from '../../shared/state/extended-workflow.query'; @@ -36,11 +36,14 @@ import { ExtendedModule } from '@ngbracket/ngx-layout/extended'; import { ViewWorkflowComponent } from '../view/view.component'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import { MatLegacyChipsModule } from '@angular/material/legacy-chips'; -import { NgIf, NgClass, NgFor, JsonPipe, DatePipe, KeyValuePipe, KeyValue } from '@angular/common'; +import { NgIf, NgClass, NgFor, JsonPipe, DatePipe, KeyValuePipe, KeyValue, AsyncPipe } from '@angular/common'; import { FlexModule } from '@ngbracket/ngx-layout/flex'; import { MatIconModule } from '@angular/material/icon'; import { MatLegacyTooltipModule } from '@angular/material/legacy-tooltip'; import { DoiBadgeComponent } from 'app/shared/entry/doi/doi-badge/doi-badge.component'; +import { PaginatorService } from '../../shared/state/paginator.service'; +import { Observable } from 'rxjs'; +import { MatLegacyPaginator as MatPaginator, MatLegacyPaginatorModule } from '@angular/material/legacy-paginator'; @Component({ selector: 'app-versions-workflow', @@ -67,12 +70,14 @@ import { DoiBadgeComponent } from 'app/shared/entry/doi/doi-badge/doi-badge.comp CommitUrlPipe, KeyValuePipe, DoiBadgeComponent, + AsyncPipe, + MatLegacyPaginatorModule, ], }) export class VersionsWorkflowComponent extends Versions implements OnInit, OnChanges, AfterViewInit { faTag = faTag; faCodeBranch = faCodeBranch; - @Input() versions: Array; + versions: Array; @Input() workflowId: number; @Input() verifiedVersionPlatforms: Array; _selectedVersion: WorkflowVersion; @@ -85,10 +90,15 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha dataSource = new MatTableDataSource(this.versions); @Output() selectedVersionChange = new EventEmitter(); @ViewChild(MatSort) sort: MatSort; + @ViewChild(MatPaginator, { static: true }) protected paginator: MatPaginator; public WorkflowType = Workflow; workflow: ExtendedWorkflow; entryType = EntryType; DoiInitiatorEnum = Doi.InitiatorEnum; + type: 'workflow' | 'tool' | 'lambdaEvent' | 'version' = 'version'; + public pageSize$: Observable; + public pageIndex$: Observable; + versionsLength: number; setNoOrderCols(): Array { return [4, 5]; } @@ -97,6 +107,8 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha dockstoreService: DockstoreService, dateService: DateService, private alertService: AlertService, + private paginatorService: PaginatorService, + private workflowsService: WorkflowsService, private extendedWorkflowQuery: ExtendedWorkflowQuery, protected sessionQuery: SessionQuery ) { @@ -140,24 +152,24 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha ngOnChanges() { this.dataSource.data = this.versions; + console.log(this.dataSource.data); } ngOnInit() { + this.workflowsService + .getWorkflowVersions(this.workflowId, this.paginator.pageSize, this.paginator.pageIndex) + .pipe(takeUntil(this.ngUnsubscribe)) + .subscribe((versions) => { + this.versions = versions; + console.log(versions); + }); + this.paginatorService.setPaginator(this.type, this.paginator.pageSize, this.paginator.pageIndex); this.extendedWorkflowQuery.extendedWorkflow$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((workflow) => { this.workflow = workflow; + this.versionsLength = this.workflow.workflowVersions.length; if (workflow) { this.defaultVersion = workflow.defaultVersion; } - this.dtOptions = { - bFilter: false, - bPaginate: false, - columnDefs: [ - { - orderable: false, - targets: this.setNoOrderCols(), - }, - ], - }; this.publicPageSubscription(); }); } diff --git a/src/app/workflow/workflow.component.html b/src/app/workflow/workflow.component.html index 575d090990..561cb7ec37 100644 --- a/src/app/workflow/workflow.component.html +++ b/src/app/workflow/workflow.component.html @@ -334,7 +334,6 @@

Date: Mon, 23 Sep 2024 14:24:09 -0400 Subject: [PATCH 2/8] initial --- src/app/shared/state/paginator.service.ts | 14 ++++++- .../workflow/versions/versions.component.html | 7 ++++ .../workflow/versions/versions.component.ts | 38 ++++++++++++------- src/app/workflow/workflow.component.html | 1 - 4 files changed, 44 insertions(+), 16 deletions(-) diff --git a/src/app/shared/state/paginator.service.ts b/src/app/shared/state/paginator.service.ts index 6d684aaa14..5a023e532b 100644 --- a/src/app/shared/state/paginator.service.ts +++ b/src/app/shared/state/paginator.service.ts @@ -5,7 +5,7 @@ import { PaginatorInfo, PaginatorStore } from './paginator.store'; export class PaginatorService { constructor(private paginatorStore: PaginatorStore) {} - setPaginator(type: 'tool' | 'workflow' | 'lambdaEvent', pageSize: number, pageNumber: number): void { + setPaginator(type: 'tool' | 'workflow' | 'lambdaEvent' | 'version', pageSize: number, pageNumber: number): void { const paginatorInfo: PaginatorInfo = { pageSize: pageSize, pageIndex: pageNumber, @@ -14,8 +14,10 @@ export class PaginatorService { this.setToolPaginatorSize(paginatorInfo); } else if (type === 'workflow') { this.setWorkflowPaginatorSize(paginatorInfo); - } else { + } else if (type === 'lambdaEvent') { this.setLambdaEventPaginatorSize(paginatorInfo); + } else { + this.setVersionPaginatorSize(paginatorInfo); } } @@ -44,4 +46,12 @@ export class PaginatorService { }; }); } + setVersionPaginatorSize(paginatorInfo: PaginatorInfo) { + this.paginatorStore.update((state) => { + return { + ...state, + lambdaEvent: paginatorInfo, + }; + }); + } } diff --git a/src/app/workflow/versions/versions.component.html b/src/app/workflow/versions/versions.component.html index 381b954014..4b3709c55f 100644 --- a/src/app/workflow/versions/versions.component.html +++ b/src/app/workflow/versions/versions.component.html @@ -291,5 +291,12 @@ *matRowDef="let row; columns: displayedColumns; let version" data-cy="versionRow" > +
diff --git a/src/app/workflow/versions/versions.component.ts b/src/app/workflow/versions/versions.component.ts index ca825a2a96..f4f8f2c7d2 100644 --- a/src/app/workflow/versions/versions.component.ts +++ b/src/app/workflow/versions/versions.component.ts @@ -22,7 +22,7 @@ import { AlertService } from '../../shared/alert/state/alert.service'; import { DateService } from '../../shared/date.service'; import { Dockstore } from '../../shared/dockstore.model'; import { DockstoreService } from '../../shared/dockstore.service'; -import { Doi, EntryType, VersionVerifiedPlatform } from '../../shared/openapi'; +import { Doi, EntryType, VersionVerifiedPlatform, WorkflowsService } from '../../shared/openapi'; import { ExtendedWorkflow } from '../../shared/models/ExtendedWorkflow'; import { SessionQuery } from '../../shared/session/session.query'; import { ExtendedWorkflowQuery } from '../../shared/state/extended-workflow.query'; @@ -36,11 +36,14 @@ import { ExtendedModule } from '@ngbracket/ngx-layout/extended'; import { ViewWorkflowComponent } from '../view/view.component'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import { MatLegacyChipsModule } from '@angular/material/legacy-chips'; -import { NgIf, NgClass, NgFor, JsonPipe, DatePipe, KeyValuePipe, KeyValue } from '@angular/common'; +import { NgIf, NgClass, NgFor, JsonPipe, DatePipe, KeyValuePipe, KeyValue, AsyncPipe } from '@angular/common'; import { FlexModule } from '@ngbracket/ngx-layout/flex'; import { MatIconModule } from '@angular/material/icon'; import { MatLegacyTooltipModule } from '@angular/material/legacy-tooltip'; import { DoiBadgeComponent } from 'app/shared/entry/doi/doi-badge/doi-badge.component'; +import { PaginatorService } from '../../shared/state/paginator.service'; +import { Observable } from 'rxjs'; +import { MatLegacyPaginator as MatPaginator, MatLegacyPaginatorModule } from '@angular/material/legacy-paginator'; @Component({ selector: 'app-versions-workflow', @@ -67,12 +70,14 @@ import { DoiBadgeComponent } from 'app/shared/entry/doi/doi-badge/doi-badge.comp CommitUrlPipe, KeyValuePipe, DoiBadgeComponent, + AsyncPipe, + MatLegacyPaginatorModule, ], }) export class VersionsWorkflowComponent extends Versions implements OnInit, OnChanges, AfterViewInit { faTag = faTag; faCodeBranch = faCodeBranch; - @Input() versions: Array; + versions: Array; @Input() workflowId: number; @Input() verifiedVersionPlatforms: Array; _selectedVersion: WorkflowVersion; @@ -85,10 +90,15 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha dataSource = new MatTableDataSource(this.versions); @Output() selectedVersionChange = new EventEmitter(); @ViewChild(MatSort) sort: MatSort; + @ViewChild(MatPaginator, { static: true }) protected paginator: MatPaginator; public WorkflowType = Workflow; workflow: ExtendedWorkflow; entryType = EntryType; DoiInitiatorEnum = Doi.InitiatorEnum; + type: 'workflow' | 'tool' | 'lambdaEvent' | 'version' = 'version'; + public pageSize$: Observable; + public pageIndex$: Observable; + versionsLength: number; setNoOrderCols(): Array { return [4, 5]; } @@ -97,6 +107,8 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha dockstoreService: DockstoreService, dateService: DateService, private alertService: AlertService, + private paginatorService: PaginatorService, + private workflowsService: WorkflowsService, private extendedWorkflowQuery: ExtendedWorkflowQuery, protected sessionQuery: SessionQuery ) { @@ -140,24 +152,24 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha ngOnChanges() { this.dataSource.data = this.versions; + console.log(this.dataSource.data); } ngOnInit() { + this.workflowsService + .getWorkflowVersions(this.workflowId, this.paginator.pageSize, this.paginator.pageIndex) + .pipe(takeUntil(this.ngUnsubscribe)) + .subscribe((versions) => { + this.versions = versions; + console.log(versions); + }); + this.paginatorService.setPaginator(this.type, this.paginator.pageSize, this.paginator.pageIndex); this.extendedWorkflowQuery.extendedWorkflow$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((workflow) => { this.workflow = workflow; + this.versionsLength = this.workflow.workflowVersions.length; if (workflow) { this.defaultVersion = workflow.defaultVersion; } - this.dtOptions = { - bFilter: false, - bPaginate: false, - columnDefs: [ - { - orderable: false, - targets: this.setNoOrderCols(), - }, - ], - }; this.publicPageSubscription(); }); } diff --git a/src/app/workflow/workflow.component.html b/src/app/workflow/workflow.component.html index 575d090990..561cb7ec37 100644 --- a/src/app/workflow/workflow.component.html +++ b/src/app/workflow/workflow.component.html @@ -334,7 +334,6 @@

Date: Wed, 25 Sep 2024 14:13:14 -0400 Subject: [PATCH 3/8] initial --- src/app/shared/state/paginator.query.ts | 2 ++ src/app/shared/state/paginator.service.ts | 2 +- src/app/shared/state/paginator.store.ts | 2 ++ src/app/workflow/versions/versions.component.html | 14 +++++++------- src/app/workflow/versions/versions.component.ts | 8 ++++++-- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/app/shared/state/paginator.query.ts b/src/app/shared/state/paginator.query.ts index b913677e14..17980377a5 100644 --- a/src/app/shared/state/paginator.query.ts +++ b/src/app/shared/state/paginator.query.ts @@ -25,9 +25,11 @@ export class PaginatorQuery extends Query { toolPageSize$: Observable = this.select((state) => (this.router.url === '/' ? 10 : state.tool.pageSize)); workflowPageSize$: Observable = this.select((state) => (this.router.url === '/' ? 10 : state.workflow.pageSize)); eventPageSize$: Observable = this.select((state) => (this.router.url === '/' ? 10 : state.lambdaEvent.pageSize)); + versionPageSize$: Observable = this.select((state) => (this.router.url === '/' ? 10 : state.version.pageSize)); toolPageIndex$: Observable = this.select((state) => (this.router.url === '/' ? 0 : state.tool.pageIndex)); workflowPageIndex$: Observable = this.select((state) => (this.router.url === '/' ? 0 : state.workflow.pageIndex)); eventPageIndex$: Observable = this.select((state) => (this.router.url === '/' ? 0 : state.lambdaEvent.pageIndex)); + versionPageIndex$: Observable = this.select((state) => (this.router.url === '/' ? 0 : state.version.pageIndex)); constructor(protected store: PaginatorStore, private router: Router) { super(store); } diff --git a/src/app/shared/state/paginator.service.ts b/src/app/shared/state/paginator.service.ts index 5a023e532b..7ad55e401f 100644 --- a/src/app/shared/state/paginator.service.ts +++ b/src/app/shared/state/paginator.service.ts @@ -50,7 +50,7 @@ export class PaginatorService { this.paginatorStore.update((state) => { return { ...state, - lambdaEvent: paginatorInfo, + version: paginatorInfo, }; }); } diff --git a/src/app/shared/state/paginator.store.ts b/src/app/shared/state/paginator.store.ts index ed503eb779..b6001a9aa9 100644 --- a/src/app/shared/state/paginator.store.ts +++ b/src/app/shared/state/paginator.store.ts @@ -5,6 +5,7 @@ export interface PaginatorState { tool: PaginatorInfo; workflow: PaginatorInfo; lambdaEvent: PaginatorInfo; + version: PaginatorInfo; } export interface PaginatorInfo { @@ -16,6 +17,7 @@ const initialState: PaginatorState = { tool: { pageSize: 10, pageIndex: 0 }, workflow: { pageSize: 10, pageIndex: 0 }, lambdaEvent: { pageSize: 10, pageIndex: 0 }, + version: { pageSize: 10, pageIndex: 0 }, }; @Injectable({ providedIn: 'root' }) diff --git a/src/app/workflow/versions/versions.component.html b/src/app/workflow/versions/versions.component.html index 4b3709c55f..a47dc74fd5 100644 --- a/src/app/workflow/versions/versions.component.html +++ b/src/app/workflow/versions/versions.component.html @@ -291,12 +291,12 @@ *matRowDef="let row; columns: displayedColumns; let version" data-cy="versionRow" > - +
diff --git a/src/app/workflow/versions/versions.component.ts b/src/app/workflow/versions/versions.component.ts index f4f8f2c7d2..c9e00956e6 100644 --- a/src/app/workflow/versions/versions.component.ts +++ b/src/app/workflow/versions/versions.component.ts @@ -87,7 +87,7 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha this._selectedVersion = value; } } - dataSource = new MatTableDataSource(this.versions); + dataSource: MatTableDataSource; @Output() selectedVersionChange = new EventEmitter(); @ViewChild(MatSort) sort: MatSort; @ViewChild(MatPaginator, { static: true }) protected paginator: MatPaginator; @@ -151,16 +151,20 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha } ngOnChanges() { - this.dataSource.data = this.versions; console.log(this.dataSource.data); } ngOnInit() { + this.dataSource = new MatTableDataSource(); + this.dataSource.sort = this.sort; + this.dataSource.paginator = this.paginator; + this.workflowsService .getWorkflowVersions(this.workflowId, this.paginator.pageSize, this.paginator.pageIndex) .pipe(takeUntil(this.ngUnsubscribe)) .subscribe((versions) => { this.versions = versions; + this.dataSource.data = this.versions; console.log(versions); }); this.paginatorService.setPaginator(this.type, this.paginator.pageSize, this.paginator.pageIndex); From 911afe522a7874bc966ce8d01a08c8f574d4f364 Mon Sep 17 00:00:00 2001 From: hyunnaye Date: Mon, 30 Sep 2024 16:05:59 -0400 Subject: [PATCH 4/8] implement header for total number of versions --- src/app/workflow/versions/versions.component.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/app/workflow/versions/versions.component.ts b/src/app/workflow/versions/versions.component.ts index c9e00956e6..236d2041ba 100644 --- a/src/app/workflow/versions/versions.component.ts +++ b/src/app/workflow/versions/versions.component.ts @@ -150,9 +150,7 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha this.dataSource.sort = this.sort; } - ngOnChanges() { - console.log(this.dataSource.data); - } + ngOnChanges() {} ngOnInit() { this.dataSource = new MatTableDataSource(); @@ -160,17 +158,16 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha this.dataSource.paginator = this.paginator; this.workflowsService - .getWorkflowVersions(this.workflowId, this.paginator.pageSize, this.paginator.pageIndex) + .getWorkflowVersions(this.workflowId, this.paginator.pageSize, this.paginator.pageIndex, 'response') .pipe(takeUntil(this.ngUnsubscribe)) .subscribe((versions) => { - this.versions = versions; + this.versions = versions.body; this.dataSource.data = this.versions; - console.log(versions); + this.versionsLength = Number(versions.headers.get('X-total-count')); }); this.paginatorService.setPaginator(this.type, this.paginator.pageSize, this.paginator.pageIndex); this.extendedWorkflowQuery.extendedWorkflow$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((workflow) => { this.workflow = workflow; - this.versionsLength = this.workflow.workflowVersions.length; if (workflow) { this.defaultVersion = workflow.defaultVersion; } From f698ebcc70739524f98786d596c8dfa39e06d269 Mon Sep 17 00:00:00 2001 From: hyunnaye Date: Fri, 4 Oct 2024 16:09:50 -0400 Subject: [PATCH 5/8] bug fix --- .../workflow/versions/versions.component.ts | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/app/workflow/versions/versions.component.ts b/src/app/workflow/versions/versions.component.ts index 236d2041ba..8d5e33c58e 100644 --- a/src/app/workflow/versions/versions.component.ts +++ b/src/app/workflow/versions/versions.component.ts @@ -147,16 +147,28 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha } ngAfterViewInit(): void { - this.dataSource.sort = this.sort; + this.loadVersions(); } - ngOnChanges() {} + ngOnChanges() { + this.loadVersions(); + } ngOnInit() { this.dataSource = new MatTableDataSource(); + this.loadVersions(); + } + + loadVersions() { + this.extendedWorkflowQuery.extendedWorkflow$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((workflow) => { + this.workflow = workflow; + if (workflow) { + this.defaultVersion = workflow.defaultVersion; + } + this.publicPageSubscription(); + }); this.dataSource.sort = this.sort; this.dataSource.paginator = this.paginator; - this.workflowsService .getWorkflowVersions(this.workflowId, this.paginator.pageSize, this.paginator.pageIndex, 'response') .pipe(takeUntil(this.ngUnsubscribe)) @@ -166,15 +178,7 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha this.versionsLength = Number(versions.headers.get('X-total-count')); }); this.paginatorService.setPaginator(this.type, this.paginator.pageSize, this.paginator.pageIndex); - this.extendedWorkflowQuery.extendedWorkflow$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((workflow) => { - this.workflow = workflow; - if (workflow) { - this.defaultVersion = workflow.defaultVersion; - } - this.publicPageSubscription(); - }); } - /** * Updates the version and emits an event for the parent component * @param {WorkflowVersion} version - version to make the selected version From 07151bee72e0d7a4ea527c59a6f2d9e9f00c1b95 Mon Sep 17 00:00:00 2001 From: hyunnaye Date: Mon, 21 Oct 2024 15:24:41 -0400 Subject: [PATCH 6/8] test --- .../workflow/versions/versions.component.ts | 38 ++++++++++++------- src/app/workflow/workflow.component.html | 1 + 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/app/workflow/versions/versions.component.ts b/src/app/workflow/versions/versions.component.ts index 8d5e33c58e..c25d81cde6 100644 --- a/src/app/workflow/versions/versions.component.ts +++ b/src/app/workflow/versions/versions.component.ts @@ -80,6 +80,7 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha versions: Array; @Input() workflowId: number; @Input() verifiedVersionPlatforms: Array; + @Input() publicPage: boolean; _selectedVersion: WorkflowVersion; Dockstore = Dockstore; @Input() set selectedVersion(value: WorkflowVersion) { @@ -147,19 +148,19 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha } ngAfterViewInit(): void { - this.loadVersions(); + this.loadVersions(this.publicPage); } ngOnChanges() { - this.loadVersions(); + this.loadVersions(this.publicPage); } ngOnInit() { this.dataSource = new MatTableDataSource(); - this.loadVersions(); + this.loadVersions(this.publicPage); } - loadVersions() { + loadVersions(publicPage: boolean) { this.extendedWorkflowQuery.extendedWorkflow$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((workflow) => { this.workflow = workflow; if (workflow) { @@ -169,15 +170,26 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha }); this.dataSource.sort = this.sort; this.dataSource.paginator = this.paginator; - this.workflowsService - .getWorkflowVersions(this.workflowId, this.paginator.pageSize, this.paginator.pageIndex, 'response') - .pipe(takeUntil(this.ngUnsubscribe)) - .subscribe((versions) => { - this.versions = versions.body; - this.dataSource.data = this.versions; - this.versionsLength = Number(versions.headers.get('X-total-count')); - }); - this.paginatorService.setPaginator(this.type, this.paginator.pageSize, this.paginator.pageIndex); + if (publicPage) { + this.workflowsService + .getPublicWorkflowVersions(this.workflowId, this.paginator.pageSize, this.paginator.pageIndex, 'response') + .pipe(takeUntil(this.ngUnsubscribe)) + .subscribe((versions) => { + this.versions = versions.body; + this.dataSource.data = this.versions; + this.versionsLength = Number(versions.headers.get('X-total-count')); + }); + } else { + this.workflowsService + .getWorkflowVersions(this.workflowId, this.paginator.pageSize, this.paginator.pageIndex, 'response') + .pipe(takeUntil(this.ngUnsubscribe)) + .subscribe((versions) => { + this.versions = versions.body; + this.dataSource.data = this.versions; + this.versionsLength = Number(versions.headers.get('X-total-count')); + }); + this.paginatorService.setPaginator(this.type, this.paginator.pageSize, this.paginator.pageIndex); + } } /** * Updates the version and emits an event for the parent component diff --git a/src/app/workflow/workflow.component.html b/src/app/workflow/workflow.component.html index 561cb7ec37..972154f9b2 100644 --- a/src/app/workflow/workflow.component.html +++ b/src/app/workflow/workflow.component.html @@ -338,6 +338,7 @@

[verifiedSource]="(extendedWorkflow$ | async)?.verifiedSources" [verifiedVersionPlatforms]="versionsWithVerifiedPlatforms" [workflowId]="workflow?.id" + [publicPage]="publicPage" [selectedVersion]="selectedVersion" [canRead]="canRead" [canWrite]="canWrite" From 83f8b894061b124c5f6c2782e8ed913c0706ee74 Mon Sep 17 00:00:00 2001 From: hyunnaye Date: Tue, 22 Oct 2024 15:06:13 -0400 Subject: [PATCH 7/8] fix bug --- src/app/workflow/versions/versions.component.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/app/workflow/versions/versions.component.ts b/src/app/workflow/versions/versions.component.ts index c25d81cde6..fd9dd00a86 100644 --- a/src/app/workflow/versions/versions.component.ts +++ b/src/app/workflow/versions/versions.component.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core'; +import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; import { MatSort, MatSortModule } from '@angular/material/sort'; import { MatLegacyTableDataSource as MatTableDataSource, MatLegacyTableModule } from '@angular/material/legacy-table'; import { faCodeBranch, faTag } from '@fortawesome/free-solid-svg-icons'; @@ -74,7 +74,7 @@ import { MatLegacyPaginator as MatPaginator, MatLegacyPaginatorModule } from '@a MatLegacyPaginatorModule, ], }) -export class VersionsWorkflowComponent extends Versions implements OnInit, OnChanges, AfterViewInit { +export class VersionsWorkflowComponent extends Versions implements OnInit, AfterViewInit { faTag = faTag; faCodeBranch = faCodeBranch; versions: Array; @@ -151,13 +151,8 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha this.loadVersions(this.publicPage); } - ngOnChanges() { - this.loadVersions(this.publicPage); - } - ngOnInit() { this.dataSource = new MatTableDataSource(); - this.loadVersions(this.publicPage); } loadVersions(publicPage: boolean) { @@ -179,6 +174,7 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, OnCha this.dataSource.data = this.versions; this.versionsLength = Number(versions.headers.get('X-total-count')); }); + this.paginatorService.setPaginator(this.type, this.paginator.pageSize, this.paginator.pageIndex); } else { this.workflowsService .getWorkflowVersions(this.workflowId, this.paginator.pageSize, this.paginator.pageIndex, 'response') From 6b8faddb71889b76e6a9c59d4a46660189bb477b Mon Sep 17 00:00:00 2001 From: hyunnaye Date: Fri, 25 Oct 2024 15:57:17 -0400 Subject: [PATCH 8/8] test --- .../workflow/versions/versions.component.ts | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/app/workflow/versions/versions.component.ts b/src/app/workflow/versions/versions.component.ts index fd9dd00a86..fe8bfd3905 100644 --- a/src/app/workflow/versions/versions.component.ts +++ b/src/app/workflow/versions/versions.component.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; +import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core'; import { MatSort, MatSortModule } from '@angular/material/sort'; import { MatLegacyTableDataSource as MatTableDataSource, MatLegacyTableModule } from '@angular/material/legacy-table'; import { faCodeBranch, faTag } from '@fortawesome/free-solid-svg-icons'; @@ -74,7 +74,7 @@ import { MatLegacyPaginator as MatPaginator, MatLegacyPaginatorModule } from '@a MatLegacyPaginatorModule, ], }) -export class VersionsWorkflowComponent extends Versions implements OnInit, AfterViewInit { +export class VersionsWorkflowComponent extends Versions implements OnInit, OnChanges, AfterViewInit { faTag = faTag; faCodeBranch = faCodeBranch; versions: Array; @@ -147,15 +147,11 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, After }); } - ngAfterViewInit(): void { - this.loadVersions(this.publicPage); - } + ngAfterViewInit(): void {} - ngOnInit() { - this.dataSource = new MatTableDataSource(); - } + ngOnChanges() {} - loadVersions(publicPage: boolean) { + ngOnInit() { this.extendedWorkflowQuery.extendedWorkflow$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((workflow) => { this.workflow = workflow; if (workflow) { @@ -163,29 +159,31 @@ export class VersionsWorkflowComponent extends Versions implements OnInit, After } this.publicPageSubscription(); }); + this.dataSource = new MatTableDataSource(); this.dataSource.sort = this.sort; this.dataSource.paginator = this.paginator; + this.loadVersions(this.publicPage); + } + + loadVersions(publicPage: boolean) { if (publicPage) { this.workflowsService .getPublicWorkflowVersions(this.workflowId, this.paginator.pageSize, this.paginator.pageIndex, 'response') .pipe(takeUntil(this.ngUnsubscribe)) .subscribe((versions) => { - this.versions = versions.body; - this.dataSource.data = this.versions; + this.dataSource.data = versions.body; this.versionsLength = Number(versions.headers.get('X-total-count')); }); - this.paginatorService.setPaginator(this.type, this.paginator.pageSize, this.paginator.pageIndex); } else { this.workflowsService .getWorkflowVersions(this.workflowId, this.paginator.pageSize, this.paginator.pageIndex, 'response') .pipe(takeUntil(this.ngUnsubscribe)) .subscribe((versions) => { - this.versions = versions.body; - this.dataSource.data = this.versions; + this.dataSource.data = versions.body; this.versionsLength = Number(versions.headers.get('X-total-count')); }); - this.paginatorService.setPaginator(this.type, this.paginator.pageSize, this.paginator.pageIndex); } + this.paginatorService.setPaginator(this.type, this.paginator.pageSize, this.paginator.pageIndex); } /** * Updates the version and emits an event for the parent component