diff --git a/src/app/item-page/clarin-files-section/clarin-files-section.component.html b/src/app/item-page/clarin-files-section/clarin-files-section.component.html index e801c0bc867..978b72717c1 100644 --- a/src/app/item-page/clarin-files-section/clarin-files-section.component.html +++ b/src/app/item-page/clarin-files-section/clarin-files-section.component.html @@ -14,10 +14,14 @@
{{ command }}
- (downloadZipMinFileSize | async) &&
+ (totalFileSizes | async) < (downloadZipMaxFileSize | async) &&
+ (listOfFiles | async).length >= (downloadZipMinFileCount | async)"
+ class="btn btn-download" id="download-all-button" (click)="downloadFiles()"
style="visibility: visible">
- {{'item.page.download.button.all.files.zip' | translate}} ({{ totalFileSizes | dsFileSize }})
+ {{'item.page.download.button.all.files.zip' | translate}} ({{ (totalFileSizes | async) | dsFileSize }})
diff --git a/src/app/item-page/clarin-files-section/clarin-files-section.component.spec.ts b/src/app/item-page/clarin-files-section/clarin-files-section.component.spec.ts
index 10bf2998ac2..f5e795d4d0e 100644
--- a/src/app/item-page/clarin-files-section/clarin-files-section.component.spec.ts
+++ b/src/app/item-page/clarin-files-section/clarin-files-section.component.spec.ts
@@ -9,7 +9,11 @@ import { TranslateModule } from '@ngx-translate/core';
import { MetadataBitstream } from '../../core/metadata/metadata-bitstream.model';
import { ResourceType } from '../../core/shared/resource-type';
import { HALLink } from '../../core/shared/hal-link.model';
-import { BehaviorSubject , of} from 'rxjs';
+import { BehaviorSubject , of } from 'rxjs';
+import { ConfigurationDataService } from '../../core/data/configuration-data.service';
+import { Item } from '../../core/shared/item.model';
+import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
+import { createPaginatedList } from '../../shared/testing/utils.test';
describe('ClarinFilesSectionComponent', () => {
let component: ClarinFilesSectionComponent;
@@ -38,6 +42,22 @@ describe('ClarinFilesSectionComponent', () => {
const metadataBitstreams: MetadataBitstream[] = [metadatabitstream];
const bitstreamStream = new BehaviorSubject(metadataBitstreams);
+ const mockItem: Item = Object.assign(new Item(), {
+ bundles: createSuccessfulRemoteDataObject$(createPaginatedList([])),
+ metadata: {
+ 'local.files.size': [
+ {
+ language: 'en_US',
+ value: '123'
+ }
+ ]
+ }
+ });
+
+ const configurationServiceSpy = jasmine.createSpyObj('configurationService', {
+ findByPropertyName: of('123456'),
+ });
+
beforeEach(async () => {
mockRegistryService = jasmine.createSpyObj('RegistryService', {
'getMetadataBitstream': of(bitstreamStream)
@@ -53,13 +73,15 @@ describe('ClarinFilesSectionComponent', () => {
providers: [
{ provide: RegistryService, useValue: mockRegistryService },
{ provide: Router, useValue: new RouterMock() },
- { provide: HALEndpointService, useValue: halService }
+ { provide: HALEndpointService, useValue: halService },
+ { provide: ConfigurationDataService, useValue: configurationServiceSpy },
],
})
.compileComponents();
fixture = TestBed.createComponent(ClarinFilesSectionComponent);
component = fixture.componentInstance;
+ component.item = mockItem;
fixture.detectChanges();
});
diff --git a/src/app/item-page/clarin-files-section/clarin-files-section.component.ts b/src/app/item-page/clarin-files-section/clarin-files-section.component.ts
index 084c9c66955..029961b2d13 100644
--- a/src/app/item-page/clarin-files-section/clarin-files-section.component.ts
+++ b/src/app/item-page/clarin-files-section/clarin-files-section.component.ts
@@ -1,11 +1,13 @@
import { Component, Input, OnInit } from '@angular/core';
import { Item } from '../../core/shared/item.model';
-import { getAllSucceededRemoteListPayload } from '../../core/shared/operators';
+import { getAllSucceededRemoteListPayload, getFirstSucceededRemoteDataPayload } from '../../core/shared/operators';
import { getItemPageRoute } from '../item-page-routing-paths';
import { MetadataBitstream } from '../../core/metadata/metadata-bitstream.model';
import { RegistryService } from '../../core/registry/registry.service';
import { Router } from '@angular/router';
import { HALEndpointService } from '../../core/shared/hal-endpoint.service';
+import { ConfigurationDataService } from '../../core/data/configuration-data.service';
+import { BehaviorSubject } from 'rxjs';
@Component({
selector: 'ds-clarin-files-section',
@@ -44,17 +46,36 @@ export class ClarinFilesSectionComponent implements OnInit {
/**
* total size of list of files uploaded by users to this item
*/
- totalFileSizes: number;
+ totalFileSizes: BehaviorSubject