Merge pull request #3065 from alexandrevryghem/new-themed-components_contribute-main

Made AdminSearchPageComponent themeable
This commit is contained in:
Tim Donohue
2024-12-10 09:57:31 -06:00
committed by GitHub
15 changed files with 109 additions and 11 deletions

View File

@@ -11,8 +11,8 @@ import {
REGISTRIES_MODULE_PATH, REGISTRIES_MODULE_PATH,
REPORTS_MODULE_PATH, REPORTS_MODULE_PATH,
} from './admin-routing-paths'; } from './admin-routing-paths';
import { AdminSearchPageComponent } from './admin-search-page/admin-search-page.component'; import { ThemedAdminSearchPageComponent } from './admin-search-page/themed-admin-search-page.component';
import { AdminWorkflowPageComponent } from './admin-workflow-page/admin-workflow-page.component'; import { ThemedAdminWorkflowPageComponent } from './admin-workflow-page/themed-admin-workflow-page.component';
export const ROUTES: Route[] = [ export const ROUTES: Route[] = [
{ {
@@ -28,13 +28,13 @@ export const ROUTES: Route[] = [
{ {
path: 'search', path: 'search',
resolve: { breadcrumb: i18nBreadcrumbResolver }, resolve: { breadcrumb: i18nBreadcrumbResolver },
component: AdminSearchPageComponent, component: ThemedAdminSearchPageComponent,
data: { title: 'admin.search.title', breadcrumbKey: 'admin.search' }, data: { title: 'admin.search.title', breadcrumbKey: 'admin.search' },
}, },
{ {
path: 'workflow', path: 'workflow',
resolve: { breadcrumb: i18nBreadcrumbResolver }, resolve: { breadcrumb: i18nBreadcrumbResolver },
component: AdminWorkflowPageComponent, component: ThemedAdminWorkflowPageComponent,
data: { title: 'admin.workflow.title', breadcrumbKey: 'admin.workflow' }, data: { title: 'admin.workflow.title', breadcrumbKey: 'admin.workflow' },
}, },
{ {

View File

@@ -4,7 +4,7 @@ import { Context } from '../../core/shared/context.model';
import { ThemedConfigurationSearchPageComponent } from '../../search-page/themed-configuration-search-page.component'; import { ThemedConfigurationSearchPageComponent } from '../../search-page/themed-configuration-search-page.component';
@Component({ @Component({
selector: 'ds-admin-search-page', selector: 'ds-base-admin-search-page',
templateUrl: './admin-search-page.component.html', templateUrl: './admin-search-page.component.html',
styleUrls: ['./admin-search-page.component.scss'], styleUrls: ['./admin-search-page.component.scss'],
standalone: true, standalone: true,

View File

@@ -0,0 +1,29 @@
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-admin-search-page',
templateUrl: '../../shared/theme-support/themed.component.html',
standalone: true,
imports: [AdminSearchPageComponent],
})
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

@@ -4,11 +4,13 @@ import { Context } from '../../core/shared/context.model';
import { ThemedConfigurationSearchPageComponent } from '../../search-page/themed-configuration-search-page.component'; import { ThemedConfigurationSearchPageComponent } from '../../search-page/themed-configuration-search-page.component';
@Component({ @Component({
selector: 'ds-admin-workflow-page', selector: 'ds-base-admin-workflow-page',
templateUrl: './admin-workflow-page.component.html', templateUrl: './admin-workflow-page.component.html',
styleUrls: ['./admin-workflow-page.component.scss'], styleUrls: ['./admin-workflow-page.component.scss'],
standalone: true, standalone: true,
imports: [ThemedConfigurationSearchPageComponent], imports: [
ThemedConfigurationSearchPageComponent,
],
}) })
/** /**

View File

@@ -0,0 +1,29 @@
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-admin-workflow-page',
templateUrl: '../../shared/theme-support/themed.component.html',
standalone: true,
imports: [AdminWorkflowPageComponent],
})
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

@@ -27,7 +27,7 @@ export class MetadataService {
* Returns undefined otherwise. * Returns undefined otherwise.
*/ */
public virtualValue(metadataValue: MetadataValue | undefined): string { public virtualValue(metadataValue: MetadataValue | undefined): string {
if (this.isVirtual) { if (this.isVirtual(metadataValue)) {
return metadataValue.authority.substring(metadataValue.authority.indexOf(VIRTUAL_METADATA_PREFIX) + VIRTUAL_METADATA_PREFIX.length); return metadataValue.authority.substring(metadataValue.authority.indexOf(VIRTUAL_METADATA_PREFIX) + VIRTUAL_METADATA_PREFIX.length);
} else { } else {
return undefined; return undefined;

View File

@@ -1,6 +1,6 @@
<nav [ngClass]="{'open': (menuCollapsed | async) !== true}" <nav [ngClass]="{'open': (menuCollapsed | async) !== true}"
[@slideMobileNav]="(windowService.isXsOrSm() | async) !== true ? 'default' : ((menuCollapsed | async) ? 'collapsed' : 'expanded')" [@slideMobileNav]="(windowService.isXsOrSm() | async) !== true ? 'default' : ((menuCollapsed | async) ? 'collapsed' : 'expanded')"
class="navbar navbar-light navbar-expand-md px-md-0 pt-md-0 pt-3 navbar-container" role="navigation" class="navbar navbar-light navbar-expand-md px-md-0 navbar-container" role="navigation"
[attr.aria-label]="'nav.main.description' | translate" id="main-navbar"> [attr.aria-label]="'nav.main.description' | translate" id="main-navbar">
<!-- TODO remove navbar-container class when https://github.com/twbs/bootstrap/issues/24726 is fixed --> <!-- TODO remove navbar-container class when https://github.com/twbs/bootstrap/issues/24726 is fixed -->
<div class="navbar-inner-container w-100" [class.container]="(isMobile$ | async) !== true"> <div class="navbar-inner-container w-100" [class.container]="(isMobile$ | async) !== true">

View File

@@ -182,11 +182,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 * @param {KeyboardEvent} event The keyboard event
*/ */
onKeydown(event: KeyboardEvent) { onKeydown(event: KeyboardEvent) {
if (event.key !== 'Enter') { if (event.key !== 'Enter' && event.key !== 'Tab') {
this.queryInput.nativeElement.focus(); this.queryInput.nativeElement.focus();
} }
} }

View File

@@ -0,0 +1,16 @@
import { Component } from '@angular/core';
import { AdminSearchPageComponent as BaseComponent } from '../../../../../app/admin/admin-search-page/admin-search-page.component';
import { ThemedConfigurationSearchPageComponent } from '../../../../../app/search-page/themed-configuration-search-page.component';
@Component({
selector: 'ds-themed-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',
standalone: true,
imports: [ThemedConfigurationSearchPageComponent],
})
export class AdminSearchPageComponent extends BaseComponent {
}

View File

@@ -0,0 +1,18 @@
import { Component } from '@angular/core';
import { AdminWorkflowPageComponent as BaseComponent } from '../../../../../app/admin/admin-workflow-page/admin-workflow-page.component';
import { ThemedConfigurationSearchPageComponent } from '../../../../../app/search-page/themed-configuration-search-page.component';
@Component({
selector: 'ds-themed-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',
standalone: true,
imports: [
ThemedConfigurationSearchPageComponent,
],
})
export class AdminWorkflowPageComponent extends BaseComponent {
}

View File

@@ -13,7 +13,9 @@ import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to';
import { RootModule } from '../../app/root.module'; import { RootModule } from '../../app/root.module';
import { MetadataImportPageComponent } from './app/admin/admin-import-metadata-page/metadata-import-page.component'; import { MetadataImportPageComponent } from './app/admin/admin-import-metadata-page/metadata-import-page.component';
import { AdminSearchPageComponent } from './app/admin/admin-search-page/admin-search-page.component';
import { AdminSidebarComponent } from './app/admin/admin-sidebar/admin-sidebar.component'; import { AdminSidebarComponent } from './app/admin/admin-sidebar/admin-sidebar.component';
import { AdminWorkflowPageComponent } from './app/admin/admin-workflow-page/admin-workflow-page.component';
import { EditBitstreamPageComponent } from './app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component'; import { EditBitstreamPageComponent } from './app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component';
import { BreadcrumbsComponent } from './app/breadcrumbs/breadcrumbs.component'; import { BreadcrumbsComponent } from './app/breadcrumbs/breadcrumbs.component';
import { BrowseByDateComponent } from './app/browse-by/browse-by-date/browse-by-date.component'; import { BrowseByDateComponent } from './app/browse-by/browse-by-date/browse-by-date.component';
@@ -194,6 +196,8 @@ const DECLARATIONS = [
ProfilePageMetadataFormComponent, ProfilePageMetadataFormComponent,
SubmissionUploadFilesComponent, SubmissionUploadFilesComponent,
ComcolPageContentComponent, ComcolPageContentComponent,
AdminSearchPageComponent,
AdminWorkflowPageComponent,
]; ];
@NgModule({ @NgModule({