Skip to content

Commit fa2dc72

Browse files
authored
Merge pull request DSpace#1987 from mspalti/relation-submisssion-thumb
Fix for related item thumbnail images.
2 parents 701290e + b0e4dae commit fa2dc72

5 files changed

Lines changed: 23 additions & 12 deletions

File tree

src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ import { FormService } from '../../form.service';
7979
import { SubmissionService } from '../../../../submission/submission.service';
8080
import { FormBuilderService } from '../form-builder.service';
8181
import { NgxMaskModule } from 'ngx-mask';
82+
import { APP_CONFIG } from '../../../../../config/app-config.interface';
83+
import { environment } from '../../../../../environments/environment';
8284

8385
function getMockDsDynamicTypeBindRelationService(): DsDynamicTypeBindRelationService {
8486
return jasmine.createSpyObj('DsDynamicTypeBindRelationService', {
@@ -230,7 +232,8 @@ describe('DsDynamicFormControlContainerComponent test suite', () => {
230232
findById: () => observableOf(createSuccessfulRemoteDataObject(testWSI))
231233
}
232234
},
233-
{ provide: NgZone, useValue: new NgZone({}) }
235+
{ provide: NgZone, useValue: new NgZone({}) },
236+
{ provide: APP_CONFIG, useValue: environment }
234237
],
235238
schemas: [CUSTOM_ELEMENTS_SCHEMA]
236239
}).compileComponents().then(() => {

src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
Component,
55
ComponentFactoryResolver,
66
ContentChildren,
7-
EventEmitter,
7+
EventEmitter, Inject,
88
Input,
99
NgZone,
1010
OnChanges,
@@ -118,6 +118,8 @@ import { RelationshipOptions } from '../models/relationship-options.model';
118118
import { FormBuilderService } from '../form-builder.service';
119119
import { DYNAMIC_FORM_CONTROL_TYPE_RELATION_GROUP } from './ds-dynamic-form-constants';
120120
import { FormFieldMetadataValueObject } from '../models/form-field-metadata-value.model';
121+
import { APP_CONFIG, AppConfig } from '../../../../../config/app-config.interface';
122+
import { itemLinksToFollow } from '../../../utils/relation-query.utils';
121123

122124
export function dsDynamicFormControlMapFn(model: DynamicFormControlModel): Type<DynamicFormControl> | null {
123125
switch (model.type) {
@@ -231,6 +233,11 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo
231233

232234
private showErrorMessagesPreviousStage: boolean;
233235

236+
/**
237+
* Determines whether to request embedded thumbnail.
238+
*/
239+
fetchThumbnail: boolean;
240+
234241
get componentType(): Type<DynamicFormControl> | null {
235242
return dsDynamicFormControlMapFn(this.model);
236243
}
@@ -253,9 +260,11 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo
253260
private ref: ChangeDetectorRef,
254261
private formService: FormService,
255262
private formBuilderService: FormBuilderService,
256-
private submissionService: SubmissionService
263+
private submissionService: SubmissionService,
264+
@Inject(APP_CONFIG) protected appConfig: AppConfig,
257265
) {
258266
super(ref, componentFactoryResolver, layoutService, validationService, dynamicFormComponentService, relationService);
267+
this.fetchThumbnail = this.appConfig.browseBy.showThumbnails;
259268
}
260269

261270
/**
@@ -285,7 +294,6 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo
285294
followLink('rightItem'),
286295
followLink('relationshipType')
287296
);
288-
289297
relationshipsRD$.pipe(
290298
getFirstSucceededRemoteDataPayload(),
291299
getPaginatedListPayload()
@@ -317,8 +325,10 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo
317325
}
318326

319327
if (hasValue(this.value) && this.value.isVirtual) {
320-
const relationship$ = this.relationshipService.findById(this.value.virtualValue, true, true, followLink('leftItem'), followLink('rightItem'), followLink('relationshipType'))
321-
.pipe(
328+
const relationship$ = this.relationshipService.findById(this.value.virtualValue,
329+
true,
330+
true,
331+
... itemLinksToFollow(this.fetchThumbnail)).pipe(
322332
getAllSucceededRemoteData(),
323333
getRemoteDataPayload());
324334
this.relationshipValue$ = observableCombineLatest([this.item$.pipe(take(1)), relationship$]).pipe(
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
span.text-contents{
2-
padding: var(--bs-btn-padding-y) 0;
3-
}
1+

src/app/shared/form/builder/ds-dynamic-form-ui/existing-relation-list-element/existing-relation-list-element.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<div class="d-flex">
2-
<span class="mr-auto text-contents">
2+
<div class="flex-grow-1 mr-auto">
33
<ng-container *ngIf="!(relatedItem$ | async)">
44
<ds-themed-loading [showMessage]="false"></ds-themed-loading>
55
</ng-container>
66
<ng-container *ngIf="(relatedItem$ | async)">
77
<ds-listable-object-component-loader [showLabel]="false" [viewMode]="viewType" [object]="(relatedItem$ | async)"></ds-listable-object-component-loader>
88
</ng-container>
9-
</span>
9+
</div>
1010
<button type="button" class="btn btn-secondary"
1111
(click)="removeSelection()">
1212
<i class="fas fa-trash" aria-hidden="true"></i>

src/app/shared/form/builder/ds-dynamic-form-ui/existing-relation-list-element/existing-relation-list-element.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ describe('ExistingRelationListElementComponent', () => {
6969
providers: [
7070
{ provide: SelectableListService, useValue: selectionService },
7171
{ provide: Store, useValue: store },
72-
{ provide: SubmissionService, useClass: SubmissionServiceStub },
72+
{ provide: SubmissionService, useClass: SubmissionServiceStub }
7373
],
7474
schemas: [NO_ERRORS_SCHEMA]
7575
})

0 commit comments

Comments
 (0)