Merge pull request #4384 from atmire/w2p-131441_backport-3065-7.6

[Port dspace-7_x] Made AdminSearchPageComponent themeable
This commit is contained in:
Tim Donohue
2025-05-30 10:38:39 -05:00
committed by GitHub
13 changed files with 90 additions and 6 deletions

View File

@@ -1,13 +1,13 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { MetadataImportPageComponent } from './admin-import-metadata-page/metadata-import-page.component';
import { AdminSearchPageComponent } from './admin-search-page/admin-search-page.component';
import { ThemedAdminSearchPageComponent } from './admin-search-page/themed-admin-search-page.component';
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
import { AdminWorkflowPageComponent } from './admin-workflow-page/admin-workflow-page.component';
import { I18nBreadcrumbsService } from '../core/breadcrumbs/i18n-breadcrumbs.service';
import { AdminCurationTasksComponent } from './admin-curation-tasks/admin-curation-tasks.component';
import { REGISTRIES_MODULE_PATH } from './admin-routing-paths';
import { BatchImportPageComponent } from './admin-import-batch-page/batch-import-page.component';
import { ThemedAdminWorkflowPageComponent } from './admin-workflow-page/themed-admin-workflow-page.component';
@NgModule({
imports: [
@@ -20,13 +20,13 @@ import { BatchImportPageComponent } from './admin-import-batch-page/batch-import
{
path: 'search',
resolve: { breadcrumb: I18nBreadcrumbResolver },
component: AdminSearchPageComponent,
component: ThemedAdminSearchPageComponent,
data: { title: 'admin.search.title', breadcrumbKey: 'admin.search' }
},
{
path: 'workflow',
resolve: { breadcrumb: I18nBreadcrumbResolver },
component: AdminWorkflowPageComponent,
component: ThemedAdminWorkflowPageComponent,
data: { title: 'admin.workflow.title', breadcrumbKey: 'admin.workflow' }
},
{

View File

@@ -1,5 +1,6 @@
import { NgModule } from '@angular/core';
import { SharedModule } from '../../shared/shared.module';
import { ThemedAdminSearchPageComponent } from './themed-admin-search-page.component';
import { AdminSearchPageComponent } from './admin-search-page.component';
import { ItemAdminSearchResultListElementComponent } from './admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component';
import { CommunityAdminSearchResultListElementComponent } from './admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component';
@@ -31,6 +32,7 @@ const ENTRY_COMPONENTS = [
ResearchEntitiesModule.withEntryComponents()
],
declarations: [
ThemedAdminSearchPageComponent,
AdminSearchPageComponent,
...ENTRY_COMPONENTS
]

View File

@@ -0,0 +1,26 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../../shared/theme-support/themed.component';
import { AdminSearchPageComponent } from './admin-search-page.component';
/**
* Themed wrapper for {@link AdminSearchPageComponent}
*/
@Component({
selector: 'ds-themed-admin-search-page',
templateUrl: '../../shared/theme-support/themed.component.html',
})
export class ThemedAdminSearchPageComponent extends ThemedComponent<AdminSearchPageComponent> {
protected getComponentName(): string {
return 'AdminSearchPageComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/admin/admin-search-page/admin-search-page.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./admin-search-page.component');
}
}

View File

@@ -27,6 +27,7 @@ import {
import {
SupervisionOrderStatusComponent
} from './admin-workflow-search-results/actions/workspace-item/supervision-order-status/supervision-order-status.component';
import { ThemedAdminWorkflowPageComponent } from './themed-admin-workflow-page.component';
const ENTRY_COMPONENTS = [
// put only entry components that use custom decorator
@@ -42,6 +43,7 @@ const ENTRY_COMPONENTS = [
SharedModule.withEntryComponents()
],
declarations: [
ThemedAdminWorkflowPageComponent,
AdminWorkflowPageComponent,
SupervisionOrderGroupSelectorComponent,
SupervisionOrderStatusComponent,

View File

@@ -0,0 +1,26 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../../shared/theme-support/themed.component';
import { AdminWorkflowPageComponent } from './admin-workflow-page.component';
/**
* Themed wrapper for {@link AdminWorkflowPageComponent}
*/
@Component({
selector: 'ds-themed-admin-workflow-page',
templateUrl: '../../shared/theme-support/themed.component.html',
})
export class ThemedAdminWorkflowPageComponent extends ThemedComponent<AdminWorkflowPageComponent> {
protected getComponentName(): string {
return 'AdminWorkflowPageComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/admin/admin-workflow-page/admin-workflow-page.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./admin-workflow-page.component');
}
}

View File

@@ -165,11 +165,11 @@ export class InputSuggestionsComponent implements ControlValueAccessor, OnChange
}
/**
* When any key is pressed (except for the Enter button) the query input should move to the input field
* When any key is pressed (except for the Enter & Tab button) the query input should move to the input field
* @param {KeyboardEvent} event The keyboard event
*/
onKeydown(event: KeyboardEvent) {
if (event.key !== 'Enter') {
if (event.key !== 'Enter' && event.key !== 'Tab') {
this.queryInput.nativeElement.focus();
}
}

View File

@@ -0,0 +1,12 @@
import { Component } from '@angular/core';
import { AdminSearchPageComponent as BaseComponent } from '../../../../../app/admin/admin-search-page/admin-search-page.component';
@Component({
selector: 'ds-admin-search-page',
// styleUrls: ['./admin-search-page.component.scss'],
styleUrls: ['../../../../../app/admin/admin-search-page/admin-search-page.component.scss'],
// templateUrl: './admin-search-page.component.html',
templateUrl: '../../../../../app/admin/admin-search-page/admin-search-page.component.html',
})
export class AdminSearchPageComponent extends BaseComponent {
}

View File

@@ -0,0 +1,12 @@
import { Component } from '@angular/core';
import { AdminWorkflowPageComponent as BaseComponent } from '../../../../../app/admin/admin-workflow-page/admin-workflow-page.component';
@Component({
selector: 'ds-admin-workflow-page',
// styleUrls: ['./admin-workflow-page.component.scss'],
styleUrls: ['../../../../../app/admin/admin-workflow-page/admin-workflow-page.component.scss'],
// templateUrl: './admin-workflow-page.component.html',
templateUrl: '../../../../../app/admin/admin-workflow-page/admin-workflow-page.component.html',
})
export class AdminWorkflowPageComponent extends BaseComponent {
}

View File

@@ -161,6 +161,8 @@ import { BrowseByComponent } from './app/shared/browse-by/browse-by.component';
import { RegisterEmailFormComponent } from './app/register-email-form/register-email-form.component';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
import { AdminSearchPageComponent } from './app/admin/admin-search-page/admin-search-page.component';
import { AdminWorkflowPageComponent } from './app/admin/admin-workflow-page/admin-workflow-page.component';
const DECLARATIONS = [
FileSectionComponent,
@@ -247,6 +249,8 @@ const DECLARATIONS = [
UserMenuComponent,
BrowseByComponent,
RegisterEmailFormComponent,
AdminSearchPageComponent,
AdminWorkflowPageComponent,
];
@NgModule({