diff --git a/alfa-client/libs/collaboration-shared/src/lib/collaboration.linkrel.ts b/alfa-client/libs/collaboration-shared/src/lib/collaboration.linkrel.ts index 967a0a0a1990749d02d9153c1e2d1a4d88869936..7dff5e47fc7ae1798c826bbaa6a1bd009f261d13 100644 --- a/alfa-client/libs/collaboration-shared/src/lib/collaboration.linkrel.ts +++ b/alfa-client/libs/collaboration-shared/src/lib/collaboration.linkrel.ts @@ -1,4 +1,6 @@ export enum CollaborationListLinkRel { COLLABORATION_LIST = 'collaborationList', + //todo: temporary wrong link -> change if backend works + ORGANISATIONS_EINHEIT_COLLABORATION_LIST = 'organisationsEinheitCollaborationList', CREATE_COLLABORATION_REQUEST = 'createCollaborationRequest', } diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.html b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.html index 3f896b077d98b171d49206be45d866764fc3923f..3dfe3d0fe4954f3e5f765d388b994c5c2086aff7 100644 --- a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.html +++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-in-vorgang-container.component.html @@ -1,3 +1,7 @@ +<alfa-collaboration-list + [collaborationStateListResource]="collaborationStateListResource$ | async" +></alfa-collaboration-list> + <alfa-collaboration-in-vorgang [vorgang]="vorgang" [collaborationStateListResource]="collaborationStateListResource$ | async" diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list-item/collaboration-list-item.component.html b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list-item/collaboration-list-item.component.html new file mode 100644 index 0000000000000000000000000000000000000000..a12180d6aefe17b2200e3350469e27f70ebb0769 --- /dev/null +++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list-item/collaboration-list-item.component.html @@ -0,0 +1 @@ +<p>collaboration-list-item works!</p> diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list-item/collaboration-list-item.component.scss b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list-item/collaboration-list-item.component.scss new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list-item/collaboration-list-item.component.spec.ts b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list-item/collaboration-list-item.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..3fd60ce161ec58435bbc9e5b932d6d9e28bf6ecf --- /dev/null +++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list-item/collaboration-list-item.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { CollaborationListItemComponent } from './collaboration-list-item.component'; + +describe('CollaborationListItemComponent', () => { + let component: CollaborationListItemComponent; + let fixture: ComponentFixture<CollaborationListItemComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [CollaborationListItemComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(CollaborationListItemComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list-item/collaboration-list-item.component.ts b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list-item/collaboration-list-item.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..1634b01e4b3f0cbcb6bebd8007d751747867c484 --- /dev/null +++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list-item/collaboration-list-item.component.ts @@ -0,0 +1,18 @@ +import { CollaborationResource } from '@alfa-client/collaboration-shared'; +import { CommonModule } from '@angular/common'; +import { Component, Input } from '@angular/core'; + +@Component({ + selector: 'alfa-collaboration-list-item', + standalone: true, + imports: [CommonModule], + templateUrl: './collaboration-list-item.component.html', + styleUrl: './collaboration-list-item.component.scss', +}) +export class CollaborationListItemComponent { + @Input() public collaboration: CollaborationResource; + + ngOnChanges(): void { + console.log(this.collaboration); + } +} diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list.component.html b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list.component.html new file mode 100644 index 0000000000000000000000000000000000000000..51d71353b949b479e53041f8fe0150e8ef0eeac3 --- /dev/null +++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list.component.html @@ -0,0 +1,5 @@ +<alfa-collaboration-list-item + *ngFor="let collaboration of collaborations" + [collaboration]="collaboration" +> +</alfa-collaboration-list-item> \ No newline at end of file diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list.component.scss b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list.component.scss new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list.component.spec.ts b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..ea87bb45b50a9be36a1a67048f31ee0816308d80 --- /dev/null +++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list.component.spec.ts @@ -0,0 +1,49 @@ +import { CollaborationListLinkRel, CollaborationListResource } from '@alfa-client/collaboration-shared'; +import { createEmptyStateResource, createStateResource } from '@alfa-client/tech-shared'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { MockComponent } from 'ng-mocks'; +import { createCollaborationListResource } from '../../../../../collaboration-shared/test/collaboration'; +import { CollaborationListItemComponent } from './collaboration-list-item/collaboration-list-item.component'; +import { CollaborationListComponent } from './collaboration-list.component'; + +describe('CollaborationListComponent', () => { + let component: CollaborationListComponent; + let fixture: ComponentFixture<CollaborationListComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [CollaborationListComponent, MockComponent(CollaborationListItemComponent)], + }).compileComponents(); + + fixture = TestBed.createComponent(CollaborationListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('getCollaborations', () => { + it('should return empty array if state resource is null', () => { + component.collaborationStateListResource = null; + + expect(component.getCollaborations()).toEqual([]); + }); + + it('should return empty array if resource is null', () => { + component.collaborationStateListResource = createEmptyStateResource(); + + expect(component.getCollaborations()).toEqual([]); + }); + + it('should return embedded resource', () => { + const collaborationListResource: CollaborationListResource = createCollaborationListResource(); + component.collaborationStateListResource = createStateResource(collaborationListResource); + + expect(component.getCollaborations()).toEqual( + collaborationListResource._embedded[CollaborationListLinkRel.COLLABORATION_LIST], + ); + }); + }); +}); diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list.component.ts b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..1eefd3ce78a23e199370b94c1b2f18086c7dd65d --- /dev/null +++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list/collaboration-list.component.ts @@ -0,0 +1,30 @@ +import { CollaborationListLinkRel, CollaborationListResource, CollaborationResource } from '@alfa-client/collaboration-shared'; +import { getEmbeddedResources, StateResource, TechSharedModule } from '@alfa-client/tech-shared'; +import { CommonModule } from '@angular/common'; +import { Component, Input, OnChanges } from '@angular/core'; +import { CollaborationListItemComponent } from './collaboration-list-item/collaboration-list-item.component'; + +@Component({ + selector: 'alfa-collaboration-list', + standalone: true, + imports: [CommonModule, TechSharedModule, CollaborationListItemComponent], + templateUrl: './collaboration-list.component.html', + styleUrl: './collaboration-list.component.scss', +}) +export class CollaborationListComponent implements OnChanges { + @Input() public collaborationStateListResource: StateResource<CollaborationListResource>; + + public collaborations: CollaborationResource[]; + + ngOnChanges(): void { + this.collaborations = this.getCollaborations(); + console.log(this.collaborationStateListResource); + } + + getCollaborations(): CollaborationResource[] { + return getEmbeddedResources( + this.collaborationStateListResource, + CollaborationListLinkRel.ORGANISATIONS_EINHEIT_COLLABORATION_LIST, + ); + } +} diff --git a/alfa-client/libs/collaboration/src/lib/collaboration.module.ts b/alfa-client/libs/collaboration/src/lib/collaboration.module.ts index d9d38c700855608e944c4960c591c7b6f49e9b56..1fa49457efd8460b1a9ac9ca3b088e3250b14e6a 100644 --- a/alfa-client/libs/collaboration/src/lib/collaboration.module.ts +++ b/alfa-client/libs/collaboration/src/lib/collaboration.module.ts @@ -21,6 +21,7 @@ import { CollaborationInVorgangComponent } from './collaboration-in-vorgang-cont import { ExterneFachstelleContainerComponent } from './collaboration-in-vorgang-container/collaboration-in-vorgang/externe-fachstelle-container/externe-fachstelle-container.component'; import { OrganisationsEinheitContainerComponent } from './collaboration-in-vorgang-container/collaboration-in-vorgang/organisations-einheit-container/organisations-einheit-container.component'; import { CollaborationRequestFormComponent } from './collaboration-in-vorgang-container/collaboration-request-form/collaboration-request-form.component'; +import { CollaborationListComponent } from './collaboration-in-vorgang-container/collaboration-list/collaboration-list.component'; @NgModule({ imports: [ @@ -41,6 +42,7 @@ import { CollaborationRequestFormComponent } from './collaboration-in-vorgang-co OfficeIconComponent, ExternalUnitIconComponent, PublicAdministrationIconComponent, + CollaborationListComponent, ], declarations: [ CollaborationInVorgangContainerComponent, diff --git a/alfa-client/tsconfig.base.json b/alfa-client/tsconfig.base.json index 5fa256e28ccf0dd8ac93135af48e7e0180ed359d..63b6a42cd7681cb3f77bb8a38a1eea56cc5a527b 100644 --- a/alfa-client/tsconfig.base.json +++ b/alfa-client/tsconfig.base.json @@ -26,6 +26,7 @@ "@alfa-client/collaboration": ["libs/collaboration/src/index.ts"], "@alfa-client/collaboration-shared": ["libs/collaboration-shared/src/index.ts"], "@alfa-client/command-shared": ["libs/command-shared/src/index.ts"], + "@alfa-client/common": ["libs/common/src/index.ts"], "@alfa-client/environment-shared": ["libs/environment-shared/src/index.ts"], "@alfa-client/forwarding": ["libs/forwarding/src/index.ts"], "@alfa-client/forwarding-shared": ["libs/forwarding-shared/src/index.ts"], @@ -61,8 +62,7 @@ "@alfa-client/zustaendige-stelle-shared": ["libs/zustaendige-stelle-shared/src/index.ts"], "@ods/component": ["libs/design-component/src/index.ts"], "@ods/system": ["libs/design-system/src/index.ts"], - "authentication": ["libs/authentication/src/index.ts"], - "@alfa-client/common": ["libs/common/src/index.ts"] + "authentication": ["libs/authentication/src/index.ts"] } }, "exclude": ["node_modules", "tmp"]