Skip to content

Commit b18260f

Browse files
author
abhinav
committed
Merge remote-tracking branch 'alex-upstream/w2p-115051_themed-admin-search-page_contribute-7.4' into w2p-131441_backport-3065-8
2 parents eb67598 + 970b19b commit b18260f

14 files changed

+191
-7
lines changed

src/app/admin/admin-routes.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import {
1111
REGISTRIES_MODULE_PATH,
1212
REPORTS_MODULE_PATH,
1313
} from './admin-routing-paths';
14-
import { AdminSearchPageComponent } from './admin-search-page/admin-search-page.component';
15-
import { AdminWorkflowPageComponent } from './admin-workflow-page/admin-workflow-page.component';
14+
import { ThemedAdminSearchPageComponent } from './admin-search-page/themed-admin-search-page.component';
15+
import { ThemedAdminWorkflowPageComponent } from './admin-workflow-page/themed-admin-workflow-page.component';
1616

1717
export const ROUTES: Route[] = [
1818
{
@@ -28,13 +28,13 @@ export const ROUTES: Route[] = [
2828
{
2929
path: 'search',
3030
resolve: { breadcrumb: i18nBreadcrumbResolver },
31-
component: AdminSearchPageComponent,
31+
component: ThemedAdminSearchPageComponent,
3232
data: { title: 'admin.search.title', breadcrumbKey: 'admin.search' },
3333
},
3434
{
3535
path: 'workflow',
3636
resolve: { breadcrumb: i18nBreadcrumbResolver },
37-
component: AdminWorkflowPageComponent,
37+
component: ThemedAdminWorkflowPageComponent,
3838
data: { title: 'admin.workflow.title', breadcrumbKey: 'admin.workflow' },
3939
},
4040
{

src/app/admin/admin-search-page/admin-search-page.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Context } from '../../core/shared/context.model';
44
import { ThemedConfigurationSearchPageComponent } from '../../search-page/themed-configuration-search-page.component';
55

66
@Component({
7-
selector: 'ds-admin-search-page',
7+
selector: 'ds-base-admin-search-page',
88
templateUrl: './admin-search-page.component.html',
99
styleUrls: ['./admin-search-page.component.scss'],
1010
standalone: true,
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import { NgModule } from '@angular/core';
2+
3+
import { JournalEntitiesModule } from '../../entity-groups/journal-entities/journal-entities.module';
4+
import { ResearchEntitiesModule } from '../../entity-groups/research-entities/research-entities.module';
5+
import { SearchModule } from '../../shared/search/search.module';
6+
import { SharedModule } from '../../shared/shared.module';
7+
import { AdminSearchPageComponent } from './admin-search-page.component';
8+
import { CollectionAdminSearchResultGridElementComponent } from './admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component';
9+
import { CommunityAdminSearchResultGridElementComponent } from './admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component';
10+
import { ItemAdminSearchResultGridElementComponent } from './admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component';
11+
import { CollectionAdminSearchResultListElementComponent } from './admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component';
12+
import { CommunityAdminSearchResultListElementComponent } from './admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component';
13+
import { ItemAdminSearchResultListElementComponent } from './admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component';
14+
import { ItemAdminSearchResultActionsComponent } from './admin-search-results/item-admin-search-result-actions.component';
15+
import { ThemedAdminSearchPageComponent } from './themed-admin-search-page.component';
16+
17+
const ENTRY_COMPONENTS = [
18+
// put only entry components that use custom decorator
19+
ItemAdminSearchResultListElementComponent,
20+
CommunityAdminSearchResultListElementComponent,
21+
CollectionAdminSearchResultListElementComponent,
22+
ItemAdminSearchResultGridElementComponent,
23+
CommunityAdminSearchResultGridElementComponent,
24+
CollectionAdminSearchResultGridElementComponent,
25+
ItemAdminSearchResultActionsComponent,
26+
];
27+
28+
@NgModule({
29+
imports: [
30+
SearchModule,
31+
SharedModule.withEntryComponents(),
32+
JournalEntitiesModule.withEntryComponents(),
33+
ResearchEntitiesModule.withEntryComponents(),
34+
],
35+
declarations: [
36+
ThemedAdminSearchPageComponent,
37+
AdminSearchPageComponent,
38+
...ENTRY_COMPONENTS,
39+
],
40+
})
41+
export class AdminSearchModule {
42+
/**
43+
* NOTE: this method allows to resolve issue with components that using a custom decorator
44+
* which are not loaded during SSR otherwise
45+
*/
46+
static withEntryComponents() {
47+
return {
48+
ngModule: SharedModule,
49+
providers: ENTRY_COMPONENTS.map((component) => ({ provide: component })),
50+
};
51+
}
52+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { Component } from '@angular/core';
2+
3+
import { ThemedComponent } from '../../shared/theme-support/themed.component';
4+
import { AdminSearchPageComponent } from './admin-search-page.component';
5+
6+
/**
7+
* Themed wrapper for {@link AdminSearchPageComponent}
8+
*/
9+
@Component({
10+
selector: 'ds-admin-search-page',
11+
templateUrl: '../../shared/theme-support/themed.component.html',
12+
standalone: true,
13+
imports: [AdminSearchPageComponent],
14+
})
15+
export class ThemedAdminSearchPageComponent extends ThemedComponent<AdminSearchPageComponent> {
16+
17+
protected getComponentName(): string {
18+
return 'AdminSearchPageComponent';
19+
}
20+
21+
protected importThemedComponent(themeName: string): Promise<any> {
22+
return import(`../../../themes/${themeName}/app/admin/admin-search-page/admin-search-page.component`);
23+
}
24+
25+
protected importUnthemedComponent(): Promise<any> {
26+
return import('./admin-search-page.component');
27+
}
28+
29+
}

src/app/admin/admin-workflow-page/admin-workflow-page.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Context } from '../../core/shared/context.model';
44
import { ThemedConfigurationSearchPageComponent } from '../../search-page/themed-configuration-search-page.component';
55

66
@Component({
7-
selector: 'ds-admin-workflow-page',
7+
selector: 'ds-base-admin-workflow-page',
88
templateUrl: './admin-workflow-page.component.html',
99
styleUrls: ['./admin-workflow-page.component.scss'],
1010
standalone: true,
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { NgModule } from '@angular/core';
2+
3+
import { SearchModule } from '../../shared/search/search.module';
4+
import { SharedModule } from '../../shared/shared.module';
5+
import { AdminWorkflowPageComponent } from './admin-workflow-page.component';
6+
import { WorkflowItemSearchResultAdminWorkflowGridElementComponent } from './admin-workflow-search-results/admin-workflow-search-result-grid-element/workflow-item/workflow-item-search-result-admin-workflow-grid-element.component';
7+
import { WorkflowItemSearchResultAdminWorkflowListElementComponent } from './admin-workflow-search-results/admin-workflow-search-result-list-element/workflow-item/workflow-item-search-result-admin-workflow-list-element.component';
8+
import { WorkflowItemAdminWorkflowActionsComponent } from './admin-workflow-search-results/workflow-item-admin-workflow-actions.component';
9+
import { ThemedAdminWorkflowPageComponent } from './themed-admin-workflow-page.component';
10+
11+
const ENTRY_COMPONENTS = [
12+
// put only entry components that use custom decorator
13+
WorkflowItemSearchResultAdminWorkflowListElementComponent,
14+
WorkflowItemSearchResultAdminWorkflowGridElementComponent,
15+
];
16+
17+
@NgModule({
18+
imports: [
19+
SearchModule,
20+
SharedModule.withEntryComponents(),
21+
],
22+
declarations: [
23+
ThemedAdminWorkflowPageComponent,
24+
AdminWorkflowPageComponent,
25+
WorkflowItemAdminWorkflowActionsComponent,
26+
...ENTRY_COMPONENTS,
27+
],
28+
exports: [
29+
AdminWorkflowPageComponent,
30+
],
31+
})
32+
export class AdminWorkflowModuleModule {
33+
/**
34+
* NOTE: this method allows to resolve issue with components that using a custom decorator
35+
* which are not loaded during SSR otherwise
36+
*/
37+
static withEntryComponents() {
38+
return {
39+
ngModule: SharedModule,
40+
providers: ENTRY_COMPONENTS.map((component) => ({ provide: component })),
41+
};
42+
}
43+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { Component } from '@angular/core';
2+
3+
import { ThemedComponent } from '../../shared/theme-support/themed.component';
4+
import { AdminWorkflowPageComponent } from './admin-workflow-page.component';
5+
6+
/**
7+
* Themed wrapper for {@link AdminWorkflowPageComponent}
8+
*/
9+
@Component({
10+
selector: 'ds-admin-workflow-page',
11+
templateUrl: '../../shared/theme-support/themed.component.html',
12+
standalone: true,
13+
imports: [AdminWorkflowPageComponent],
14+
})
15+
export class ThemedAdminWorkflowPageComponent extends ThemedComponent<AdminWorkflowPageComponent> {
16+
17+
protected getComponentName(): string {
18+
return 'AdminWorkflowPageComponent';
19+
}
20+
21+
protected importThemedComponent(themeName: string): Promise<any> {
22+
return import(`../../../themes/${themeName}/app/admin/admin-workflow-page/admin-workflow-page.component`);
23+
}
24+
25+
protected importUnthemedComponent(): Promise<any> {
26+
return import('./admin-workflow-page.component');
27+
}
28+
29+
}

src/themes/custom/app/admin/admin-search-page/admin-search-page.component.html

Whitespace-only changes.

src/themes/custom/app/admin/admin-search-page/admin-search-page.component.scss

Whitespace-only changes.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { Component } from '@angular/core';
2+
3+
import { AdminSearchPageComponent as BaseComponent } from '../../../../../app/admin/admin-search-page/admin-search-page.component';
4+
5+
@Component({
6+
selector: 'ds-themed-admin-search-page',
7+
// styleUrls: ['./admin-search-page.component.scss'],
8+
styleUrls: ['../../../../../app/admin/admin-search-page/admin-search-page.component.scss'],
9+
// templateUrl: './admin-search-page.component.html',
10+
templateUrl: '../../../../../app/admin/admin-search-page/admin-search-page.component.html',
11+
standalone: true,
12+
})
13+
export class AdminSearchPageComponent extends BaseComponent {
14+
}

0 commit comments

Comments
 (0)