Skip to content
Snippets Groups Projects
Commit dd466328 authored by Alexander Reifschneider's avatar Alexander Reifschneider
Browse files

Revert "OZG-5977 hide file container on empty content"

This reverts commit b8499321.
parent 210e793b
No related branches found
No related tags found
1 merge request!85OZG-5977 ui styling
......@@ -23,8 +23,9 @@
unter der Lizenz sind dem Lizenztext zu entnehmen.
-->
@if (binaryFileList) {
<ods-attachment-wrapper>
<alfa-binary-file-list [binaryFileList]="binaryFileList" [listOrientation]="listOrientation" />
<alfa-binary-file-list
[binaryFileListStateResource]="binaryFileListStateResource$ | async"
[listOrientation]="listOrientation"
></alfa-binary-file-list>
</ods-attachment-wrapper>
}
......@@ -42,11 +42,9 @@ describe('BinaryFileListContainerComponent', () => {
const binaryFileService: Mock<BinaryFileService> = mock(BinaryFileService);
const fileList: Resource[] = [];
const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource({
...createBinaryFileResource(),
_embedded: { ozgFileList: fileList },
});
const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(
createBinaryFileResource(),
);
const resource: Resource = createDummyResource();
const linkRel: LinkRelationName = DummyLinkRel.DUMMY;
......@@ -83,31 +81,14 @@ describe('BinaryFileListContainerComponent', () => {
expect(binaryFileService.getFiles).toHaveBeenCalledWith(resource, linkRel);
});
it('should NOT set binaryFileList', () => {
component.binaryFileList = null;
binaryFileService.getFiles.mockReturnValue(of(createStateResource(null)));
component.ngOnInit();
expect(component.binaryFileList).toBe(null);
});
it('should set binaryFileList', () => {
component.ngOnInit();
expect(component.binaryFileList).toBe(fileList);
});
});
describe('binary file list', () => {
it('should be called with binary file state resource', () => {
const binaryFileListComponent: BinaryFileListComponent = getMockComponent<BinaryFileListComponent>(
fixture,
BinaryFileListComponent,
);
const binaryFileListComponent: BinaryFileListComponent =
getMockComponent<BinaryFileListComponent>(fixture, BinaryFileListComponent);
expect(binaryFileListComponent.binaryFileList).toBe(fileList);
expect(binaryFileListComponent.binaryFileListStateResource).toBe(binaryFileStateResource);
});
});
});
......@@ -21,38 +21,27 @@
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { BinaryFile, BinaryFileListLinkRel, BinaryFileListResource, BinaryFileService } from '@alfa-client/binary-file-shared';
import { isNotNull, LinkRelationName, StateResource } from '@alfa-client/tech-shared';
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { getEmbeddedResource, Resource } from '@ngxp/rest';
import { filter, Subscription } from 'rxjs';
import { BinaryFileListResource, BinaryFileService } from '@alfa-client/binary-file-shared';
import { LinkRelationName, StateResource } from '@alfa-client/tech-shared';
import { Component, Input, OnInit } from '@angular/core';
import { Resource } from '@ngxp/rest';
import { Observable } from 'rxjs';
import { BinaryFileListOrientation } from '../directive/binary-file-list-orientation/binary-file-list-orientation.directive';
@Component({
selector: 'alfa-binary-file-list-container',
templateUrl: './binary-file-list-container.component.html',
})
export class BinaryFileListContainerComponent implements OnInit, OnDestroy {
export class BinaryFileListContainerComponent implements OnInit {
@Input() resource: Resource;
@Input() linkRel: LinkRelationName;
@Input() listOrientation: BinaryFileListOrientation = BinaryFileListOrientation.HORIZONTAL;
public binaryFileList: BinaryFile[];
public readonly binaryFileListLinkRel = BinaryFileListLinkRel;
binaryFileListSubscription: Subscription;
public binaryFileListStateResource$: Observable<StateResource<BinaryFileListResource>>;
constructor(private service: BinaryFileService) {}
ngOnInit(): void {
this.binaryFileListSubscription = this.service
.getFiles(this.resource, this.linkRel)
.pipe(filter((stateResource) => isNotNull(stateResource.resource)))
.subscribe((stateResource: StateResource<BinaryFileListResource>) => {
this.binaryFileList = getEmbeddedResource(stateResource.resource, this.binaryFileListLinkRel.FILE_LIST);
});
}
ngOnDestroy() {
this.binaryFileListSubscription.unsubscribe();
this.binaryFileListStateResource$ = this.service.getFiles(this.resource, this.linkRel);
}
}
......@@ -24,5 +24,10 @@
-->
<div [binaryFileListOrientation]="listOrientation">
<alfa-binary-file2-container *ngFor="let binaryFile of binaryFileList" [file]="binaryFile" [deletable]="false" />
<alfa-binary-file2-container
*ngFor="let binaryFile of binaryFileListStateResource.resource | toEmbeddedResources: binaryFileListLinkRel.FILE_LIST"
[file]="binaryFile"
[deletable]="false"
>
</alfa-binary-file2-container>
</div>
......@@ -21,11 +21,11 @@
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { BinaryFileResource } from '@alfa-client/binary-file-shared';
import { ToEmbeddedResourcesPipe } from '@alfa-client/tech-shared';
import { BinaryFileListResource, BinaryFileResource } from '@alfa-client/binary-file-shared';
import { createStateResource, StateResource, ToEmbeddedResourcesPipe } from '@alfa-client/tech-shared';
import { getMockComponent } from '@alfa-client/test-utils';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { createBinaryFileResource } from 'libs/binary-file-shared/test/binary-file';
import { createBinaryFileListResource, createBinaryFileResource } from 'libs/binary-file-shared/test/binary-file';
import { MockComponent, MockDirective } from 'ng-mocks';
import { BinaryFile2ContainerComponent } from '../../binary-file2-container/binary-file2-container.component';
import { BinaryFileListOrientationDirective } from '../../directive/binary-file-list-orientation/binary-file-list-orientation.directive';
......@@ -36,6 +36,9 @@ describe('BinaryFileListComponent', () => {
let fixture: ComponentFixture<BinaryFileListComponent>;
const binaryFile: BinaryFileResource = createBinaryFileResource();
const binaryFileListStateResource: StateResource<BinaryFileListResource> = createStateResource(
createBinaryFileListResource([binaryFile]),
);
beforeEach(async () => {
await TestBed.configureTestingModule({
......@@ -49,7 +52,7 @@ describe('BinaryFileListComponent', () => {
fixture = TestBed.createComponent(BinaryFileListComponent);
component = fixture.componentInstance;
component.binaryFileList = [binaryFile];
component.binaryFileListStateResource = binaryFileListStateResource;
fixture.detectChanges();
});
......
......@@ -21,7 +21,8 @@
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { BinaryFile } from '@alfa-client/binary-file-shared';
import { BinaryFileListLinkRel, BinaryFileListResource } from '@alfa-client/binary-file-shared';
import { StateResource } from '@alfa-client/tech-shared';
import { Component, Input } from '@angular/core';
import { BinaryFileListOrientation } from '../../directive/binary-file-list-orientation/binary-file-list-orientation.directive';
......@@ -30,6 +31,8 @@ import { BinaryFileListOrientation } from '../../directive/binary-file-list-orie
templateUrl: './binary-file-list.component.html',
})
export class BinaryFileListComponent {
@Input() public binaryFileList: BinaryFile[];
@Input() public binaryFileListStateResource: StateResource<BinaryFileListResource>;
@Input() listOrientation: BinaryFileListOrientation = BinaryFileListOrientation.HORIZONTAL;
public readonly binaryFileListLinkRel = BinaryFileListLinkRel;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment