Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions config/config.example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -325,12 +325,20 @@ item:

# Community Page Config
community:
# Default tab to be shown when browsing a Community. Valid values are: comcols, search, or browse_<field>
# <field> must be any of the configured "browse by" fields, e.g., dateissued, author, title, or subject
# When the default tab is not the 'search' tab, the search tab is moved to the last position
defaultBrowseTab: search
# Search tab config
searchSection:
showSidebar: true

# Collection Page Config
collection:
# Default tab to be shown when browsing a Collection. Valid values are: search, or browse_<field>
# <field> must be any of the configured "browse by" fields, e.g., dateissued, author, title, or subject
# When the default tab is not the 'search' tab, the search tab is moved to the last position
defaultBrowseTab: search
# Search tab config
searchSection:
showSidebar: true
Expand Down
6 changes: 5 additions & 1 deletion src/app/collection-page/collection-page-routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,13 @@ export const ROUTES: Route[] = [
component: ThemedCollectionPageComponent,
children: [
{
path: '',
path: 'search',
pathMatch: 'full',
component: ComcolSearchSectionComponent,
resolve: {
breadcrumb: browseByI18nBreadcrumbResolver,
},
data: { breadcrumbKey: 'collection.search' },
},
{
path: 'browse/:id',
Expand Down
6 changes: 5 additions & 1 deletion src/app/community-page/community-page-routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,13 @@ export const ROUTES: Route[] = [
component: ThemedCommunityPageComponent,
children: [
{
path: '',
path: 'search',
pathMatch: 'full',
component: ComcolSearchSectionComponent,
resolve: {
breadcrumb: i18nBreadcrumbResolver,
},
data: { breadcrumbKey: 'community.search' },
},
{
path: 'subcoms-cols',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
} from '@angular/common';
import {
Component,
Inject,
Input,
OnDestroy,
OnInit,
Expand Down Expand Up @@ -33,6 +34,10 @@
take,
} from 'rxjs/operators';

import {
APP_CONFIG,
AppConfig,
} from '../../../../config/app-config.interface';
import { getCollectionPageRoute } from '../../../collection-page/collection-page-routing-paths';
import { getCommunityPageRoute } from '../../../community-page/community-page-routing-paths';
import { BrowseService } from '../../../core/browse/browse.service';
Expand Down Expand Up @@ -82,6 +87,7 @@
subs: Subscription[] = [];

constructor(
@Inject(APP_CONFIG) public appConfig: AppConfig,

Check warning on line 90 in src/app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.ts

View check run for this annotation

Codecov / codecov/patch

src/app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.ts#L90

Added line #L90 was not covered by tests
public router: Router,
private browseService: BrowseService,
) {
Expand All @@ -99,14 +105,14 @@
allOptions.push({
id: 'search',
label: 'collection.page.browse.search.head',
routerLink: comColRoute,
routerLink: `${comColRoute}/search`,
});
} else if (this.contentType === 'community') {
comColRoute = getCommunityPageRoute(this.id);
allOptions.push({
id: 'search',
label: 'collection.page.browse.search.head',
routerLink: comColRoute,
routerLink: `${comColRoute}/search`,
});
allOptions.push({
id: 'comcols',
Expand All @@ -120,6 +126,10 @@
label: `browse.comcol.by.${config.id}`,
routerLink: `${comColRoute}/browse/${config.id}`,
})));

if (this.appConfig[this.contentType].defaultBrowseTab !== 'search') {
allOptions.push(allOptions.shift());

Check warning on line 131 in src/app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.ts

View check run for this annotation

Codecov / codecov/patch

src/app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.ts#L131

Added line #L131 was not covered by tests
}
}
return allOptions;
}),
Expand All @@ -134,9 +144,14 @@
distinctUntilChanged(),
),
]).subscribe(([navOptions, url]: [ComColPageNavOption[], string]) => {
for (const option of navOptions) {
if (option.routerLink === url?.split('?')[0]) {
this.currentOption$.next(option);
if (url?.split('?')[0].endsWith(`/${this.id}`)) {
const option = navOptions.find(o => o.id === this.appConfig[this.contentType].defaultBrowseTab);
void this.router.navigate([option.routerLink], { queryParams: option.params });

Check warning on line 149 in src/app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.ts

View check run for this annotation

Codecov / codecov/patch

src/app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.ts#L148-L149

Added lines #L148 - L149 were not covered by tests
} else {
for (const option of navOptions) {

Check warning on line 151 in src/app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.ts

View check run for this annotation

Codecov / codecov/patch

src/app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.ts#L151

Added line #L151 was not covered by tests
if (option.routerLink === url?.split('?')[0]) {
this.currentOption$.next(option);

Check warning on line 153 in src/app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.ts

View check run for this annotation

Codecov / codecov/patch

src/app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.ts#L153

Added line #L153 was not covered by tests
}
}
}
}));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ describe('ComcolSearchSectionComponent', () => {

beforeEach(async () => {
route = new ActivatedRouteStub();
route.parent = new ActivatedRouteStub();

await TestBed.configureTestingModule({
imports: [ComcolSearchSectionComponent],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export class ComcolSearchSectionComponent implements OnInit {
}

ngOnInit(): void {
this.comcol$ = this.route.data.pipe(
this.comcol$ = this.route.parent.data.pipe(
map((data: Data) => (data.dso as RemoteData<Community | Collection>).payload),
);
this.showSidebar$ = this.comcol$.pipe(
Expand Down
4 changes: 4 additions & 0 deletions src/assets/i18n/en.json5
Original file line number Diff line number Diff line change
Expand Up @@ -1324,6 +1324,8 @@

"collection.page.news": "News",

"collection.search.breadcrumbs": "Search",

"collection.search.results.head": "Search Results",

"collection.select.confirm": "Confirm selected",
Expand Down Expand Up @@ -1562,6 +1564,8 @@

"community.all-lists.head": "Subcommunities and Collections",

"community.search.breadcrumbs": "Search",

"community.search.results.head": "Search Results",

"community.sub-collection-list.head": "Collections in this Community",
Expand Down
6 changes: 6 additions & 0 deletions src/assets/i18n/es.json5
Original file line number Diff line number Diff line change
Expand Up @@ -1929,6 +1929,9 @@
// "collection.page.news": "News",
"collection.page.news": "Noticias",

// "collection.search.breadcrumbs": "Search",
"collection.search.breadcrumbs": "Buscar",

// "collection.select.confirm": "Confirm selected",
"collection.select.confirm": "Confirmar seleccionado",

Expand Down Expand Up @@ -2250,6 +2253,9 @@
// "community.all-lists.head": "Subcommunities and Collections",
"community.all-lists.head": "Subcomunidades y colecciones",

// "community.search.breadcrumbs": "Search",
"community.search.breadcrumbs": "Buscar",

// "community.sub-collection-list.head": "Collections in this Community",
"community.sub-collection-list.head": "Colecciones de esta comunidad",

Expand Down
1 change: 1 addition & 0 deletions src/config/collection-page-config.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { Config } from './config.interface';
* Collection Page Config
*/
export interface CollectionPageConfig extends Config {
defaultBrowseTab: string;
searchSection: CollectionSearchSectionConfig;
edit: {
undoTimeout: number;
Expand Down
1 change: 1 addition & 0 deletions src/config/community-page-config.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { Config } from './config.interface';
* Community Page Config
*/
export interface CommunityPageConfig extends Config {
defaultBrowseTab: string;
searchSection: CommunitySearchSectionConfig;
}

Expand Down
2 changes: 2 additions & 0 deletions src/config/default-app-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -333,13 +333,15 @@ export class DefaultAppConfig implements AppConfig {

// Community Page Config
community: CommunityPageConfig = {
defaultBrowseTab: 'search',
searchSection: {
showSidebar: true,
},
};

// Collection Page Config
collection: CollectionPageConfig = {
defaultBrowseTab: 'search',
searchSection: {
showSidebar: true,
},
Expand Down
2 changes: 2 additions & 0 deletions src/environments/environment.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -267,11 +267,13 @@ export const environment: BuildConfig = {
},
},
community: {
defaultBrowseTab: 'search',
searchSection: {
showSidebar: true,
},
},
collection: {
defaultBrowseTab: 'search',
searchSection: {
showSidebar: true,
},
Expand Down