Multiple updates.

This commit is contained in:
Michael Spalti
2022-09-13 14:26:37 -07:00
parent db79d46a76
commit 78358a4067
53 changed files with 116 additions and 109 deletions

View File

@@ -169,7 +169,7 @@ browseBy:
# The absolute lowest year to display in the dropdown (only used when no lowest date can be found for all items) # The absolute lowest year to display in the dropdown (only used when no lowest date can be found for all items)
defaultLowerLimit: 1900 defaultLowerLimit: 1900
# If true, thumbnail images for items will be added to BOTH search and browse result lists. # If true, thumbnail images for items will be added to BOTH search and browse result lists.
showItemThumbnails: true showThumbnails: true
# Item Config # Item Config
item: item:

View File

@@ -18,11 +18,10 @@ import { BrowseEntrySearchOptions } from '../../core/browse/browse-entry-search-
import { toRemoteData } from '../browse-by-metadata-page/browse-by-metadata-page.component.spec'; import { toRemoteData } from '../browse-by-metadata-page/browse-by-metadata-page.component.spec';
import { VarDirective } from '../../shared/utils/var.directive'; import { VarDirective } from '../../shared/utils/var.directive';
import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils'; import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model';
import { PaginationService } from '../../core/pagination/pagination.service'; import { PaginationService } from '../../core/pagination/pagination.service';
import { PaginationServiceStub } from '../../shared/testing/pagination-service.stub'; import { PaginationServiceStub } from '../../shared/testing/pagination-service.stub';
import { FindListOptions } from '../../core/data/find-list-options.model'; import { APP_CONFIG } from '../../../config/app-config.interface';
import { environment } from '../../../environments/environment';
describe('BrowseByDatePageComponent', () => { describe('BrowseByDatePageComponent', () => {
let comp: BrowseByDatePageComponent; let comp: BrowseByDatePageComponent;
@@ -83,7 +82,8 @@ describe('BrowseByDatePageComponent', () => {
{ provide: DSpaceObjectDataService, useValue: mockDsoService }, { provide: DSpaceObjectDataService, useValue: mockDsoService },
{ provide: Router, useValue: new RouterMock() }, { provide: Router, useValue: new RouterMock() },
{ provide: PaginationService, useValue: paginationService }, { provide: PaginationService, useValue: paginationService },
{ provide: ChangeDetectorRef, useValue: mockCdRef } { provide: ChangeDetectorRef, useValue: mockCdRef },
{ provide: APP_CONFIG, useValue: environment }
], ],
schemas: [NO_ERRORS_SCHEMA] schemas: [NO_ERRORS_SCHEMA]
}).compileComponents(); }).compileComponents();

View File

@@ -1,4 +1,4 @@
import { ChangeDetectorRef, Component } from '@angular/core'; import { ChangeDetectorRef, Component, Inject } from '@angular/core';
import { import {
BrowseByMetadataPageComponent, BrowseByMetadataPageComponent,
browseParamsToOptions browseParamsToOptions
@@ -19,6 +19,7 @@ import { map } from 'rxjs/operators';
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model'; import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model'; import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model';
import { isValidDate } from '../../shared/date.util'; import { isValidDate } from '../../shared/date.util';
import { APP_CONFIG, AppConfig } from '../../../config/app-config.interface';
@Component({ @Component({
selector: 'ds-browse-by-date-page', selector: 'ds-browse-by-date-page',
@@ -43,15 +44,16 @@ export class BrowseByDatePageComponent extends BrowseByMetadataPageComponent {
protected dsoService: DSpaceObjectDataService, protected dsoService: DSpaceObjectDataService,
protected router: Router, protected router: Router,
protected paginationService: PaginationService, protected paginationService: PaginationService,
protected cdRef: ChangeDetectorRef) { protected cdRef: ChangeDetectorRef,
super(route, browseService, dsoService, paginationService, router); @Inject(APP_CONFIG) protected appConfig: AppConfig) {
super(route, browseService, dsoService, paginationService, router, appConfig);
} }
ngOnInit(): void { ngOnInit(): void {
const sortConfig = new SortOptions('default', SortDirection.ASC); const sortConfig = new SortOptions('default', SortDirection.ASC);
this.startsWithType = StartsWithType.date; this.startsWithType = StartsWithType.date;
this.updatePage(new BrowseEntrySearchOptions(this.defaultBrowseId, this.paginationConfig, sortConfig, null, this.updatePage(new BrowseEntrySearchOptions(this.defaultBrowseId, this.paginationConfig, sortConfig, null,
null, this.embedThumbnail)); null));
this.currentPagination$ = this.paginationService.getCurrentPagination(this.paginationConfig.id, this.paginationConfig); this.currentPagination$ = this.paginationService.getCurrentPagination(this.paginationConfig.id, this.paginationConfig);
this.currentSort$ = this.paginationService.getCurrentSort(this.paginationConfig.id, sortConfig); this.currentSort$ = this.paginationService.getCurrentSort(this.paginationConfig.id, sortConfig);
this.subs.push( this.subs.push(

View File

@@ -14,7 +14,7 @@ import { RemoteData } from '../../core/data/remote-data';
import { buildPaginatedList, PaginatedList } from '../../core/data/paginated-list.model'; import { buildPaginatedList, PaginatedList } from '../../core/data/paginated-list.model';
import { PageInfo } from '../../core/shared/page-info.model'; import { PageInfo } from '../../core/shared/page-info.model';
import { BrowseEntrySearchOptions } from '../../core/browse/browse-entry-search-options.model'; import { BrowseEntrySearchOptions } from '../../core/browse/browse-entry-search-options.model';
import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model'; import { SortDirection } from '../../core/cache/models/sort-options.model';
import { Item } from '../../core/shared/item.model'; import { Item } from '../../core/shared/item.model';
import { DSpaceObjectDataService } from '../../core/data/dspace-object-data.service'; import { DSpaceObjectDataService } from '../../core/data/dspace-object-data.service';
import { Community } from '../../core/shared/community.model'; import { Community } from '../../core/shared/community.model';
@@ -26,6 +26,7 @@ import { PaginationService } from '../../core/pagination/pagination.service';
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model'; import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
import { PaginationServiceStub } from '../../shared/testing/pagination-service.stub'; import { PaginationServiceStub } from '../../shared/testing/pagination-service.stub';
import { environment } from '../../../environments/environment'; import { environment } from '../../../environments/environment';
import { APP_CONFIG } from '../../../config/app-config.interface';
describe('BrowseByMetadataPageComponent', () => { describe('BrowseByMetadataPageComponent', () => {
let comp: BrowseByMetadataPageComponent; let comp: BrowseByMetadataPageComponent;
@@ -98,14 +99,15 @@ describe('BrowseByMetadataPageComponent', () => {
{ provide: BrowseService, useValue: mockBrowseService }, { provide: BrowseService, useValue: mockBrowseService },
{ provide: DSpaceObjectDataService, useValue: mockDsoService }, { provide: DSpaceObjectDataService, useValue: mockDsoService },
{ provide: PaginationService, useValue: paginationService }, { provide: PaginationService, useValue: paginationService },
{ provide: Router, useValue: new RouterMock() } { provide: Router, useValue: new RouterMock() },
{ provide: APP_CONFIG, useValue: environment }
], ],
schemas: [NO_ERRORS_SCHEMA] schemas: [NO_ERRORS_SCHEMA]
}).compileComponents(); }).compileComponents();
})); }));
beforeEach(() => { beforeEach(() => {
environment.browseBy.showItemThumbnails = true; environment.browseBy.showThumbnails = true;
fixture = TestBed.createComponent(BrowseByMetadataPageComponent); fixture = TestBed.createComponent(BrowseByMetadataPageComponent);
comp = fixture.componentInstance; comp = fixture.componentInstance;
fixture.detectChanges(); fixture.detectChanges();

View File

@@ -1,5 +1,5 @@
import { combineLatest as observableCombineLatest, Observable, Subscription } from 'rxjs'; import { combineLatest as observableCombineLatest, Observable, Subscription } from 'rxjs';
import { Component, OnInit } from '@angular/core'; import { Component, Inject, OnInit } from '@angular/core';
import { RemoteData } from '../../core/data/remote-data'; import { RemoteData } from '../../core/data/remote-data';
import { PaginatedList } from '../../core/data/paginated-list.model'; import { PaginatedList } from '../../core/data/paginated-list.model';
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model'; import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
@@ -17,8 +17,7 @@ import { StartsWithType } from '../../shared/starts-with/starts-with-decorator';
import { BrowseByDataType, rendersBrowseBy } from '../browse-by-switcher/browse-by-decorator'; import { BrowseByDataType, rendersBrowseBy } from '../browse-by-switcher/browse-by-decorator';
import { PaginationService } from '../../core/pagination/pagination.service'; import { PaginationService } from '../../core/pagination/pagination.service';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { environment } from '../../../environments/environment'; import { APP_CONFIG, AppConfig } from '../../../config/app-config.interface';
export const BBM_PAGINATION_ID = 'bbm'; export const BBM_PAGINATION_ID = 'bbm';
@@ -122,8 +121,9 @@ export class BrowseByMetadataPageComponent implements OnInit {
protected browseService: BrowseService, protected browseService: BrowseService,
protected dsoService: DSpaceObjectDataService, protected dsoService: DSpaceObjectDataService,
protected paginationService: PaginationService, protected paginationService: PaginationService,
protected router: Router) { protected router: Router,
this.embedThumbnail = environment.browseBy.showItemThumbnails; @Inject(APP_CONFIG) protected appConfig: AppConfig) {
this.embedThumbnail = this.appConfig.browseBy.showThumbnails;
} }
ngOnInit(): void { ngOnInit(): void {
@@ -172,6 +172,7 @@ export class BrowseByMetadataPageComponent implements OnInit {
* scope: string } * scope: string }
*/ */
updatePage(searchOptions: BrowseEntrySearchOptions) { updatePage(searchOptions: BrowseEntrySearchOptions) {
searchOptions.embedThumbnail = this.embedThumbnail;
this.browseEntries$ = this.browseService.getBrowseEntriesFor(searchOptions); this.browseEntries$ = this.browseService.getBrowseEntriesFor(searchOptions);
this.items$ = undefined; this.items$ = undefined;
} }

View File

@@ -18,11 +18,10 @@ import { BrowseService } from '../../core/browse/browse.service';
import { RouterMock } from '../../shared/mocks/router.mock'; import { RouterMock } from '../../shared/mocks/router.mock';
import { VarDirective } from '../../shared/utils/var.directive'; import { VarDirective } from '../../shared/utils/var.directive';
import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils'; import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model';
import { PaginationService } from '../../core/pagination/pagination.service'; import { PaginationService } from '../../core/pagination/pagination.service';
import { PaginationServiceStub } from '../../shared/testing/pagination-service.stub'; import { PaginationServiceStub } from '../../shared/testing/pagination-service.stub';
import { FindListOptions } from '../../core/data/find-list-options.model'; import { APP_CONFIG } from '../../../config/app-config.interface';
import { environment } from '../../../environments/environment';
describe('BrowseByTitlePageComponent', () => { describe('BrowseByTitlePageComponent', () => {
let comp: BrowseByTitlePageComponent; let comp: BrowseByTitlePageComponent;
@@ -77,7 +76,8 @@ describe('BrowseByTitlePageComponent', () => {
{ provide: BrowseService, useValue: mockBrowseService }, { provide: BrowseService, useValue: mockBrowseService },
{ provide: DSpaceObjectDataService, useValue: mockDsoService }, { provide: DSpaceObjectDataService, useValue: mockDsoService },
{ provide: PaginationService, useValue: paginationService }, { provide: PaginationService, useValue: paginationService },
{ provide: Router, useValue: new RouterMock() } { provide: Router, useValue: new RouterMock() },
{ provide: APP_CONFIG, useValue: environment }
], ],
schemas: [NO_ERRORS_SCHEMA] schemas: [NO_ERRORS_SCHEMA]
}).compileComponents(); }).compileComponents();

View File

@@ -1,5 +1,5 @@
import { combineLatest as observableCombineLatest } from 'rxjs'; import { combineLatest as observableCombineLatest } from 'rxjs';
import { Component } from '@angular/core'; import { Component, Inject } from '@angular/core';
import { ActivatedRoute, Params, Router } from '@angular/router'; import { ActivatedRoute, Params, Router } from '@angular/router';
import { hasValue } from '../../shared/empty.util'; import { hasValue } from '../../shared/empty.util';
import { import {
@@ -14,6 +14,8 @@ import { BrowseByDataType, rendersBrowseBy } from '../browse-by-switcher/browse-
import { PaginationService } from '../../core/pagination/pagination.service'; import { PaginationService } from '../../core/pagination/pagination.service';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model'; import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
import { APP_CONFIG, AppConfig } from '../../../config/app-config.interface';
import { environment } from '../../../environments/environment';
@Component({ @Component({
selector: 'ds-browse-by-title-page', selector: 'ds-browse-by-title-page',
@@ -30,14 +32,15 @@ export class BrowseByTitlePageComponent extends BrowseByMetadataPageComponent {
protected browseService: BrowseService, protected browseService: BrowseService,
protected dsoService: DSpaceObjectDataService, protected dsoService: DSpaceObjectDataService,
protected paginationService: PaginationService, protected paginationService: PaginationService,
protected router: Router) { protected router: Router,
super(route, browseService, dsoService, paginationService, router); @Inject(APP_CONFIG) protected appConfig: AppConfig) {
super(route, browseService, dsoService, paginationService, router, appConfig);
} }
ngOnInit(): void { ngOnInit(): void {
const sortConfig = new SortOptions('dc.title', SortDirection.ASC); const sortConfig = new SortOptions('dc.title', SortDirection.ASC);
this.updatePage(new BrowseEntrySearchOptions(this.defaultBrowseId, this.paginationConfig, sortConfig, null, this.updatePage(new BrowseEntrySearchOptions(this.defaultBrowseId, this.paginationConfig, sortConfig, null,
null, this.embedThumbnail)); null));
this.currentPagination$ = this.paginationService.getCurrentPagination(this.paginationConfig.id, this.paginationConfig); this.currentPagination$ = this.paginationService.getCurrentPagination(this.paginationConfig.id, this.paginationConfig);
this.currentSort$ = this.paginationService.getCurrentSort(this.paginationConfig.id, sortConfig); this.currentSort$ = this.paginationService.getCurrentSort(this.paginationConfig.id, sortConfig);
this.subs.push( this.subs.push(

View File

@@ -28,7 +28,9 @@ import { AuthorizationDataService } from '../core/data/feature-authorization/aut
import { FeatureID } from '../core/data/feature-authorization/feature-id'; import { FeatureID } from '../core/data/feature-authorization/feature-id';
import { getCollectionPageRoute } from './collection-page-routing-paths'; import { getCollectionPageRoute } from './collection-page-routing-paths';
import { redirectOn4xx } from '../core/shared/authorized.operators'; import { redirectOn4xx } from '../core/shared/authorized.operators';
import { BROWSE_ITEM_LINKS_TO_FOLLOW } from '../core/browse/browse.service'; import { BROWSE_LINKS_TO_FOLLOW } from '../core/browse/browse.service';
import { DSpaceObject } from '../core/shared/dspace-object.model';
import { FollowLinkConfig } from '../shared/utils/follow-link-config.model';
@Component({ @Component({
selector: 'ds-collection-page', selector: 'ds-collection-page',
@@ -104,13 +106,13 @@ export class CollectionPageComponent implements OnInit {
getFirstSucceededRemoteData(), getFirstSucceededRemoteData(),
map((rd) => rd.payload.id), map((rd) => rd.payload.id),
switchMap((id: string) => { switchMap((id: string) => {
return this.searchService.search( return this.searchService.search<Item>(
new PaginatedSearchOptions({ new PaginatedSearchOptions({
scope: id, scope: id,
pagination: currentPagination, pagination: currentPagination,
sort: currentSort, sort: currentSort,
dsoTypes: [DSpaceObjectType.ITEM] dsoTypes: [DSpaceObjectType.ITEM]
}), null, true, true, ...BROWSE_ITEM_LINKS_TO_FOLLOW) }), null, true, true, ...BROWSE_LINKS_TO_FOLLOW)
.pipe(toDSpaceObjectListRD()) as Observable<RemoteData<PaginatedList<Item>>>; .pipe(toDSpaceObjectListRD()) as Observable<RemoteData<PaginatedList<Item>>>;
}), }),
startWith(undefined) // Make sure switching pages shows loading component startWith(undefined) // Make sure switching pages shows loading component

Binary file not shown.

View File

@@ -23,11 +23,8 @@ import { BrowseDefinitionDataService } from './browse-definition-data.service';
import { HrefOnlyDataService } from '../data/href-only-data.service'; import { HrefOnlyDataService } from '../data/href-only-data.service';
import { followLink, FollowLinkConfig } from '../../shared/utils/follow-link-config.model'; import { followLink, FollowLinkConfig } from '../../shared/utils/follow-link-config.model';
const BROWSE_ENTRY_LINKS_TO_FOLLOW: FollowLinkConfig<BrowseEntry>[] = [
followLink('thumbnail')
];
export const BROWSE_ITEM_LINKS_TO_FOLLOW: FollowLinkConfig<Item>[] = [ export const BROWSE_LINKS_TO_FOLLOW: FollowLinkConfig<BrowseEntry | Item>[] = [
followLink('thumbnail') followLink('thumbnail')
]; ];
@@ -106,7 +103,7 @@ export class BrowseService {
}) })
); );
if (options.embedThumbnail) { if (options.embedThumbnail) {
return this.hrefOnlyDataService.findAllByHref<BrowseEntry>(href$, {}, null, null, ...BROWSE_ENTRY_LINKS_TO_FOLLOW); return this.hrefOnlyDataService.findAllByHref<BrowseEntry>(href$, {}, null, null, ...BROWSE_LINKS_TO_FOLLOW);
} }
return this.hrefOnlyDataService.findAllByHref<BrowseEntry>(href$); return this.hrefOnlyDataService.findAllByHref<BrowseEntry>(href$);
} }
@@ -154,7 +151,7 @@ export class BrowseService {
}), }),
); );
if (options.embedThumbnail) { if (options.embedThumbnail) {
return this.hrefOnlyDataService.findAllByHref<Item>(href$, {}, null, null, ...BROWSE_ITEM_LINKS_TO_FOLLOW); return this.hrefOnlyDataService.findAllByHref<Item>(href$, {}, null, null, ...BROWSE_LINKS_TO_FOLLOW);
} }
return this.hrefOnlyDataService.findAllByHref<Item>(href$); return this.hrefOnlyDataService.findAllByHref<Item>(href$);
} }

View File

@@ -1,5 +1,5 @@
<div class="row"> <div class="row">
<div *ngIf="showThumbnails" class="col-md-2"> <div *ngIf="showThumbnails" class="col-3 col-md-2">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'"
rel="noopener noreferrer" rel="noopener noreferrer"
[routerLink]="[itemPageRoute]" class="lead item-list-title dont-break-out"> [routerLink]="[itemPageRoute]" class="lead item-list-title dont-break-out">
@@ -7,7 +7,7 @@
</ds-thumbnail> </ds-thumbnail>
</a> </a>
</div> </div>
<div [ngClass]="showThumbnails ? 'col-md-10' : 'col-md-12'"> <div [ngClass]="showThumbnails ? 'col-9' : 'col-md-12'">
<ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge> <ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge>
<ds-truncatable [id]="dso.id"> <ds-truncatable [id]="dso.id">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'"

View File

@@ -76,13 +76,13 @@ describe('JournalIssueSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = true; environment.browseBy.showThumbnails = true;
fixture = TestBed.createComponent(JournalIssueSearchResultListElementComponent); fixture = TestBed.createComponent(JournalIssueSearchResultListElementComponent);
journalIssueListElementComponent = fixture.componentInstance; journalIssueListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to true', () => { describe('with environment.browseBy.showThumbnails set to true', () => {
beforeEach(() => { beforeEach(() => {
journalIssueListElementComponent.object = mockItemWithMetadata; journalIssueListElementComponent.object = mockItemWithMetadata;
fixture.detectChanges(); fixture.detectChanges();
@@ -165,12 +165,12 @@ describe('JournalIssueSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = false; environment.browseBy.showThumbnails = false;
fixture = TestBed.createComponent(JournalIssueSearchResultListElementComponent); fixture = TestBed.createComponent(JournalIssueSearchResultListElementComponent);
journalIssueListElementComponent = fixture.componentInstance; journalIssueListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to false', () => { describe('with environment.browseBy.showThumbnails set to false', () => {
beforeEach(() => { beforeEach(() => {
journalIssueListElementComponent.object = mockItemWithMetadata; journalIssueListElementComponent.object = mockItemWithMetadata;

View File

@@ -21,7 +21,7 @@ export class JournalIssueSearchResultListElementComponent extends ItemSearchResu
ngOnInit(): void { ngOnInit(): void {
super.ngOnInit(); super.ngOnInit();
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
} }

View File

@@ -1,5 +1,5 @@
<div class="row"> <div class="row">
<div *ngIf="showThumbnails" class="col-md-2"> <div *ngIf="showThumbnails" class="col-3 col-md-2">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'"
rel="noopener noreferrer" rel="noopener noreferrer"
[routerLink]="[itemPageRoute]" class="lead item-list-title dont-break-out"> [routerLink]="[itemPageRoute]" class="lead item-list-title dont-break-out">
@@ -7,7 +7,7 @@
</ds-thumbnail> </ds-thumbnail>
</a> </a>
</div> </div>
<div [ngClass]="showThumbnails ? 'col-md-10' : 'col-md-12'"> <div [ngClass]="showThumbnails ? 'col-9' : 'col-md-12'">
<ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge> <ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge>
<ds-truncatable [id]="dso.id"> <ds-truncatable [id]="dso.id">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'"

View File

@@ -75,13 +75,13 @@ describe('JournalVolumeSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = true; environment.browseBy.showThumbnails = true;
fixture = TestBed.createComponent(JournalVolumeSearchResultListElementComponent); fixture = TestBed.createComponent(JournalVolumeSearchResultListElementComponent);
journalVolumeListElementComponent = fixture.componentInstance; journalVolumeListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to true', () => { describe('with environment.browseBy.showThumbnails set to true', () => {
beforeEach(() => { beforeEach(() => {
journalVolumeListElementComponent.object = mockItemWithMetadata; journalVolumeListElementComponent.object = mockItemWithMetadata;
fixture.detectChanges(); fixture.detectChanges();
@@ -163,12 +163,12 @@ describe('JournalVolumeSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = false; environment.browseBy.showThumbnails = false;
fixture = TestBed.createComponent(JournalVolumeSearchResultListElementComponent); fixture = TestBed.createComponent(JournalVolumeSearchResultListElementComponent);
journalVolumeListElementComponent = fixture.componentInstance; journalVolumeListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to false', () => { describe('with environment.browseBy.showThumbnails set to false', () => {
beforeEach(() => { beforeEach(() => {
journalVolumeListElementComponent.object = mockItemWithMetadata; journalVolumeListElementComponent.object = mockItemWithMetadata;
fixture.detectChanges(); fixture.detectChanges();

View File

@@ -21,7 +21,7 @@ export class JournalVolumeSearchResultListElementComponent extends ItemSearchRes
ngOnInit(): void { ngOnInit(): void {
super.ngOnInit(); super.ngOnInit();
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
} }

View File

@@ -1,12 +1,12 @@
<div class="row"> <div class="row">
<div *ngIf="showThumbnails" class="col-md-2"> <div *ngIf="showThumbnails" class="col-3 col-md-2">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" rel="noopener noreferrer" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" rel="noopener noreferrer"
[routerLink]="[itemPageRoute]" class="lead item-list-title dont-break-out"> [routerLink]="[itemPageRoute]" class="lead item-list-title dont-break-out">
<ds-thumbnail [thumbnail]="dso?.thumbnail | async" [limitWidth]="true"> <ds-thumbnail [thumbnail]="dso?.thumbnail | async" [limitWidth]="true">
</ds-thumbnail> </ds-thumbnail>
</a> </a>
</div> </div>
<div [ngClass]="showThumbnails ? 'col-md-10' : 'col-md-12'"> <div [ngClass]="showThumbnails ? 'col-9' : 'col-md-12'">
<ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge> <ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge>
<ds-truncatable [id]="dso.id"> <ds-truncatable [id]="dso.id">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" rel="noopener noreferrer" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" rel="noopener noreferrer"

View File

@@ -71,13 +71,13 @@ describe('JournalSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = true; environment.browseBy.showThumbnails = true;
fixture = TestBed.createComponent(JournalSearchResultListElementComponent); fixture = TestBed.createComponent(JournalSearchResultListElementComponent);
journalListElementComponent = fixture.componentInstance; journalListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to true', () => { describe('with environment.browseBy.showThumbnails set to true', () => {
beforeEach(() => { beforeEach(() => {
journalListElementComponent.object = mockItemWithMetadata; journalListElementComponent.object = mockItemWithMetadata;
fixture.detectChanges(); fixture.detectChanges();
@@ -135,12 +135,12 @@ describe('JournalSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = false; environment.browseBy.showThumbnails = false;
fixture = TestBed.createComponent(JournalSearchResultListElementComponent); fixture = TestBed.createComponent(JournalSearchResultListElementComponent);
journalListElementComponent = fixture.componentInstance; journalListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to false', () => { describe('with environment.browseBy.showThumbnails set to false', () => {
beforeEach(() => { beforeEach(() => {
journalListElementComponent.object = mockItemWithMetadata; journalListElementComponent.object = mockItemWithMetadata;

View File

@@ -21,7 +21,7 @@ export class JournalSearchResultListElementComponent extends ItemSearchResultLis
ngOnInit(): void { ngOnInit(): void {
super.ngOnInit(); super.ngOnInit();
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
} }

View File

@@ -1,5 +1,5 @@
<div class="row"> <div class="row">
<div *ngIf="showThumbnails" class="col-md-2"> <div *ngIf="showThumbnails" class="col-3 col-md-2">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'"
rel="noopener noreferrer" rel="noopener noreferrer"
[routerLink]="[itemPageRoute]" class="dont-break-out"> [routerLink]="[itemPageRoute]" class="dont-break-out">
@@ -10,7 +10,7 @@
</ds-thumbnail> </ds-thumbnail>
</a> </a>
</div> </div>
<div [ngClass]="showThumbnails ? 'col-md-10' : 'col-md-12'"> <div [ngClass]="showThumbnails ? 'col-9' : 'col-md-12'">
<ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge> <ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge>
<ds-truncatable [id]="dso.id"> <ds-truncatable [id]="dso.id">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'"

View File

@@ -69,13 +69,13 @@ describe('OrgUnitSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = true; environment.browseBy.showThumbnails = true;
fixture = TestBed.createComponent(OrgUnitSearchResultListElementComponent); fixture = TestBed.createComponent(OrgUnitSearchResultListElementComponent);
orgUnitListElementComponent = fixture.componentInstance; orgUnitListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to true', () => { describe('with environment.browseBy.showThumbnails set to true', () => {
beforeEach(() => { beforeEach(() => {
orgUnitListElementComponent.object = mockItemWithMetadata; orgUnitListElementComponent.object = mockItemWithMetadata;
fixture.detectChanges(); fixture.detectChanges();
@@ -133,12 +133,12 @@ describe('OrgUnitSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = false; environment.browseBy.showThumbnails = false;
fixture = TestBed.createComponent(OrgUnitSearchResultListElementComponent); fixture = TestBed.createComponent(OrgUnitSearchResultListElementComponent);
orgUnitListElementComponent = fixture.componentInstance; orgUnitListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to false', () => { describe('with environment.browseBy.showThumbnails set to false', () => {
beforeEach(() => { beforeEach(() => {
orgUnitListElementComponent.object = mockItemWithMetadata; orgUnitListElementComponent.object = mockItemWithMetadata;

View File

@@ -21,7 +21,7 @@ export class OrgUnitSearchResultListElementComponent extends ItemSearchResultLis
ngOnInit(): void { ngOnInit(): void {
super.ngOnInit(); super.ngOnInit();
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
} }

View File

@@ -1,5 +1,5 @@
<div class="row"> <div class="row">
<div *ngIf="showThumbnails" class="col-md-2"> <div *ngIf="showThumbnails" class="col-3 col-md-2">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'"
rel="noopener noreferrer" rel="noopener noreferrer"
[routerLink]="[itemPageRoute]" class="dont-break-out"> [routerLink]="[itemPageRoute]" class="dont-break-out">
@@ -10,7 +10,7 @@
</ds-thumbnail> </ds-thumbnail>
</a> </a>
</div> </div>
<div [ngClass]="showThumbnails ? 'col-md-10' : 'col-md-12'"> <div [ngClass]="showThumbnails ? 'col-9 col-md-10' : 'col-12'">
<ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge> <ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge>
<ds-truncatable [id]="dso.id"> <ds-truncatable [id]="dso.id">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'"

View File

@@ -69,13 +69,13 @@ describe('PersonSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = true; environment.browseBy.showThumbnails = true;
fixture = TestBed.createComponent(PersonSearchResultListElementComponent); fixture = TestBed.createComponent(PersonSearchResultListElementComponent);
personListElementComponent = fixture.componentInstance; personListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to true', () => { describe('with environment.browseBy.showThumbnails set to true', () => {
beforeEach(() => { beforeEach(() => {
personListElementComponent.object = mockItemWithMetadata; personListElementComponent.object = mockItemWithMetadata;
fixture.detectChanges(); fixture.detectChanges();
@@ -133,12 +133,12 @@ describe('PersonSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = false; environment.browseBy.showThumbnails = false;
fixture = TestBed.createComponent(PersonSearchResultListElementComponent); fixture = TestBed.createComponent(PersonSearchResultListElementComponent);
personListElementComponent = fixture.componentInstance; personListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to false', () => { describe('with environment.browseBy.showThumbnails set to false', () => {
beforeEach(() => { beforeEach(() => {
personListElementComponent.object = mockItemWithMetadata; personListElementComponent.object = mockItemWithMetadata;

View File

@@ -34,7 +34,7 @@ export class PersonSearchResultListElementComponent extends ItemSearchResultList
ngOnInit(): void { ngOnInit(): void {
super.ngOnInit(); super.ngOnInit();
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
/** /**

View File

@@ -1,5 +1,5 @@
<div class="row"> <div class="row">
<div *ngIf="showThumbnails" class="col-md-2"> <div *ngIf="showThumbnails" class="col-3 col-md-2">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'"
rel="noopener noreferrer" rel="noopener noreferrer"
[routerLink]="[itemPageRoute]" class="dont-break-out"> [routerLink]="[itemPageRoute]" class="dont-break-out">
@@ -10,7 +10,7 @@
</ds-thumbnail> </ds-thumbnail>
</a> </a>
</div> </div>
<div [ngClass]="showThumbnails ? 'col-md-10' : 'col-md-12'"> <div [ngClass]="showThumbnails ? 'col-9' : 'col-md-12'">
<ds-truncatable [id]="dso.id"> <ds-truncatable [id]="dso.id">
<ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge> <ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge>
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'"

View File

@@ -70,13 +70,13 @@ describe('ProjectSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = true; environment.browseBy.showThumbnails = true;
fixture = TestBed.createComponent(ProjectSearchResultListElementComponent); fixture = TestBed.createComponent(ProjectSearchResultListElementComponent);
projectListElementComponent = fixture.componentInstance; projectListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to true', () => { describe('with environment.browseBy.showThumbnails set to true', () => {
beforeEach(() => { beforeEach(() => {
projectListElementComponent.object = mockItemWithMetadata; projectListElementComponent.object = mockItemWithMetadata;
fixture.detectChanges(); fixture.detectChanges();
@@ -135,12 +135,12 @@ describe('ProjectSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = false; environment.browseBy.showThumbnails = false;
fixture = TestBed.createComponent(ProjectSearchResultListElementComponent); fixture = TestBed.createComponent(ProjectSearchResultListElementComponent);
projectListElementComponent = fixture.componentInstance; projectListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to false', () => { describe('with environment.browseBy.showThumbnails set to false', () => {
beforeEach(() => { beforeEach(() => {
projectListElementComponent.object = mockItemWithMetadata; projectListElementComponent.object = mockItemWithMetadata;

View File

@@ -21,7 +21,7 @@ export class ProjectSearchResultListElementComponent extends ItemSearchResultLis
ngOnInit(): void { ngOnInit(): void {
super.ngOnInit(); super.ngOnInit();
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
} }

View File

@@ -72,7 +72,7 @@ export class OrgUnitSearchResultListSubmissionElementComponent extends SearchRes
} }
); );
} }
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
select(value) { select(value) {

View File

@@ -1,5 +1,5 @@
<div class="row"> <div class="row">
<div *ngIf="showThumbnails" class="col-md-2"> <div *ngIf="showThumbnails" class="col-3 col-md-2">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'"
rel="noopener noreferrer" class="dont-break-out"> rel="noopener noreferrer" class="dont-break-out">
<ds-thumbnail [thumbnail]="dso?.thumbnail | async" <ds-thumbnail [thumbnail]="dso?.thumbnail | async"
@@ -9,7 +9,7 @@
</ds-thumbnail> </ds-thumbnail>
</a> </a>
</div> </div>
<div [ngClass]="showThumbnails ? 'col-md-10' : 'col-md-12'"> <div [ngClass]="showThumbnails ? 'col-9' : 'col-md-12'">
<div class="d-flex"> <div class="d-flex">
<div class="flex-grow-1"> <div class="flex-grow-1">
<ds-person-input-suggestions [suggestions]="allSuggestions" [(ngModel)]="selectedName" <ds-person-input-suggestions [suggestions]="allSuggestions" [(ngModel)]="selectedName"

View File

@@ -65,7 +65,7 @@ export class PersonSearchResultListSubmissionElementComponent extends SearchResu
this.selectedName = nameVariant || defaultValue; this.selectedName = nameVariant || defaultValue;
} }
); );
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
select(value) { select(value) {

View File

@@ -1,9 +1,9 @@
<div class="row"> <div class="row">
<div *ngIf="showThumbnails" class="col-md-2"> <div *ngIf="showThumbnails" class="col-3 col-md-2">
<ds-thumbnail [thumbnail]="item?.thumbnail | async" [limitWidth]="true"> <ds-thumbnail [thumbnail]="item?.thumbnail | async" [limitWidth]="true">
</ds-thumbnail> </ds-thumbnail>
</div> </div>
<div [ngClass]="showThumbnails ? 'col-md-10' : 'col-md-12'"> <div [ngClass]="showThumbnails ? 'col-9' : 'col-md-12'">
<div *ngIf="item" @fadeInOut> <div *ngIf="item" @fadeInOut>
<ng-container *ngIf="status"> <ng-container *ngIf="status">
<ds-mydspace-item-status [status]="status"></ds-mydspace-item-status> <ds-mydspace-item-status [status]="status"></ds-mydspace-item-status>

View File

@@ -47,6 +47,6 @@ export class ItemListPreviewComponent implements OnInit{
} }
ngOnInit(): void { ngOnInit(): void {
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
} }

View File

@@ -3,7 +3,7 @@
[status]="status"></ds-themed-item-list-preview> [status]="status"></ds-themed-item-list-preview>
<div class="row"> <div class="row">
<div [ngClass]="showThumbnails ? 'offset-md-2 pl-3' : ''"> <div [ngClass]="showThumbnails ? 'offset-3 offset-md-2 pl-3' : ''">
<ds-item-actions [object]="dso" (processCompleted)="reloadedObject.emit($event.reloadedObject)"></ds-item-actions> <ds-item-actions [object]="dso" (processCompleted)="reloadedObject.emit($event.reloadedObject)"></ds-item-actions>
</div> </div>
</div> </div>

View File

@@ -32,6 +32,6 @@ export class ItemSearchResultListElementSubmissionComponent extends SearchResult
ngOnInit() { ngOnInit() {
super.ngOnInit(); super.ngOnInit();
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
} }

View File

@@ -5,7 +5,7 @@
[showSubmitter]="showSubmitter" [showSubmitter]="showSubmitter"
[status]="status"></ds-themed-item-list-preview> [status]="status"></ds-themed-item-list-preview>
<div class="row"> <div class="row">
<div [ngClass]="showThumbnails ? 'offset-md-2 pl-3' : ''"> <div [ngClass]="showThumbnails ? 'offset-3 offset-md-2pl-3' : ''">
<ds-pool-task-actions id="actions" *ngIf="workflowitem" [object]="dso" <ds-pool-task-actions id="actions" *ngIf="workflowitem" [object]="dso"
(processCompleted)="this.reloadedObject.emit($event.reloadedObject)"></ds-pool-task-actions> (processCompleted)="this.reloadedObject.emit($event.reloadedObject)"></ds-pool-task-actions>
</div> </div>

View File

@@ -71,7 +71,7 @@ export class PoolSearchResultListElementComponent extends SearchResultListElemen
followLink('item'), followLink('submitter') followLink('item'), followLink('submitter')
), followLink('action')); ), followLink('action'));
this.workflowitemRD$ = this.dso.workflowitem as Observable<RemoteData<WorkflowItem>>; this.workflowitemRD$ = this.dso.workflowitem as Observable<RemoteData<WorkflowItem>>;
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
} }

View File

@@ -4,7 +4,7 @@
[object]="object" [object]="object"
[status]="status"></ds-themed-item-list-preview> [status]="status"></ds-themed-item-list-preview>
<div class="row"> <div class="row">
<div [ngClass]="showThumbnails ? 'offset-md-2 pl-3' : ''"> <div [ngClass]="showThumbnails ? 'offset-3 offset-md-2 pl-3' : ''">
<ds-workflowitem-actions [object]="dso" (processCompleted)="reloadedObject.emit($event.reloadedObject)"></ds-workflowitem-actions> <ds-workflowitem-actions [object]="dso" (processCompleted)="reloadedObject.emit($event.reloadedObject)"></ds-workflowitem-actions>
</div> </div>
</div> </div>

View File

@@ -61,7 +61,7 @@ export class WorkflowItemSearchResultListElementComponent extends SearchResultLi
super.ngOnInit(); super.ngOnInit();
this.linkService.resolveLink(this.dso, followLink('item')); this.linkService.resolveLink(this.dso, followLink('item'));
this.initItem(this.dso.item as Observable<RemoteData<Item>> ); this.initItem(this.dso.item as Observable<RemoteData<Item>> );
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
/** /**

View File

@@ -5,7 +5,7 @@
[status]="status"></ds-themed-item-list-preview> [status]="status"></ds-themed-item-list-preview>
<div class="row"> <div class="row">
<div [ngClass]="showThumbnails ? 'offset-md-2 pl-3' : ''"> <div [ngClass]="showThumbnails ? 'offset-3 offset-md-2 pl-3' : ''">
<ds-workspaceitem-actions [object]="dso" (processCompleted)="reloadedObject.emit($event.reloadedObject)"></ds-workspaceitem-actions> <ds-workspaceitem-actions [object]="dso" (processCompleted)="reloadedObject.emit($event.reloadedObject)"></ds-workspaceitem-actions>
</div> </div>
</div> </div>

View File

@@ -61,7 +61,7 @@ export class WorkspaceItemSearchResultListElementComponent extends SearchResultL
super.ngOnInit(); super.ngOnInit();
this.linkService.resolveLink(this.dso, followLink('item')); this.linkService.resolveLink(this.dso, followLink('item'));
this.initItem(this.dso.item as Observable<RemoteData<Item>>); this.initItem(this.dso.item as Observable<RemoteData<Item>>);
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
/** /**

View File

@@ -1,6 +1,6 @@
<div class="row"> <div class="row">
<div *ngIf="showThumbnails" class="offset-md-2"></div> <div *ngIf="showThumbnails" class="offset-3 offset-md-2 "></div>
<div [ngClass]="showThumbnails ? 'col-md-10' : 'col-md-12'"> <div [ngClass]="showThumbnails ? 'col-9' : 'col-md-12'">
<ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge> <ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge>
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" rel="noopener noreferrer" [routerLink]="['/collections/' + dso.id]" class="lead" [innerHTML]="dsoTitle"></a> <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" rel="noopener noreferrer" [routerLink]="['/collections/' + dso.id]" class="lead" [innerHTML]="dsoTitle"></a>
<span *ngIf="linkType == linkTypes.None" class="lead" [innerHTML]="dsoTitle"></span> <span *ngIf="linkType == linkTypes.None" class="lead" [innerHTML]="dsoTitle"></span>

View File

@@ -23,7 +23,7 @@ export class CollectionSearchResultListElementComponent extends SearchResultList
ngOnInit(): void { ngOnInit(): void {
super.ngOnInit(); super.ngOnInit();
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
} }

View File

@@ -1,6 +1,6 @@
<div class="row"> <div class="row">
<div *ngIf="showThumbnails" class="offset-md-2"></div> <div *ngIf="showThumbnails" class="offset-md-2"></div>
<div [ngClass]="showThumbnails ? 'col-md-10' : 'col-md-12'"> <div [ngClass]="showThumbnails ? 'col-9' : 'col-md-12'">
<ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge> <ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge>
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" rel="noopener noreferrer" [routerLink]="['/communities/' + dso.id]" class="lead" [innerHTML]="dsoTitle"></a> <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" rel="noopener noreferrer" [routerLink]="['/communities/' + dso.id]" class="lead" [innerHTML]="dsoTitle"></a>
<span *ngIf="linkType == linkTypes.None" class="lead" [innerHTML]="dsoTitle"></span> <span *ngIf="linkType == linkTypes.None" class="lead" [innerHTML]="dsoTitle"></span>

View File

@@ -23,6 +23,6 @@ export class CommunitySearchResultListElementComponent extends SearchResultListE
ngOnInit(): void { ngOnInit(): void {
super.ngOnInit(); super.ngOnInit();
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
} }

View File

@@ -1,12 +1,12 @@
<div class="row"> <div class="row">
<div *ngIf="showThumbnails" class="col-md-2"> <div *ngIf="showThumbnails" class="col-3 col-md-2">
<a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" rel="noopener noreferrer" <a *ngIf="linkType != linkTypes.None" [target]="(linkType == linkTypes.ExternalLink) ? '_blank' : '_self'" rel="noopener noreferrer"
[routerLink]="[itemPageRoute]" class="dont-break-out"> [routerLink]="[itemPageRoute]" class="dont-break-out">
<ds-thumbnail [thumbnail]="dso?.thumbnail | async" [limitWidth]="true"> <ds-thumbnail [thumbnail]="dso?.thumbnail | async" [limitWidth]="true">
</ds-thumbnail> </ds-thumbnail>
</a> </a>
</div> </div>
<div [ngClass]="showThumbnails ? 'col-md-10' : 'col-md-12'"> <div [ngClass]="showThumbnails ? 'col-9' : 'col-md-12'">
<div class="d-flex"> <div class="d-flex">
<ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge> <ds-type-badge *ngIf="showLabel" [object]="dso"></ds-type-badge>
<ds-access-status-badge [item]="dso" class="pl-1"></ds-access-status-badge> <ds-access-status-badge [item]="dso" class="pl-1"></ds-access-status-badge>

View File

@@ -79,13 +79,13 @@ describe('ItemSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = true; environment.browseBy.showThumbnails = true;
fixture = TestBed.createComponent(ItemSearchResultListElementComponent); fixture = TestBed.createComponent(ItemSearchResultListElementComponent);
publicationListElementComponent = fixture.componentInstance; publicationListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to true', () => { describe('with environment.browseBy.showThumbnails set to true', () => {
beforeEach(() => { beforeEach(() => {
publicationListElementComponent.object = mockItemWithMetadata; publicationListElementComponent.object = mockItemWithMetadata;
fixture.detectChanges(); fixture.detectChanges();
@@ -227,12 +227,12 @@ describe('ItemSearchResultListElementComponent', () => {
})); }));
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
environment.browseBy.showItemThumbnails = false; environment.browseBy.showThumbnails = false;
fixture = TestBed.createComponent(ItemSearchResultListElementComponent); fixture = TestBed.createComponent(ItemSearchResultListElementComponent);
publicationListElementComponent = fixture.componentInstance; publicationListElementComponent = fixture.componentInstance;
})); }));
describe('with environment.browseBy.showItemThumbnails set to false', () => { describe('with environment.browseBy.showThumbnails set to false', () => {
beforeEach(() => { beforeEach(() => {
publicationListElementComponent.object = mockItemWithMetadata; publicationListElementComponent.object = mockItemWithMetadata;

View File

@@ -29,7 +29,7 @@ export class ItemSearchResultListElementComponent extends SearchResultListElemen
ngOnInit(): void { ngOnInit(): void {
super.ngOnInit(); super.ngOnInit();
this.showThumbnails = this.appConfig.browseBy.showItemThumbnails; this.showThumbnails = this.appConfig.browseBy.showThumbnails;
this.itemPageRoute = getItemPageRoute(this.dso); this.itemPageRoute = getItemPageRoute(this.dso);
} }
} }

View File

@@ -22,5 +22,5 @@ export interface BrowseByConfig extends Config {
/** /**
* If true, thumbnail images for items will be added to BOTH search and browse result lists. * If true, thumbnail images for items will be added to BOTH search and browse result lists.
*/ */
showItemThumbnails: boolean; showThumbnails: boolean;
} }

View File

@@ -207,7 +207,7 @@ export class DefaultAppConfig implements AppConfig {
// The absolute lowest year to display in the dropdown (only used when no lowest date can be found for all items) // The absolute lowest year to display in the dropdown (only used when no lowest date can be found for all items)
defaultLowerLimit: 1900, defaultLowerLimit: 1900,
// Whether to add item thumbnail images to BOTH browse and search result lists. // Whether to add item thumbnail images to BOTH browse and search result lists.
showItemThumbnails: true showThumbnails: true
}; };
// Item Config // Item Config

View File

@@ -200,7 +200,7 @@ export const environment: BuildConfig = {
// The absolute lowest year to display in the dropdown (only used when no lowest date can be found for all items) // The absolute lowest year to display in the dropdown (only used when no lowest date can be found for all items)
defaultLowerLimit: 1900, defaultLowerLimit: 1900,
// Whether to add item thumbnail images to BOTH browse and search result lists. // Whether to add item thumbnail images to BOTH browse and search result lists.
showItemThumbnails: true showThumbnails: true
}, },
item: { item: {

View File

@@ -45,7 +45,7 @@
--ds-edit-item-metadata-field-width: 190px; --ds-edit-item-metadata-field-width: 190px;
--ds-edit-item-language-field-width: 43px; --ds-edit-item-language-field-width: 43px;
--ds-thumbnail-max-width: 175px; --ds-thumbnail-max-width: 125px;
--ds-thumbnail-placeholder-background: #{$gray-100}; --ds-thumbnail-placeholder-background: #{$gray-100};
--ds-thumbnail-placeholder-border: 1px solid #{$gray-300}; --ds-thumbnail-placeholder-border: 1px solid #{$gray-300};
--ds-thumbnail-placeholder-color: #{lighten($gray-800, 7%)}; --ds-thumbnail-placeholder-color: #{lighten($gray-800, 7%)};

View File

@@ -144,8 +144,8 @@ ds-dynamic-form-control-container.d-none {
font-size: 0.7rem !important; font-size: 0.7rem !important;
padding: 0.125rem; padding: 0.125rem;
@media screen and (max-width: map-get($grid-breakpoints, sm)) { @media screen and (max-width: map-get($grid-breakpoints, sm)) {
font-size: 1.1rem !important; font-size: 0.5rem !important;
padding: 0.5rem; padding: 0.1rem;
} }
visibility: inherit; visibility: inherit;
} }