Merge pull request #2753 from alexandrevryghem/minor-themed-component-fixes_contribute-main

Themed component fixes
This commit is contained in:
Tim Donohue
2024-05-10 11:18:09 -05:00
committed by GitHub
77 changed files with 605 additions and 151 deletions

View File

@@ -21,12 +21,12 @@ import { NotificationsService } from '../../shared/notifications/notifications.s
import { FileDropzoneNoUploaderComponent } from '../../shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component'; import { FileDropzoneNoUploaderComponent } from '../../shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component';
@Component({ @Component({
selector: 'ds-metadata-import-page', selector: 'ds-base-metadata-import-page',
templateUrl: './metadata-import-page.component.html', templateUrl: './metadata-import-page.component.html',
imports: [ imports: [
TranslateModule,
FormsModule,
FileDropzoneNoUploaderComponent, FileDropzoneNoUploaderComponent,
FormsModule,
TranslateModule,
], ],
standalone: true, standalone: true,
}) })

View File

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

View File

@@ -3,7 +3,7 @@ import { Route } from '@angular/router';
import { i18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver'; import { i18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
import { AdminCurationTasksComponent } from './admin-curation-tasks/admin-curation-tasks.component'; import { AdminCurationTasksComponent } from './admin-curation-tasks/admin-curation-tasks.component';
import { BatchImportPageComponent } from './admin-import-batch-page/batch-import-page.component'; import { BatchImportPageComponent } from './admin-import-batch-page/batch-import-page.component';
import { MetadataImportPageComponent } from './admin-import-metadata-page/metadata-import-page.component'; import { ThemedMetadataImportPageComponent } from './admin-import-metadata-page/themed-metadata-import-page.component';
import { import {
LDN_PATH, LDN_PATH,
NOTIFICATIONS_MODULE_PATH, NOTIFICATIONS_MODULE_PATH,
@@ -46,7 +46,7 @@ export const ROUTES: Route[] = [
{ {
path: 'metadata-import', path: 'metadata-import',
resolve: { breadcrumb: i18nBreadcrumbResolver }, resolve: { breadcrumb: i18nBreadcrumbResolver },
component: MetadataImportPageComponent, component: ThemedMetadataImportPageComponent,
data: { title: 'admin.metadata-import.title', breadcrumbKey: 'admin.metadata-import' }, data: { title: 'admin.metadata-import.title', breadcrumbKey: 'admin.metadata-import' },
}, },
{ {

View File

@@ -36,7 +36,7 @@ import { RemoteData } from '../../core/data/remote-data';
import { PaginationService } from '../../core/pagination/pagination.service'; import { PaginationService } from '../../core/pagination/pagination.service';
import { Item } from '../../core/shared/item.model'; import { Item } from '../../core/shared/item.model';
import { ThemedComcolPageBrowseByComponent } from '../../shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component'; import { ThemedComcolPageBrowseByComponent } from '../../shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component';
import { ComcolPageContentComponent } from '../../shared/comcol/comcol-page-content/comcol-page-content.component'; import { ThemedComcolPageContentComponent } from '../../shared/comcol/comcol-page-content/themed-comcol-page-content.component';
import { ThemedComcolPageHandleComponent } from '../../shared/comcol/comcol-page-handle/themed-comcol-page-handle.component'; import { ThemedComcolPageHandleComponent } from '../../shared/comcol/comcol-page-handle/themed-comcol-page-handle.component';
import { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../shared/comcol/comcol-page-logo/comcol-page-logo.component'; import { ComcolPageLogoComponent } from '../../shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -68,7 +68,7 @@ import {
ComcolPageLogoComponent, ComcolPageLogoComponent,
NgIf, NgIf,
ThemedComcolPageHandleComponent, ThemedComcolPageHandleComponent,
ComcolPageContentComponent, ThemedComcolPageContentComponent,
DsoEditMenuComponent, DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent, ThemedComcolPageBrowseByComponent,
TranslateModule, TranslateModule,

View File

@@ -46,7 +46,7 @@ import { Context } from '../../core/shared/context.model';
import { Item } from '../../core/shared/item.model'; import { Item } from '../../core/shared/item.model';
import { getFirstSucceededRemoteData } from '../../core/shared/operators'; import { getFirstSucceededRemoteData } from '../../core/shared/operators';
import { ThemedComcolPageBrowseByComponent } from '../../shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component'; import { ThemedComcolPageBrowseByComponent } from '../../shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component';
import { ComcolPageContentComponent } from '../../shared/comcol/comcol-page-content/comcol-page-content.component'; import { ThemedComcolPageContentComponent } from '../../shared/comcol/comcol-page-content/themed-comcol-page-content.component';
import { ThemedComcolPageHandleComponent } from '../../shared/comcol/comcol-page-handle/themed-comcol-page-handle.component'; import { ThemedComcolPageHandleComponent } from '../../shared/comcol/comcol-page-handle/themed-comcol-page-handle.component';
import { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../shared/comcol/comcol-page-logo/comcol-page-logo.component'; import { ComcolPageLogoComponent } from '../../shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -74,7 +74,7 @@ export const BBM_PAGINATION_ID = 'bbm';
ComcolPageLogoComponent, ComcolPageLogoComponent,
NgIf, NgIf,
ThemedComcolPageHandleComponent, ThemedComcolPageHandleComponent,
ComcolPageContentComponent, ThemedComcolPageContentComponent,
DsoEditMenuComponent, DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent, ThemedComcolPageBrowseByComponent,
TranslateModule, TranslateModule,

View File

@@ -29,7 +29,7 @@ import { VocabularyEntryDetail } from '../../core/submission/vocabularies/models
import { VocabularyOptions } from '../../core/submission/vocabularies/models/vocabulary-options.model'; import { VocabularyOptions } from '../../core/submission/vocabularies/models/vocabulary-options.model';
import { ThemedBrowseByComponent } from '../../shared/browse-by/themed-browse-by.component'; import { ThemedBrowseByComponent } from '../../shared/browse-by/themed-browse-by.component';
import { ThemedComcolPageBrowseByComponent } from '../../shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component'; import { ThemedComcolPageBrowseByComponent } from '../../shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component';
import { ComcolPageContentComponent } from '../../shared/comcol/comcol-page-content/comcol-page-content.component'; import { ThemedComcolPageContentComponent } from '../../shared/comcol/comcol-page-content/themed-comcol-page-content.component';
import { ThemedComcolPageHandleComponent } from '../../shared/comcol/comcol-page-handle/themed-comcol-page-handle.component'; import { ThemedComcolPageHandleComponent } from '../../shared/comcol/comcol-page-handle/themed-comcol-page-handle.component';
import { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../shared/comcol/comcol-page-logo/comcol-page-logo.component'; import { ComcolPageLogoComponent } from '../../shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -51,7 +51,7 @@ import { BrowseByDataType } from '../browse-by-switcher/browse-by-data-type';
ComcolPageLogoComponent, ComcolPageLogoComponent,
NgIf, NgIf,
ThemedComcolPageHandleComponent, ThemedComcolPageHandleComponent,
ComcolPageContentComponent, ThemedComcolPageContentComponent,
DsoEditMenuComponent, DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent, ThemedComcolPageBrowseByComponent,
TranslateModule, TranslateModule,

View File

@@ -17,7 +17,7 @@ import {
} from '../../core/cache/models/sort-options.model'; } from '../../core/cache/models/sort-options.model';
import { ThemedBrowseByComponent } from '../../shared/browse-by/themed-browse-by.component'; import { ThemedBrowseByComponent } from '../../shared/browse-by/themed-browse-by.component';
import { ThemedComcolPageBrowseByComponent } from '../../shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component'; import { ThemedComcolPageBrowseByComponent } from '../../shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component';
import { ComcolPageContentComponent } from '../../shared/comcol/comcol-page-content/comcol-page-content.component'; import { ThemedComcolPageContentComponent } from '../../shared/comcol/comcol-page-content/themed-comcol-page-content.component';
import { ThemedComcolPageHandleComponent } from '../../shared/comcol/comcol-page-handle/themed-comcol-page-handle.component'; import { ThemedComcolPageHandleComponent } from '../../shared/comcol/comcol-page-handle/themed-comcol-page-handle.component';
import { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../shared/comcol/comcol-page-logo/comcol-page-logo.component'; import { ComcolPageLogoComponent } from '../../shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -43,7 +43,7 @@ import {
ComcolPageLogoComponent, ComcolPageLogoComponent,
NgIf, NgIf,
ThemedComcolPageHandleComponent, ThemedComcolPageHandleComponent,
ComcolPageContentComponent, ThemedComcolPageContentComponent,
DsoEditMenuComponent, DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent, ThemedComcolPageBrowseByComponent,
TranslateModule, TranslateModule,

View File

@@ -36,7 +36,7 @@ import {
fadeInOut, fadeInOut,
} from '../shared/animations/fade'; } from '../shared/animations/fade';
import { ThemedComcolPageBrowseByComponent } from '../shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component'; import { ThemedComcolPageBrowseByComponent } from '../shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component';
import { ComcolPageContentComponent } from '../shared/comcol/comcol-page-content/comcol-page-content.component'; import { ThemedComcolPageContentComponent } from '../shared/comcol/comcol-page-content/themed-comcol-page-content.component';
import { ThemedComcolPageHandleComponent } from '../shared/comcol/comcol-page-handle/themed-comcol-page-handle.component'; import { ThemedComcolPageHandleComponent } from '../shared/comcol/comcol-page-handle/themed-comcol-page-handle.component';
import { ComcolPageHeaderComponent } from '../shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../shared/comcol/comcol-page-logo/comcol-page-logo.component'; import { ComcolPageLogoComponent } from '../shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -63,7 +63,7 @@ import { getCollectionPageRoute } from './collection-page-routing-paths';
fadeInOut, fadeInOut,
], ],
imports: [ imports: [
ComcolPageContentComponent, ThemedComcolPageContentComponent,
ErrorComponent, ErrorComponent,
NgIf, NgIf,
ThemedLoadingComponent, ThemedLoadingComponent,

View File

@@ -32,7 +32,7 @@ import { Community } from '../core/shared/community.model';
import { getAllSucceededRemoteDataPayload } from '../core/shared/operators'; import { getAllSucceededRemoteDataPayload } from '../core/shared/operators';
import { fadeInOut } from '../shared/animations/fade'; import { fadeInOut } from '../shared/animations/fade';
import { ThemedComcolPageBrowseByComponent } from '../shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component'; import { ThemedComcolPageBrowseByComponent } from '../shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component';
import { ComcolPageContentComponent } from '../shared/comcol/comcol-page-content/comcol-page-content.component'; import { ThemedComcolPageContentComponent } from '../shared/comcol/comcol-page-content/themed-comcol-page-content.component';
import { ThemedComcolPageHandleComponent } from '../shared/comcol/comcol-page-handle/themed-comcol-page-handle.component'; import { ThemedComcolPageHandleComponent } from '../shared/comcol/comcol-page-handle/themed-comcol-page-handle.component';
import { ComcolPageHeaderComponent } from '../shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../shared/comcol/comcol-page-logo/comcol-page-logo.component'; import { ComcolPageLogoComponent } from '../shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -53,7 +53,7 @@ import { ThemedCommunityPageSubCommunityListComponent } from './sections/sub-com
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
animations: [fadeInOut], animations: [fadeInOut],
imports: [ imports: [
ComcolPageContentComponent, ThemedComcolPageContentComponent,
ErrorComponent, ErrorComponent,
ThemedLoadingComponent, ThemedLoadingComponent,
NgIf, NgIf,

View File

@@ -4,9 +4,9 @@
[attr.rel]="(linkType === linkTypes.ExternalLink) ? 'noopener noreferrer' : null" [attr.rel]="(linkType === linkTypes.ExternalLink) ? 'noopener noreferrer' : null"
[routerLink]="[itemPageRoute]" class="dont-break-out"> [routerLink]="[itemPageRoute]" class="dont-break-out">
<ds-thumbnail [thumbnail]="dso?.thumbnail | async" <ds-thumbnail [thumbnail]="dso?.thumbnail | async"
[defaultImage]="'assets/images/orgunit-placeholder.svg'" [defaultImage]="'assets/images/orgunit-placeholder.svg'"
[alt]="'thumbnail.orgunit.alt'" [alt]="'thumbnail.orgunit.alt'"
[placeholder]="'thumbnail.orgunit.placeholder'"> [placeholder]="'thumbnail.orgunit.placeholder'">
</ds-thumbnail> </ds-thumbnail>
</a> </a>
<span *ngIf="linkType === linkTypes.None" class="dont-break-out"> <span *ngIf="linkType === linkTypes.None" class="dont-break-out">

View File

@@ -4,9 +4,9 @@
[attr.rel]="(linkType === linkTypes.ExternalLink) ? 'noopener noreferrer' : null" [attr.rel]="(linkType === linkTypes.ExternalLink) ? 'noopener noreferrer' : null"
[routerLink]="[itemPageRoute]" class="dont-break-out"> [routerLink]="[itemPageRoute]" class="dont-break-out">
<ds-thumbnail [thumbnail]="dso?.thumbnail | async" <ds-thumbnail [thumbnail]="dso?.thumbnail | async"
[defaultImage]="'assets/images/person-placeholder.svg'" [defaultImage]="'assets/images/person-placeholder.svg'"
[alt]="'thumbnail.person.alt'" [alt]="'thumbnail.person.alt'"
[placeholder]="'thumbnail.person.placeholder'"> [placeholder]="'thumbnail.person.placeholder'">
</ds-thumbnail> </ds-thumbnail>
</a> </a>
<span *ngIf="linkType === linkTypes.None" class="dont-break-out"> <span *ngIf="linkType === linkTypes.None" class="dont-break-out">

View File

@@ -4,9 +4,9 @@
[attr.rel]="(linkType === linkTypes.ExternalLink) ? 'noopener noreferrer' : null" [attr.rel]="(linkType === linkTypes.ExternalLink) ? 'noopener noreferrer' : null"
[routerLink]="[itemPageRoute]" class="dont-break-out"> [routerLink]="[itemPageRoute]" class="dont-break-out">
<ds-thumbnail [thumbnail]="dso?.thumbnail | async" <ds-thumbnail [thumbnail]="dso?.thumbnail | async"
[defaultImage]="'assets/images/project-placeholder.svg'" [defaultImage]="'assets/images/project-placeholder.svg'"
[alt]="'thumbnail.project.alt'" [alt]="'thumbnail.project.alt'"
[placeholder]="'thumbnail.project.placeholder'"> [placeholder]="'thumbnail.project.placeholder'">
</ds-thumbnail> </ds-thumbnail>
</a> </a>
<span *ngIf="linkType === linkTypes.None" class="dont-break-out"> <span *ngIf="linkType === linkTypes.None" class="dont-break-out">

View File

@@ -213,7 +213,7 @@ describe('PersonSearchResultListElementSubmissionComponent', () => {
fixture.detectChanges(); fixture.detectChanges();
}); });
it('should add the ds-thumbnail element', () => { it('should add the thumbnail element', () => {
const thumbnail = fixture.debugElement.query(By.css('ds-thumbnail')); const thumbnail = fixture.debugElement.query(By.css('ds-thumbnail'));
expect(thumbnail).toBeTruthy(); expect(thumbnail).toBeTruthy();
}); });
@@ -266,7 +266,7 @@ describe('PersonSearchResultListElementSubmissionComponent', () => {
fixture.detectChanges(); fixture.detectChanges();
}); });
it('should not add the ds-thumbnail element', () => { it('should not add the thumbnail element', () => {
const thumbnail = fixture.debugElement.query(By.css('ds-thumbnail')); const thumbnail = fixture.debugElement.query(By.css('ds-thumbnail'));
expect(thumbnail).toBeNull(); expect(thumbnail).toBeNull();
}); });

View File

@@ -31,7 +31,7 @@ import { FormComponent } from '../../shared/form/form.component';
import { NotificationsService } from '../../shared/notifications/notifications.service'; import { NotificationsService } from '../../shared/notifications/notifications.service';
@Component({ @Component({
selector: 'ds-profile-page-metadata-form', selector: 'ds-base-profile-page-metadata-form',
templateUrl: './profile-page-metadata-form.component.html', templateUrl: './profile-page-metadata-form.component.html',
imports: [ imports: [
FormComponent, FormComponent,

View File

@@ -0,0 +1,39 @@
import {
Component,
Input,
} from '@angular/core';
import { EPerson } from '../../core/eperson/models/eperson.model';
import { ThemedComponent } from '../../shared/theme-support/themed.component';
import { ProfilePageMetadataFormComponent } from './profile-page-metadata-form.component';
/**
* Themed wrapper for {@link ProfilePageMetadataFormComponent}
*/
@Component({
selector: 'ds-profile-page-metadata-form',
templateUrl: '../../shared/theme-support/themed.component.html',
standalone: true,
imports: [ProfilePageMetadataFormComponent],
})
export class ThemedProfilePageMetadataFormComponent extends ThemedComponent<ProfilePageMetadataFormComponent> {
@Input() user: EPerson;
protected inAndOutputNames: (keyof ProfilePageMetadataFormComponent & keyof this)[] = [
'user',
];
protected getComponentName(): string {
return 'ProfilePageMetadataFormComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/profile-page/profile-page-metadata-form/profile-page-metadata-form.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./profile-page-metadata-form.component');
}
}

View File

@@ -5,7 +5,7 @@ import {
waitForAsync, waitForAsync,
} from '@angular/core/testing'; } from '@angular/core/testing';
import { By } from '@angular/platform-browser'; import { By } from '@angular/platform-browser';
import { RouterTestingModule } from '@angular/router/testing'; import { RouterModule } from '@angular/router';
import { StoreModule } from '@ngrx/store'; import { StoreModule } from '@ngrx/store';
import { provideMockStore } from '@ngrx/store/testing'; import { provideMockStore } from '@ngrx/store/testing';
import { TranslateModule } from '@ngx-translate/core'; import { TranslateModule } from '@ngx-translate/core';
@@ -41,7 +41,7 @@ import {
import { createPaginatedList } from '../shared/testing/utils.test'; import { createPaginatedList } from '../shared/testing/utils.test';
import { VarDirective } from '../shared/utils/var.directive'; import { VarDirective } from '../shared/utils/var.directive';
import { ProfilePageComponent } from './profile-page.component'; import { ProfilePageComponent } from './profile-page.component';
import { ProfilePageMetadataFormComponent } from './profile-page-metadata-form/profile-page-metadata-form.component'; import { ThemedProfilePageMetadataFormComponent } from './profile-page-metadata-form/themed-profile-page-metadata-form.component';
import { ProfilePageResearcherFormComponent } from './profile-page-researcher-form/profile-page-researcher-form.component'; import { ProfilePageResearcherFormComponent } from './profile-page-researcher-form/profile-page-researcher-form.component';
import { ProfilePageSecurityFormComponent } from './profile-page-security-form/profile-page-security-form.component'; import { ProfilePageSecurityFormComponent } from './profile-page-security-form/profile-page-security-form.component';
@@ -113,8 +113,9 @@ describe('ProfilePageComponent', () => {
imports: [ imports: [
StoreModule.forRoot({ auth: authReducer }, storeModuleConfig), StoreModule.forRoot({ auth: authReducer }, storeModuleConfig),
TranslateModule.forRoot(), TranslateModule.forRoot(),
RouterTestingModule.withRoutes([]), RouterModule.forRoot([]),
ProfilePageComponent, VarDirective, ProfilePageComponent,
VarDirective,
], ],
providers: [ providers: [
{ provide: EPersonDataService, useValue: epersonService }, { provide: EPersonDataService, useValue: epersonService },
@@ -129,7 +130,7 @@ describe('ProfilePageComponent', () => {
.overrideComponent(ProfilePageComponent, { .overrideComponent(ProfilePageComponent, {
remove: { remove: {
imports: [ imports: [
ProfilePageMetadataFormComponent, ThemedProfilePageMetadataFormComponent,
ProfilePageSecurityFormComponent, ProfilePageSecurityFormComponent,
ProfilePageResearcherFormComponent, ProfilePageResearcherFormComponent,
SuggestionsNotificationComponent, SuggestionsNotificationComponent,
@@ -154,9 +155,13 @@ describe('ProfilePageComponent', () => {
describe('updateProfile', () => { describe('updateProfile', () => {
describe('when the metadata form returns false and the security form returns true', () => { describe('when the metadata form returns false and the security form returns true', () => {
beforeEach(() => { beforeEach(() => {
component.metadataForm = jasmine.createSpyObj('metadataForm', { component.metadataForm = {
updateProfile: false, compRef: {
}); instance: {
updateProfile: () => false,
},
},
} as any;
spyOn(component, 'updateSecurity').and.returnValue(true); spyOn(component, 'updateSecurity').and.returnValue(true);
component.updateProfile(); component.updateProfile();
}); });
@@ -168,9 +173,13 @@ describe('ProfilePageComponent', () => {
describe('when the metadata form returns true and the security form returns false', () => { describe('when the metadata form returns true and the security form returns false', () => {
beforeEach(() => { beforeEach(() => {
component.metadataForm = jasmine.createSpyObj('metadataForm', { component.metadataForm = {
updateProfile: true, compRef: {
}); instance: {
updateProfile: () => true,
},
},
} as any;
component.updateProfile(); component.updateProfile();
}); });
@@ -181,9 +190,13 @@ describe('ProfilePageComponent', () => {
describe('when the metadata form returns true and the security form returns true', () => { describe('when the metadata form returns true and the security form returns true', () => {
beforeEach(() => { beforeEach(() => {
component.metadataForm = jasmine.createSpyObj('metadataForm', { component.metadataForm = {
updateProfile: true, compRef: {
}); instance: {
updateProfile: () => true,
},
},
} as any;
component.updateProfile(); component.updateProfile();
}); });
@@ -194,9 +207,13 @@ describe('ProfilePageComponent', () => {
describe('when the metadata form returns false and the security form returns false', () => { describe('when the metadata form returns false and the security form returns false', () => {
beforeEach(() => { beforeEach(() => {
component.metadataForm = jasmine.createSpyObj('metadataForm', { component.metadataForm = {
updateProfile: false, compRef: {
}); instance: {
updateProfile: () => false,
},
},
} as any;
component.updateProfile(); component.updateProfile();
}); });

View File

@@ -47,7 +47,7 @@ import {
import { NotificationsService } from '../shared/notifications/notifications.service'; import { NotificationsService } from '../shared/notifications/notifications.service';
import { followLink } from '../shared/utils/follow-link-config.model'; import { followLink } from '../shared/utils/follow-link-config.model';
import { VarDirective } from '../shared/utils/var.directive'; import { VarDirective } from '../shared/utils/var.directive';
import { ProfilePageMetadataFormComponent } from './profile-page-metadata-form/profile-page-metadata-form.component'; import { ThemedProfilePageMetadataFormComponent } from './profile-page-metadata-form/themed-profile-page-metadata-form.component';
import { ProfilePageResearcherFormComponent } from './profile-page-researcher-form/profile-page-researcher-form.component'; import { ProfilePageResearcherFormComponent } from './profile-page-researcher-form/profile-page-researcher-form.component';
import { ProfilePageSecurityFormComponent } from './profile-page-security-form/profile-page-security-form.component'; import { ProfilePageSecurityFormComponent } from './profile-page-security-form/profile-page-security-form.component';
@@ -56,7 +56,7 @@ import { ProfilePageSecurityFormComponent } from './profile-page-security-form/p
styleUrls: ['./profile-page.component.scss'], styleUrls: ['./profile-page.component.scss'],
templateUrl: './profile-page.component.html', templateUrl: './profile-page.component.html',
imports: [ imports: [
ProfilePageMetadataFormComponent, ThemedProfilePageMetadataFormComponent,
ProfilePageSecurityFormComponent, ProfilePageSecurityFormComponent,
AsyncPipe, AsyncPipe,
TranslateModule, TranslateModule,
@@ -75,7 +75,7 @@ export class ProfilePageComponent implements OnInit {
/** /**
* A reference to the metadata form component * A reference to the metadata form component
*/ */
@ViewChild(ProfilePageMetadataFormComponent) metadataForm: ProfilePageMetadataFormComponent; @ViewChild(ThemedProfilePageMetadataFormComponent) metadataForm: ThemedProfilePageMetadataFormComponent;
/** /**
* The authenticated user as observable * The authenticated user as observable
@@ -157,8 +157,8 @@ export class ProfilePageComponent implements OnInit {
* Fire an update on both the metadata and security forms * Fire an update on both the metadata and security forms
* Show a warning notification when no changes were made in both forms * Show a warning notification when no changes were made in both forms
*/ */
updateProfile() { updateProfile(): void {
const metadataChanged = this.metadataForm.updateProfile(); const metadataChanged = this.metadataForm.compRef.instance.updateProfile();
const securityChanged = this.updateSecurity(); const securityChanged = this.updateSecurity();
if (!metadataChanged && !securityChanged) { if (!metadataChanged && !securityChanged) {
this.notificationsService.warning( this.notificationsService.warning(

View File

@@ -30,7 +30,7 @@ export class ThemedComcolPageBrowseByComponent extends ThemedComponent<ComcolPag
} }
protected importThemedComponent(themeName: string): Promise<any> { protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../themes/${themeName}/app/shared/comcol-page-browse-by/comcol-page-browse-by.component`); return import(`../../../../themes/${themeName}/app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component`);
} }
protected importUnthemedComponent(): Promise<any> { protected importUnthemedComponent(): Promise<any> {

View File

@@ -12,7 +12,7 @@ import { TranslateModule } from '@ngx-translate/core';
* To see how it is used see collection-page or community-page. * To see how it is used see collection-page or community-page.
*/ */
@Component({ @Component({
selector: 'ds-comcol-page-content', selector: 'ds-base-comcol-page-content',
styleUrls: ['./comcol-page-content.component.scss'], styleUrls: ['./comcol-page-content.component.scss'],
templateUrl: './comcol-page-content.component.html', templateUrl: './comcol-page-content.component.html',
imports: [ imports: [
@@ -23,13 +23,19 @@ import { TranslateModule } from '@ngx-translate/core';
}) })
export class ComcolPageContentComponent { export class ComcolPageContentComponent {
// Optional title /**
* Optional title
*/
@Input() title: string; @Input() title: string;
// The content to render. Might be html /**
* The content to render. Might be html
*/
@Input() content: string; @Input() content: string;
// flag whether the content contains html syntax or not /**
* flag whether the content contains html syntax or not
*/
@Input() hasInnerHtml: boolean; @Input() hasInnerHtml: boolean;
} }

View File

@@ -0,0 +1,44 @@
import {
Component,
Input,
} from '@angular/core';
import { ThemedComponent } from '../../theme-support/themed.component';
import { ComcolPageContentComponent } from './comcol-page-content.component';
/**
* Themed wrapper for {@link ComcolPageContentComponent}
*/
@Component({
selector: 'ds-comcol-page-content',
templateUrl: '../../theme-support/themed.component.html',
standalone: true,
imports: [ComcolPageContentComponent],
})
export class ThemedComcolPageContentComponent extends ThemedComponent<ComcolPageContentComponent> {
@Input() title: string;
@Input() content: string;
@Input() hasInnerHtml: boolean;
protected inAndOutputNames: (keyof ComcolPageContentComponent & keyof this)[] = [
'title',
'content',
'hasInnerHtml',
];
protected getComponentName(): string {
return 'ComcolPageContentComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../themes/${themeName}/app/shared/comcol/comcol-page-content/comcol-page-content.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./comcol-page-content.component');
}
}

View File

@@ -1,7 +1,6 @@
import { NgIf } from '@angular/common'; import { NgIf } from '@angular/common';
import { import {
Component, Component,
Injectable,
Input, Input,
} from '@angular/core'; } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core'; import { TranslateModule } from '@ngx-translate/core';
@@ -14,11 +13,12 @@ import { TranslateModule } from '@ngx-translate/core';
selector: 'ds-base-comcol-page-handle', selector: 'ds-base-comcol-page-handle',
styleUrls: ['./comcol-page-handle.component.scss'], styleUrls: ['./comcol-page-handle.component.scss'],
templateUrl: './comcol-page-handle.component.html', templateUrl: './comcol-page-handle.component.html',
imports: [NgIf, TranslateModule], imports: [
NgIf,
TranslateModule,
],
standalone: true, standalone: true,
}) })
@Injectable()
export class ComcolPageHandleComponent { export class ComcolPageHandleComponent {
// Optional title // Optional title

View File

@@ -54,7 +54,7 @@ import {
* Used to choose a dso from to export metadata of * Used to choose a dso from to export metadata of
*/ */
@Component({ @Component({
selector: 'ds-export-metadata-selector', selector: 'ds-export-batch-selector',
templateUrl: '../dso-selector-modal-wrapper.component.html', templateUrl: '../dso-selector-modal-wrapper.component.html',
standalone: true, standalone: true,
imports: [NgIf, DSOSelectorComponent, TranslateModule], imports: [NgIf, DSOSelectorComponent, TranslateModule],

View File

@@ -17,10 +17,15 @@ import { SearchResult } from '../../../../search/models/search-result.model';
* This component show values for the given item metadata * This component show values for the given item metadata
*/ */
@Component({ @Component({
selector: 'ds-item-detail-preview-field', selector: 'ds-base-item-detail-preview-field',
templateUrl: './item-detail-preview-field.component.html', templateUrl: './item-detail-preview-field.component.html',
standalone: true, standalone: true,
imports: [MetadataFieldWrapperComponent, NgIf, NgFor, TranslateModule], imports: [
MetadataFieldWrapperComponent,
NgFor,
NgIf,
TranslateModule,
],
}) })
export class ItemDetailPreviewFieldComponent { export class ItemDetailPreviewFieldComponent {

View File

@@ -0,0 +1,54 @@
import {
Component,
Input,
} from '@angular/core';
import { Item } from '../../../../../core/shared/item.model';
import { SearchResult } from '../../../../search/models/search-result.model';
import { ThemedComponent } from '../../../../theme-support/themed.component';
import { ItemDetailPreviewFieldComponent } from './item-detail-preview-field.component';
/**
* Themed wrapper for {@link ItemDetailPreviewFieldComponent}
*/
@Component({
selector: 'ds-item-detail-preview-field',
templateUrl: '../../../../theme-support/themed.component.html',
standalone: true,
imports: [ItemDetailPreviewFieldComponent],
})
export class ThemedItemDetailPreviewFieldComponent extends ThemedComponent<ItemDetailPreviewFieldComponent> {
protected inAndOutputNames: (keyof ItemDetailPreviewFieldComponent & keyof this)[] = [
'item',
'object',
'label',
'metadata',
'placeholder',
'separator',
];
@Input() item: Item;
@Input() object: SearchResult<any>;
@Input() label: string;
@Input() metadata: string | string[];
@Input() placeholder: string;
@Input() separator: string;
protected getComponentName(): string {
return 'ItemDetailPreviewFieldComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../../../themes/${themeName}/app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview-field/item-detail-preview-field.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./item-detail-preview-field.component');
}
}

View File

@@ -28,7 +28,7 @@ import { ItemSubmitterComponent } from '../../../object-collection/shared/mydspa
import { SearchResult } from '../../../search/models/search-result.model'; import { SearchResult } from '../../../search/models/search-result.model';
import { FileSizePipe } from '../../../utils/file-size-pipe'; import { FileSizePipe } from '../../../utils/file-size-pipe';
import { VarDirective } from '../../../utils/var.directive'; import { VarDirective } from '../../../utils/var.directive';
import { ItemDetailPreviewFieldComponent } from './item-detail-preview-field/item-detail-preview-field.component'; import { ThemedItemDetailPreviewFieldComponent } from './item-detail-preview-field/themed-item-detail-preview-field.component';
/** /**
* This component show metadata for the given item object in the detail view. * This component show metadata for the given item object in the detail view.
@@ -39,7 +39,7 @@ import { ItemDetailPreviewFieldComponent } from './item-detail-preview-field/ite
templateUrl: './item-detail-preview.component.html', templateUrl: './item-detail-preview.component.html',
animations: [fadeInOut], animations: [fadeInOut],
standalone: true, standalone: true,
imports: [NgIf, ThemedBadgesComponent, ThemedItemPageTitleFieldComponent, MetadataFieldWrapperComponent, ThemedThumbnailComponent, VarDirective, NgFor, ItemDetailPreviewFieldComponent, ItemSubmitterComponent, AsyncPipe, FileSizePipe, TranslateModule], imports: [NgIf, ThemedBadgesComponent, ThemedItemPageTitleFieldComponent, MetadataFieldWrapperComponent, ThemedThumbnailComponent, VarDirective, NgFor, ThemedItemDetailPreviewFieldComponent, ItemSubmitterComponent, AsyncPipe, FileSizePipe, TranslateModule],
}) })
export class ItemDetailPreviewComponent { export class ItemDetailPreviewComponent {
/** /**

View File

@@ -139,7 +139,7 @@ describe('ItemListPreviewComponent', () => {
component.item = mockItemWithAuthorAndDate; component.item = mockItemWithAuthorAndDate;
fixture.detectChanges(); fixture.detectChanges();
}); });
it('should add the ds-thumbnail element', () => { it('should add the thumbnail element', () => {
const thumbnail = fixture.debugElement.query(By.css('ds-thumbnail')); const thumbnail = fixture.debugElement.query(By.css('ds-thumbnail'));
expect(thumbnail).toBeTruthy(); expect(thumbnail).toBeTruthy();
}); });
@@ -250,7 +250,7 @@ describe('ItemListPreviewComponent', () => {
component.item = mockItemWithAuthorAndDate; component.item = mockItemWithAuthorAndDate;
fixture.detectChanges(); fixture.detectChanges();
}); });
it('should add the ds-thumbnail element', () => { it('should add the thumbnail element', () => {
const thumbnail = fixture.debugElement.query(By.css('ds-thumbnail')); const thumbnail = fixture.debugElement.query(By.css('ds-thumbnail'));
expect(thumbnail).toBeFalsy(); expect(thumbnail).toBeFalsy();
}); });

View File

@@ -38,7 +38,19 @@ import { TruncatablePartComponent } from '../../../truncatable/truncatable-part/
templateUrl: 'item-list-preview.component.html', templateUrl: 'item-list-preview.component.html',
animations: [fadeInOut], animations: [fadeInOut],
standalone: true, standalone: true,
imports: [NgIf, ThemedThumbnailComponent, NgClass, ThemedBadgesComponent, TruncatableComponent, TruncatablePartComponent, NgFor, ItemSubmitterComponent, ItemCollectionComponent, AsyncPipe, TranslateModule], imports: [
AsyncPipe,
ItemCollectionComponent,
ItemSubmitterComponent,
NgClass,
NgFor,
NgIf,
ThemedBadgesComponent,
ThemedThumbnailComponent,
TranslateModule,
TruncatableComponent,
TruncatablePartComponent,
],
}) })
export class ItemListPreviewComponent implements OnInit { export class ItemListPreviewComponent implements OnInit {

View File

@@ -247,7 +247,7 @@ describe('ItemSearchResultListElementComponent', () => {
expect(publicationListElementComponent.showThumbnails).toBeTrue(); expect(publicationListElementComponent.showThumbnails).toBeTrue();
}); });
it('should add ds-thumbnail element', () => { it('should add thumbnail element', () => {
const thumbnailElement = fixture.debugElement.query(By.css('ds-thumbnail')); const thumbnailElement = fixture.debugElement.query(By.css('ds-thumbnail'));
expect(thumbnailElement).toBeTruthy(); expect(thumbnailElement).toBeTruthy();
}); });
@@ -428,7 +428,7 @@ describe('ItemSearchResultListElementComponent', () => {
fixture.detectChanges(); fixture.detectChanges();
}); });
it('should not add ds-thumbnail element', () => { it('should not add thumbnail element', () => {
const thumbnailElement = fixture.debugElement.query(By.css('ds-thumbnail')); const thumbnailElement = fixture.debugElement.query(By.css('ds-thumbnail'));
expect(thumbnailElement).toBeFalsy(); expect(thumbnailElement).toBeFalsy();
}); });

View File

@@ -17,7 +17,7 @@ import { SidebarSearchListElementComponent } from '../sidebar-search-list-elemen
@listableObjectComponent(CommunitySearchResult, ViewMode.ListElement, Context.SideBarSearchModal) @listableObjectComponent(CommunitySearchResult, ViewMode.ListElement, Context.SideBarSearchModal)
@listableObjectComponent(CommunitySearchResult, ViewMode.ListElement, Context.SideBarSearchModalCurrent) @listableObjectComponent(CommunitySearchResult, ViewMode.ListElement, Context.SideBarSearchModalCurrent)
@Component({ @Component({
selector: 'ds-collection-sidebar-search-list-element', selector: 'ds-community-sidebar-search-list-element',
templateUrl: '../sidebar-search-list-element.component.html', templateUrl: '../sidebar-search-list-element.component.html',
standalone: true, standalone: true,
imports: [TruncatablePartComponent, NgClass, NgIf, AsyncPipe, TranslateModule], imports: [TruncatablePartComponent, NgClass, NgIf, AsyncPipe, TranslateModule],

View File

@@ -88,7 +88,18 @@ import { SearchConfigurationOption } from './search-switch-configuration/search-
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
animations: [pushInOut], animations: [pushInOut],
standalone: true, standalone: true,
imports: [NgIf, NgTemplateOutlet, PageWithSidebarComponent, ViewModeSwitchComponent, ThemedSearchResultsComponent, ThemedSearchSidebarComponent, ThemedSearchFormComponent, SearchLabelsComponent, AsyncPipe, TranslateModule], imports: [
AsyncPipe,
NgIf,
NgTemplateOutlet,
PageWithSidebarComponent,
ThemedSearchFormComponent,
ThemedSearchResultsComponent,
ThemedSearchSidebarComponent,
TranslateModule,
SearchLabelsComponent,
ViewModeSwitchComponent,
],
}) })
/** /**

View File

@@ -43,7 +43,7 @@ import { ThemeService } from './theme.service';
export abstract class ThemedComponent<T extends object> implements AfterViewInit, OnDestroy, OnChanges { export abstract class ThemedComponent<T extends object> implements AfterViewInit, OnDestroy, OnChanges {
@ViewChild('vcr', { read: ViewContainerRef }) vcr: ViewContainerRef; @ViewChild('vcr', { read: ViewContainerRef }) vcr: ViewContainerRef;
@ViewChild('content') themedElementContent: ElementRef; @ViewChild('content') themedElementContent: ElementRef;
protected compRef: ComponentRef<T>; compRef: ComponentRef<T>;
/** /**
* A reference to the themed component. Will start as undefined and emit every time the themed * A reference to the themed component. Will start as undefined and emit every time the themed

View File

@@ -45,7 +45,7 @@ import { SubmissionFormCollectionComponent } from './collection/submission-form-
import { SubmissionFormFooterComponent } from './footer/submission-form-footer.component'; import { SubmissionFormFooterComponent } from './footer/submission-form-footer.component';
import { SubmissionFormSectionAddComponent } from './section-add/submission-form-section-add.component'; import { SubmissionFormSectionAddComponent } from './section-add/submission-form-section-add.component';
import { SubmissionFormComponent } from './submission-form.component'; import { SubmissionFormComponent } from './submission-form.component';
import { SubmissionUploadFilesComponent } from './submission-upload-files/submission-upload-files.component'; import { ThemedSubmissionUploadFilesComponent } from './submission-upload-files/themed-submission-upload-files.component';
describe('SubmissionFormComponent Component', () => { describe('SubmissionFormComponent Component', () => {
@@ -86,7 +86,7 @@ describe('SubmissionFormComponent Component', () => {
ThemedLoadingComponent, ThemedLoadingComponent,
SubmissionSectionContainerComponent, SubmissionSectionContainerComponent,
SubmissionFormFooterComponent, SubmissionFormFooterComponent,
SubmissionUploadFilesComponent, ThemedSubmissionUploadFilesComponent,
SubmissionFormCollectionComponent, SubmissionFormCollectionComponent,
SubmissionFormSectionAddComponent, SubmissionFormSectionAddComponent,
] }, ] },

View File

@@ -22,6 +22,10 @@ import {
import { AuthService } from '../../core/auth/auth.service'; import { AuthService } from '../../core/auth/auth.service';
import { SubmissionDefinitionsModel } from '../../core/config/models/config-submission-definitions.model'; import { SubmissionDefinitionsModel } from '../../core/config/models/config-submission-definitions.model';
import {
SubmissionSectionModel,
SubmissionSectionVisibility,
} from '../../core/config/models/config-submission-section.model';
import { Collection } from '../../core/shared/collection.model'; import { Collection } from '../../core/shared/collection.model';
import { HALEndpointService } from '../../core/shared/hal-endpoint.service'; import { HALEndpointService } from '../../core/shared/hal-endpoint.service';
import { Item } from '../../core/shared/item.model'; import { Item } from '../../core/shared/item.model';
@@ -42,14 +46,10 @@ import { SectionsService } from '../sections/sections.service';
import { SectionsType } from '../sections/sections-type'; import { SectionsType } from '../sections/sections-type';
import { VisibilityType } from '../sections/visibility-type'; import { VisibilityType } from '../sections/visibility-type';
import { SubmissionService } from '../submission.service'; import { SubmissionService } from '../submission.service';
import {
SubmissionSectionModel,
SubmissionSectionVisibility,
} from './../../core/config/models/config-submission-section.model';
import { SubmissionFormCollectionComponent } from './collection/submission-form-collection.component'; import { SubmissionFormCollectionComponent } from './collection/submission-form-collection.component';
import { SubmissionFormFooterComponent } from './footer/submission-form-footer.component'; import { SubmissionFormFooterComponent } from './footer/submission-form-footer.component';
import { SubmissionFormSectionAddComponent } from './section-add/submission-form-section-add.component'; import { SubmissionFormSectionAddComponent } from './section-add/submission-form-section-add.component';
import { SubmissionUploadFilesComponent } from './submission-upload-files/submission-upload-files.component'; import { ThemedSubmissionUploadFilesComponent } from './submission-upload-files/themed-submission-upload-files.component';
/** /**
* This component represents the submission form. * This component represents the submission form.
@@ -63,7 +63,7 @@ import { SubmissionUploadFilesComponent } from './submission-upload-files/submis
ThemedLoadingComponent, ThemedLoadingComponent,
SubmissionSectionContainerComponent, SubmissionSectionContainerComponent,
SubmissionFormFooterComponent, SubmissionFormFooterComponent,
SubmissionUploadFilesComponent, ThemedSubmissionUploadFilesComponent,
SubmissionFormCollectionComponent, SubmissionFormCollectionComponent,
SubmissionFormSectionAddComponent, SubmissionFormSectionAddComponent,
], ],
@@ -81,7 +81,7 @@ export class SubmissionFormComponent implements OnChanges, OnDestroy {
/** /**
* Checks if the collection can be modifiable by the user * Checks if the collection can be modifiable by the user
* @type {booelan} * @type {boolean}
*/ */
@Input() collectionModifiable: boolean | null = null; @Input() collectionModifiable: boolean | null = null;

View File

@@ -35,7 +35,7 @@ import parseSectionErrors from '../../utils/parseSectionErrors';
* This component represents the drop zone that provides to add files to the submission. * This component represents the drop zone that provides to add files to the submission.
*/ */
@Component({ @Component({
selector: 'ds-submission-upload-files', selector: 'ds-base-submission-upload-files',
templateUrl: './submission-upload-files.component.html', templateUrl: './submission-upload-files.component.html',
imports: [ imports: [
UploaderComponent, UploaderComponent,

View File

@@ -0,0 +1,44 @@
import {
Component,
Input,
} from '@angular/core';
import { ThemedComponent } from '../../../shared/theme-support/themed.component';
import { UploaderOptions } from '../../../shared/upload/uploader/uploader-options.model';
import { SubmissionUploadFilesComponent } from './submission-upload-files.component';
/**
* Themed wrapper for {@link SubmissionUploadFilesComponent}
*/
@Component({
selector: 'ds-submission-upload-files',
templateUrl: '../../../shared/theme-support/themed.component.html',
standalone: true,
imports: [SubmissionUploadFilesComponent],
})
export class ThemedSubmissionUploadFilesComponent extends ThemedComponent<SubmissionUploadFilesComponent> {
@Input() collectionId: string;
@Input() submissionId: string;
@Input() uploadFilesOptions: UploaderOptions;
protected inAndOutputNames: (keyof SubmissionUploadFilesComponent & keyof this)[] = [
'collectionId',
'submissionId',
'uploadFilesOptions',
];
protected getComponentName(): string {
return 'SubmissionUploadFilesComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../themes/${themeName}/app/submission/form/submission-upload-files/submission-upload-files.component.ts`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./submission-upload-files.component');
}
}

View File

@@ -4,9 +4,8 @@ import { ThemedComponent } from '../../shared/theme-support/themed.component';
import { WorkspaceItemsDeletePageComponent } from './workspaceitems-delete-page.component'; import { WorkspaceItemsDeletePageComponent } from './workspaceitems-delete-page.component';
/** /**
* Themed wrapper for WorkspaceItemsDeletePageComponent * Themed wrapper for {@link WorkspaceItemsDeletePageComponent}
*/ */
@Component({ @Component({
selector: 'ds-workspace-items-delete', selector: 'ds-workspace-items-delete',
styleUrls: [], styleUrls: [],
@@ -20,10 +19,10 @@ export class ThemedWorkspaceItemsDeletePageComponent extends ThemedComponent<Wor
} }
protected importThemedComponent(themeName: string): Promise<any> { protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component`); return import(`../../../themes/${themeName}/app/workspaceitems-edit-page/workspaceitems-delete-page/workspaceitems-delete-page.component`);
} }
protected importUnthemedComponent(): Promise<any> { protected importUnthemedComponent(): Promise<any> {
return import(`./workspaceitems-delete-page.component`); return import('./workspaceitems-delete-page.component');
} }
} }

View File

@@ -0,0 +1,20 @@
import { Component } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { TranslateModule } from '@ngx-translate/core';
import { MetadataImportPageComponent as BaseComponent } from '../../../../../app/admin/admin-import-metadata-page/metadata-import-page.component';
import { FileDropzoneNoUploaderComponent } from '../../../../../app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component';
@Component({
selector: 'ds-themed-metadata-import-page',
// templateUrl: './metadata-import-page.component.html',
templateUrl: '../../../../../app/admin/admin-import-metadata-page/metadata-import-page.component.html',
standalone: true,
imports: [
FileDropzoneNoUploaderComponent,
FormsModule,
TranslateModule,
],
})
export class MetadataImportPageComponent extends BaseComponent {
}

View File

@@ -8,7 +8,7 @@ import { TranslateModule } from '@ngx-translate/core';
import { BrowseByDateComponent as BaseComponent } from '../../../../../app/browse-by/browse-by-date/browse-by-date.component'; import { BrowseByDateComponent as BaseComponent } from '../../../../../app/browse-by/browse-by-date/browse-by-date.component';
import { ThemedBrowseByComponent } from '../../../../../app/shared/browse-by/themed-browse-by.component'; import { ThemedBrowseByComponent } from '../../../../../app/shared/browse-by/themed-browse-by.component';
import { ThemedComcolPageBrowseByComponent } from '../../../../../app/shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component'; import { ThemedComcolPageBrowseByComponent } from '../../../../../app/shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component';
import { ComcolPageContentComponent } from '../../../../../app/shared/comcol/comcol-page-content/comcol-page-content.component'; import { ThemedComcolPageContentComponent } from '../../../../../app/shared/comcol/comcol-page-content/themed-comcol-page-content.component';
import { ThemedComcolPageHandleComponent } from '../../../../../app/shared/comcol/comcol-page-handle/themed-comcol-page-handle.component'; import { ThemedComcolPageHandleComponent } from '../../../../../app/shared/comcol/comcol-page-handle/themed-comcol-page-handle.component';
import { ComcolPageHeaderComponent } from '../../../../../app/shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../../../../../app/shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../../../../app/shared/comcol/comcol-page-logo/comcol-page-logo.component'; import { ComcolPageLogoComponent } from '../../../../../app/shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -30,7 +30,7 @@ import { VarDirective } from '../../../../../app/shared/utils/var.directive';
ComcolPageLogoComponent, ComcolPageLogoComponent,
NgIf, NgIf,
ThemedComcolPageHandleComponent, ThemedComcolPageHandleComponent,
ComcolPageContentComponent, ThemedComcolPageContentComponent,
DsoEditMenuComponent, DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent, ThemedComcolPageBrowseByComponent,
TranslateModule, TranslateModule,

View File

@@ -8,7 +8,7 @@ import { TranslateModule } from '@ngx-translate/core';
import { BrowseByMetadataComponent as BaseComponent } from '../../../../../app/browse-by/browse-by-metadata/browse-by-metadata.component'; import { BrowseByMetadataComponent as BaseComponent } from '../../../../../app/browse-by/browse-by-metadata/browse-by-metadata.component';
import { ThemedBrowseByComponent } from '../../../../../app/shared/browse-by/themed-browse-by.component'; import { ThemedBrowseByComponent } from '../../../../../app/shared/browse-by/themed-browse-by.component';
import { ThemedComcolPageBrowseByComponent } from '../../../../../app/shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component'; import { ThemedComcolPageBrowseByComponent } from '../../../../../app/shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component';
import { ComcolPageContentComponent } from '../../../../../app/shared/comcol/comcol-page-content/comcol-page-content.component'; import { ThemedComcolPageContentComponent } from '../../../../../app/shared/comcol/comcol-page-content/themed-comcol-page-content.component';
import { ThemedComcolPageHandleComponent } from '../../../../../app/shared/comcol/comcol-page-handle/themed-comcol-page-handle.component'; import { ThemedComcolPageHandleComponent } from '../../../../../app/shared/comcol/comcol-page-handle/themed-comcol-page-handle.component';
import { ComcolPageHeaderComponent } from '../../../../../app/shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../../../../../app/shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../../../../app/shared/comcol/comcol-page-logo/comcol-page-logo.component'; import { ComcolPageLogoComponent } from '../../../../../app/shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -30,7 +30,7 @@ import { VarDirective } from '../../../../../app/shared/utils/var.directive';
ComcolPageLogoComponent, ComcolPageLogoComponent,
NgIf, NgIf,
ThemedComcolPageHandleComponent, ThemedComcolPageHandleComponent,
ComcolPageContentComponent, ThemedComcolPageContentComponent,
DsoEditMenuComponent, DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent, ThemedComcolPageBrowseByComponent,
TranslateModule, TranslateModule,

View File

@@ -9,7 +9,7 @@ import { TranslateModule } from '@ngx-translate/core';
import { BrowseByTaxonomyComponent as BaseComponent } from '../../../../../app/browse-by/browse-by-taxonomy/browse-by-taxonomy.component'; import { BrowseByTaxonomyComponent as BaseComponent } from '../../../../../app/browse-by/browse-by-taxonomy/browse-by-taxonomy.component';
import { ThemedBrowseByComponent } from '../../../../../app/shared/browse-by/themed-browse-by.component'; import { ThemedBrowseByComponent } from '../../../../../app/shared/browse-by/themed-browse-by.component';
import { ThemedComcolPageBrowseByComponent } from '../../../../../app/shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component'; import { ThemedComcolPageBrowseByComponent } from '../../../../../app/shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component';
import { ComcolPageContentComponent } from '../../../../../app/shared/comcol/comcol-page-content/comcol-page-content.component'; import { ThemedComcolPageContentComponent } from '../../../../../app/shared/comcol/comcol-page-content/themed-comcol-page-content.component';
import { ThemedComcolPageHandleComponent } from '../../../../../app/shared/comcol/comcol-page-handle/themed-comcol-page-handle.component'; import { ThemedComcolPageHandleComponent } from '../../../../../app/shared/comcol/comcol-page-handle/themed-comcol-page-handle.component';
import { ComcolPageHeaderComponent } from '../../../../../app/shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../../../../../app/shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../../../../app/shared/comcol/comcol-page-logo/comcol-page-logo.component'; import { ComcolPageLogoComponent } from '../../../../../app/shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -32,7 +32,7 @@ import { VarDirective } from '../../../../../app/shared/utils/var.directive';
ComcolPageLogoComponent, ComcolPageLogoComponent,
NgIf, NgIf,
ThemedComcolPageHandleComponent, ThemedComcolPageHandleComponent,
ComcolPageContentComponent, ThemedComcolPageContentComponent,
DsoEditMenuComponent, DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent, ThemedComcolPageBrowseByComponent,
TranslateModule, TranslateModule,

View File

@@ -8,7 +8,7 @@ import { TranslateModule } from '@ngx-translate/core';
import { BrowseByTitleComponent as BaseComponent } from '../../../../../app/browse-by/browse-by-title/browse-by-title.component'; import { BrowseByTitleComponent as BaseComponent } from '../../../../../app/browse-by/browse-by-title/browse-by-title.component';
import { ThemedBrowseByComponent } from '../../../../../app/shared/browse-by/themed-browse-by.component'; import { ThemedBrowseByComponent } from '../../../../../app/shared/browse-by/themed-browse-by.component';
import { ThemedComcolPageBrowseByComponent } from '../../../../../app/shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component'; import { ThemedComcolPageBrowseByComponent } from '../../../../../app/shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component';
import { ComcolPageContentComponent } from '../../../../../app/shared/comcol/comcol-page-content/comcol-page-content.component'; import { ThemedComcolPageContentComponent } from '../../../../../app/shared/comcol/comcol-page-content/themed-comcol-page-content.component';
import { ThemedComcolPageHandleComponent } from '../../../../../app/shared/comcol/comcol-page-handle/themed-comcol-page-handle.component'; import { ThemedComcolPageHandleComponent } from '../../../../../app/shared/comcol/comcol-page-handle/themed-comcol-page-handle.component';
import { ComcolPageHeaderComponent } from '../../../../../app/shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../../../../../app/shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../../../../app/shared/comcol/comcol-page-logo/comcol-page-logo.component'; import { ComcolPageLogoComponent } from '../../../../../app/shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -30,7 +30,7 @@ import { VarDirective } from '../../../../../app/shared/utils/var.directive';
ComcolPageLogoComponent, ComcolPageLogoComponent,
NgIf, NgIf,
ThemedComcolPageHandleComponent, ThemedComcolPageHandleComponent,
ComcolPageContentComponent, ThemedComcolPageContentComponent,
DsoEditMenuComponent, DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent, ThemedComcolPageBrowseByComponent,
TranslateModule, TranslateModule,

View File

@@ -15,7 +15,7 @@ import {
fadeInOut, fadeInOut,
} from '../../../../app/shared/animations/fade'; } from '../../../../app/shared/animations/fade';
import { ThemedComcolPageBrowseByComponent } from '../../../../app/shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component'; import { ThemedComcolPageBrowseByComponent } from '../../../../app/shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component';
import { ComcolPageContentComponent } from '../../../../app/shared/comcol/comcol-page-content/comcol-page-content.component'; import { ThemedComcolPageContentComponent } from '../../../../app/shared/comcol/comcol-page-content/themed-comcol-page-content.component';
import { ThemedComcolPageHandleComponent } from '../../../../app/shared/comcol/comcol-page-handle/themed-comcol-page-handle.component'; import { ThemedComcolPageHandleComponent } from '../../../../app/shared/comcol/comcol-page-handle/themed-comcol-page-handle.component';
import { ComcolPageHeaderComponent } from '../../../../app/shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../../../../app/shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../../../app/shared/comcol/comcol-page-logo/comcol-page-logo.component'; import { ComcolPageLogoComponent } from '../../../../app/shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -26,7 +26,6 @@ import { ObjectCollectionComponent } from '../../../../app/shared/object-collect
import { VarDirective } from '../../../../app/shared/utils/var.directive'; import { VarDirective } from '../../../../app/shared/utils/var.directive';
import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dspace/view-tracker.component'; import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dspace/view-tracker.component';
@Component({ @Component({
selector: 'ds-themed-collection-page', selector: 'ds-themed-collection-page',
// templateUrl: './collection-page.component.html', // templateUrl: './collection-page.component.html',
@@ -40,7 +39,7 @@ import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dsp
], ],
standalone: true, standalone: true,
imports: [ imports: [
ComcolPageContentComponent, ThemedComcolPageContentComponent,
ErrorComponent, ErrorComponent,
NgIf, NgIf,
ThemedLoadingComponent, ThemedLoadingComponent,
@@ -60,4 +59,5 @@ import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dsp
/** /**
* This component represents a detail page for a single collection * This component represents a detail page for a single collection
*/ */
export class CollectionPageComponent extends BaseComponent {} export class CollectionPageComponent extends BaseComponent {
}

View File

@@ -17,7 +17,7 @@ import { ThemedCollectionPageSubCollectionListComponent } from '../../../../app/
import { ThemedCommunityPageSubCommunityListComponent } from '../../../../app/community-page/sections/sub-com-col-section/sub-community-list/themed-community-page-sub-community-list.component'; import { ThemedCommunityPageSubCommunityListComponent } from '../../../../app/community-page/sections/sub-com-col-section/sub-community-list/themed-community-page-sub-community-list.component';
import { fadeInOut } from '../../../../app/shared/animations/fade'; import { fadeInOut } from '../../../../app/shared/animations/fade';
import { ThemedComcolPageBrowseByComponent } from '../../../../app/shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component'; import { ThemedComcolPageBrowseByComponent } from '../../../../app/shared/comcol/comcol-page-browse-by/themed-comcol-page-browse-by.component';
import { ComcolPageContentComponent } from '../../../../app/shared/comcol/comcol-page-content/comcol-page-content.component'; import { ThemedComcolPageContentComponent } from '../../../../app/shared/comcol/comcol-page-content/themed-comcol-page-content.component';
import { ThemedComcolPageHandleComponent } from '../../../../app/shared/comcol/comcol-page-handle/themed-comcol-page-handle.component'; import { ThemedComcolPageHandleComponent } from '../../../../app/shared/comcol/comcol-page-handle/themed-comcol-page-handle.component';
import { ComcolPageHeaderComponent } from '../../../../app/shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../../../../app/shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../../../app/shared/comcol/comcol-page-logo/comcol-page-logo.component'; import { ComcolPageLogoComponent } from '../../../../app/shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -27,7 +27,6 @@ import { ThemedLoadingComponent } from '../../../../app/shared/loading/themed-lo
import { VarDirective } from '../../../../app/shared/utils/var.directive'; import { VarDirective } from '../../../../app/shared/utils/var.directive';
import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dspace/view-tracker.component'; import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dspace/view-tracker.component';
@Component({ @Component({
selector: 'ds-themed-community-page', selector: 'ds-themed-community-page',
// templateUrl: './community-page.component.html', // templateUrl: './community-page.component.html',
@@ -38,7 +37,7 @@ import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dsp
animations: [fadeInOut], animations: [fadeInOut],
standalone: true, standalone: true,
imports: [ imports: [
ComcolPageContentComponent, ThemedComcolPageContentComponent,
ErrorComponent, ErrorComponent,
ThemedLoadingComponent, ThemedLoadingComponent,
NgIf, NgIf,
@@ -60,4 +59,5 @@ import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dsp
/** /**
* This component represents a detail page for a single community * This component represents a detail page for a single community
*/ */
export class CommunityPageComponent extends BaseComponent {} export class CommunityPageComponent extends BaseComponent {
}

View File

@@ -14,9 +14,9 @@ import { VarDirective } from '../../../../../../../app/shared/utils/var.directiv
@Component({ @Component({
selector: 'ds-themed-community-page-sub-collection-list', selector: 'ds-themed-community-page-sub-collection-list',
// styleUrls: ['./community-page-sub-collection-list.component.scss'], // styleUrls: ['./community-page-sub-collection-list.component.scss'],
styleUrls: ['../../../../../app/community-page/sections/sub-com-col-section/sub-collection-list/community-page-sub-collection-list.component.scss'], styleUrls: ['../../../../../../../app/community-page/sections/sub-com-col-section/sub-collection-list/community-page-sub-collection-list.component.scss'],
// templateUrl: './community-page-sub-collection-list.component.html', // templateUrl: './community-page-sub-collection-list.component.html',
templateUrl: '../../../../../app/community-page/sections/sub-com-col-section/sub-collection-list/community-page-sub-collection-list.component.html', templateUrl: '../../../../../../../app/community-page/sections/sub-com-col-section/sub-collection-list/community-page-sub-collection-list.component.html',
imports: [ imports: [
ObjectCollectionComponent, ObjectCollectionComponent,
ErrorComponent, ErrorComponent,

View File

@@ -14,7 +14,7 @@ import { LoginPageComponent as BaseComponent } from '../../../../app/login-page/
// templateUrl: './login-page.component.html' // templateUrl: './login-page.component.html'
templateUrl: '../../../../app/login-page/login-page.component.html', templateUrl: '../../../../app/login-page/login-page.component.html',
standalone: true, standalone: true,
imports: [ThemedLogInComponent ,TranslateModule], imports: [ThemedLogInComponent, TranslateModule],
}) })
export class LoginPageComponent extends BaseComponent { export class LoginPageComponent extends BaseComponent {
} }

View File

@@ -0,0 +1,18 @@
import { NgIf } from '@angular/common';
import { Component } from '@angular/core';
import { ProfilePageMetadataFormComponent as BaseComponent } from '../../../../../app/profile-page/profile-page-metadata-form/profile-page-metadata-form.component';
import { FormComponent } from '../../../../../app/shared/form/form.component';
@Component({
selector: 'ds-themed-profile-page-metadata-form',
templateUrl: '../../../../../app/profile-page/profile-page-metadata-form/profile-page-metadata-form.component.html',
// templateUrl: './profile-page-metadata-form.component.html',
imports: [
FormComponent,
NgIf,
],
standalone: true,
})
export class ProfilePageMetadataFormComponent extends BaseComponent {
}

View File

@@ -8,7 +8,7 @@ import { TranslateModule } from '@ngx-translate/core';
import { SuggestionsNotificationComponent } from '../../../../app/notifications/suggestions-notification/suggestions-notification.component'; import { SuggestionsNotificationComponent } from '../../../../app/notifications/suggestions-notification/suggestions-notification.component';
import { ProfilePageComponent as BaseComponent } from '../../../../app/profile-page/profile-page.component'; import { ProfilePageComponent as BaseComponent } from '../../../../app/profile-page/profile-page.component';
import { ProfilePageMetadataFormComponent } from '../../../../app/profile-page/profile-page-metadata-form/profile-page-metadata-form.component'; import { ThemedProfilePageMetadataFormComponent } from '../../../../app/profile-page/profile-page-metadata-form/themed-profile-page-metadata-form.component';
import { ProfilePageResearcherFormComponent } from '../../../../app/profile-page/profile-page-researcher-form/profile-page-researcher-form.component'; import { ProfilePageResearcherFormComponent } from '../../../../app/profile-page/profile-page-researcher-form/profile-page-researcher-form.component';
import { ProfilePageSecurityFormComponent } from '../../../../app/profile-page/profile-page-security-form/profile-page-security-form.component'; import { ProfilePageSecurityFormComponent } from '../../../../app/profile-page/profile-page-security-form/profile-page-security-form.component';
import { VarDirective } from '../../../../app/shared/utils/var.directive'; import { VarDirective } from '../../../../app/shared/utils/var.directive';
@@ -21,7 +21,7 @@ import { VarDirective } from '../../../../app/shared/utils/var.directive';
templateUrl: '../../../../app/profile-page/profile-page.component.html', templateUrl: '../../../../app/profile-page/profile-page.component.html',
standalone: true, standalone: true,
imports: [ imports: [
ProfilePageMetadataFormComponent, ThemedProfilePageMetadataFormComponent,
ProfilePageSecurityFormComponent, ProfilePageSecurityFormComponent,
AsyncPipe, AsyncPipe,
TranslateModule, TranslateModule,

View File

@@ -1,21 +0,0 @@
import { NgIf } from '@angular/common';
import { Component } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
import { ComcolPageHandleComponent as BaseComponent } from '../../../../../app/shared/comcol/comcol-page-handle/comcol-page-handle.component';
/**
* This component builds a URL from the value of "handle"
*/
@Component({
selector: 'ds-base-comcol-page-handle',
// templateUrl: './comcol-page-handle.component.html',
templateUrl: '../../../../../app/shared/comcol/comcol-page-handle/comcol-page-handle.component.html',
// styleUrls: ['./comcol-page-handle.component.scss'],
styleUrls: ['../../../../../app/shared/comcol/comcol-page-handle/comcol-page-handle.component.scss'],
standalone: true,
imports: [NgIf, TranslateModule],
})
export class ComcolPageHandleComponent extends BaseComponent {}

View File

@@ -11,18 +11,14 @@ import {
} from '@angular/router'; } from '@angular/router';
import { TranslateModule } from '@ngx-translate/core'; import { TranslateModule } from '@ngx-translate/core';
import { ComcolPageBrowseByComponent as BaseComponent } from '../../../../../app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component'; import { ComcolPageBrowseByComponent as BaseComponent } from '../../../../../../app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component';
/**
* A component to display the "Browse By" section of a Community or Collection page
* It expects the ID of the Community or Collection as input to be passed on as a scope
*/
@Component({ @Component({
selector: 'ds-base-comcol-page-browse-by', selector: 'ds-themed-comcol-page-browse-by',
// styleUrls: ['./comcol-page-browse-by.component.scss'], // styleUrls: ['./comcol-page-browse-by.component.scss'],
styleUrls: ['../../../../../app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.scss'], styleUrls: ['../../../../../../app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.scss'],
// templateUrl: './comcol-page-browse-by.component.html' // templateUrl: './comcol-page-browse-by.component.html'
templateUrl: '../../../../../app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.html', templateUrl: '../../../../../../app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component.html',
standalone: true, standalone: true,
imports: [ imports: [
FormsModule, FormsModule,
@@ -34,4 +30,5 @@ import { ComcolPageBrowseByComponent as BaseComponent } from '../../../../../app
NgIf, NgIf,
], ],
}) })
export class ComcolPageBrowseByComponent extends BaseComponent {} export class ComcolPageBrowseByComponent extends BaseComponent {
}

View File

@@ -0,0 +1,20 @@
import { NgIf } from '@angular/common';
import { Component } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
import { ComcolPageContentComponent as BaseComponent } from '../../../../../../app/shared/comcol/comcol-page-content/comcol-page-content.component';
@Component({
selector: 'ds-themed-comcol-page-content',
// styleUrls: ['./comcol-page-content.component.scss'],
styleUrls: ['../../../../../../app/shared/comcol/comcol-page-content/comcol-page-content.component.scss'],
// templateUrl: './comcol-page-content.component.html',
templateUrl: '../../../../../../app/shared/comcol/comcol-page-content/comcol-page-content.component.html',
imports: [
TranslateModule,
NgIf,
],
standalone: true,
})
export class ComcolPageContentComponent extends BaseComponent {
}

View File

@@ -0,0 +1,20 @@
import { NgIf } from '@angular/common';
import { Component } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
import { ComcolPageHandleComponent as BaseComponent } from '../../../../../../app/shared/comcol/comcol-page-handle/comcol-page-handle.component';
@Component({
selector: 'ds-themed-comcol-page-handle',
// templateUrl: './comcol-page-handle.component.html',
templateUrl: '../../../../../../app/shared/comcol/comcol-page-handle/comcol-page-handle.component.html',
// styleUrls: ['./comcol-page-handle.component.scss'],
styleUrls: ['../../../../../../app/shared/comcol/comcol-page-handle/comcol-page-handle.component.scss'],
standalone: true,
imports: [
NgIf,
TranslateModule,
],
})
export class ComcolPageHandleComponent extends BaseComponent {
}

View File

@@ -0,0 +1,24 @@
import {
NgFor,
NgIf,
} from '@angular/common';
import { Component } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
import { MetadataFieldWrapperComponent } from '../../../../../../../../app/shared/metadata-field-wrapper/metadata-field-wrapper.component';
import { ItemDetailPreviewFieldComponent as BaseComponent } from '../../../../../../../../app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview-field/item-detail-preview-field.component';
@Component({
selector: 'ds-themed-item-detail-preview-field',
// templateUrl: './item-detail-preview-field.component.html',
templateUrl: '../../../../../../../../app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview-field/item-detail-preview-field.component.html',
standalone: true,
imports: [
MetadataFieldWrapperComponent,
NgFor,
NgIf,
TranslateModule,
],
})
export class ItemDetailPreviewFieldComponent extends BaseComponent {
}

View File

@@ -0,0 +1,42 @@
import {
AsyncPipe,
NgClass,
NgFor,
NgIf,
} from '@angular/common';
import { Component } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
import { fadeInOut } from '../../../../../../../app/shared/animations/fade';
import { ThemedBadgesComponent } from '../../../../../../../app/shared/object-collection/shared/badges/themed-badges.component';
import { ItemCollectionComponent } from '../../../../../../../app/shared/object-collection/shared/mydspace-item-collection/item-collection.component';
import { ItemSubmitterComponent } from '../../../../../../../app/shared/object-collection/shared/mydspace-item-submitter/item-submitter.component';
import { ItemListPreviewComponent as BaseComponent } from '../../../../../../../app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component';
import { TruncatableComponent } from '../../../../../../../app/shared/truncatable/truncatable.component';
import { TruncatablePartComponent } from '../../../../../../../app/shared/truncatable/truncatable-part/truncatable-part.component';
import { ThemedThumbnailComponent } from '../../../../../../../app/thumbnail/themed-thumbnail.component';
@Component({
selector: 'ds-themed-item-list-preview',
// styleUrls: ['./item-list-preview.component.scss'],
styleUrls: ['../../../../../../../app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.scss'],
// templateUrl: './item-list-preview.component.html',
templateUrl: '../../../../../../../app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html',
animations: [fadeInOut],
standalone: true,
imports: [
AsyncPipe,
ItemCollectionComponent,
ItemSubmitterComponent,
NgClass,
NgFor,
NgIf,
ThemedBadgesComponent,
ThemedThumbnailComponent,
TranslateModule,
TruncatableComponent,
TruncatablePartComponent,
],
})
export class ItemListPreviewComponent extends BaseComponent {
}

View File

@@ -6,12 +6,12 @@ import {
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core'; import { TranslateModule } from '@ngx-translate/core';
import { Context } from '../../../../../../../app/core/shared/context.model'; import { Context } from '../../../../../../../../app/core/shared/context.model';
import { ViewMode } from '../../../../../../../app/core/shared/view-mode.model'; import { ViewMode } from '../../../../../../../../app/core/shared/view-mode.model';
import { ItemSearchResult } from '../../../../../../../app/shared/object-collection/shared/item-search-result.model'; import { ItemSearchResult } from '../../../../../../../../app/shared/object-collection/shared/item-search-result.model';
import { listableObjectComponent } from '../../../../../../../app/shared/object-collection/shared/listable-object/listable-object.decorator'; import { listableObjectComponent } from '../../../../../../../../app/shared/object-collection/shared/listable-object/listable-object.decorator';
import { PublicationSidebarSearchListElementComponent as BaseComponent } from '../../../../../../../app/shared/object-list/sidebar-search-list-element/item-types/publication/publication-sidebar-search-list-element.component'; import { PublicationSidebarSearchListElementComponent as BaseComponent } from '../../../../../../../../app/shared/object-list/sidebar-search-list-element/item-types/publication/publication-sidebar-search-list-element.component';
import { TruncatablePartComponent } from '../../../../../../../app/shared/truncatable/truncatable-part/truncatable-part.component'; import { TruncatablePartComponent } from '../../../../../../../../app/shared/truncatable/truncatable-part/truncatable-part.component';
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.SideBarSearchModal, 'custom') @listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.SideBarSearchModal, 'custom')
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.SideBarSearchModalCurrent, 'custom') @listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.SideBarSearchModalCurrent, 'custom')
@@ -20,7 +20,7 @@ import { TruncatablePartComponent } from '../../../../../../../app/shared/trunca
@Component({ @Component({
selector: 'ds-publication-sidebar-search-list-element', selector: 'ds-publication-sidebar-search-list-element',
// templateUrl: './publication-sidebar-search-list-element.component.html', // templateUrl: './publication-sidebar-search-list-element.component.html',
templateUrl: '../../../../../../../app/shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.html', templateUrl: '../../../../../../../../app/shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.html',
standalone: true, standalone: true,
imports: [TruncatablePartComponent, NgClass, NgIf, AsyncPipe, TranslateModule], imports: [TruncatablePartComponent, NgClass, NgIf, AsyncPipe, TranslateModule],
}) })

View File

@@ -0,0 +1,44 @@
import {
AsyncPipe,
NgIf,
NgTemplateOutlet,
} from '@angular/common';
import {
ChangeDetectionStrategy,
Component,
} from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
import { pushInOut } from '../../../../../app/shared/animations/push';
import { SearchComponent as BaseComponent } from '../../../../../app/shared/search/search.component';
import { SearchLabelsComponent } from '../../../../../app/shared/search/search-labels/search-labels.component';
import { ThemedSearchResultsComponent } from '../../../../../app/shared/search/search-results/themed-search-results.component';
import { ThemedSearchSidebarComponent } from '../../../../../app/shared/search/search-sidebar/themed-search-sidebar.component';
import { ThemedSearchFormComponent } from '../../../../../app/shared/search-form/themed-search-form.component';
import { PageWithSidebarComponent } from '../../../../../app/shared/sidebar/page-with-sidebar.component';
import { ViewModeSwitchComponent } from '../../../../../app/shared/view-mode-switch/view-mode-switch.component';
@Component({
selector: 'ds-themed-search',
// styleUrls: ['./search.component.scss'],
styleUrls: ['../../../../../app/shared/search/search.component.scss'],
// templateUrl: './search.component.html',
templateUrl: '../../../../../app/shared/search/search.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
animations: [pushInOut],
standalone: true,
imports: [
AsyncPipe,
NgIf,
NgTemplateOutlet,
PageWithSidebarComponent,
ThemedSearchFormComponent,
ThemedSearchResultsComponent,
ThemedSearchSidebarComponent,
TranslateModule,
SearchLabelsComponent,
ViewModeSwitchComponent,
],
})
export class SearchComponent extends BaseComponent {
}

View File

@@ -0,0 +1,18 @@
import { NgIf } from '@angular/common';
import { Component } from '@angular/core';
import { UploaderComponent } from '../../../../../../app/shared/upload/uploader/uploader.component';
import { SubmissionUploadFilesComponent as BaseComponent } from '../../../../../../app/submission/form/submission-upload-files/submission-upload-files.component';
@Component({
selector: 'ds-themed-submission-upload-files',
// templateUrl: './submission-upload-files.component.html',
templateUrl: '../../../../../../app/submission/form/submission-upload-files/submission-upload-files.component.html',
imports: [
UploaderComponent,
NgIf,
],
standalone: true,
})
export class SubmissionUploadFilesComponent extends BaseComponent {
}

View File

@@ -7,7 +7,7 @@ import { WorkspaceItemsDeletePageComponent as BaseComponent } from '../../../../
@Component({ @Component({
selector: 'ds-base-workspaceitems-delete-page', selector: 'ds-themed-workspaceitems-delete-page',
templateUrl: '../../../../../app/workspaceitems-edit-page/workspaceitems-delete-page/workspaceitems-delete-page.component.html', templateUrl: '../../../../../app/workspaceitems-edit-page/workspaceitems-delete-page/workspaceitems-delete-page.component.html',
standalone: true, standalone: true,
imports: [ imports: [

View File

@@ -29,7 +29,7 @@ import { BrowseEntryListElementComponent } from './app/shared/object-list/browse
import { CollectionListElementComponent } from './app/shared/object-list/collection-list-element/collection-list-element.component'; import { CollectionListElementComponent } from './app/shared/object-list/collection-list-element/collection-list-element.component';
import { CommunityListElementComponent } from './app/shared/object-list/community-list-element/community-list-element.component'; import { CommunityListElementComponent } from './app/shared/object-list/community-list-element/community-list-element.component';
import { ItemSearchResultListElementComponent } from './app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component'; import { ItemSearchResultListElementComponent } from './app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component';
import { PublicationSidebarSearchListElementComponent } from './app/shared/object-list/sidebar-search-list-element/item-types/publication-sidebar-search-list-element.component'; import { PublicationSidebarSearchListElementComponent } from './app/shared/object-list/sidebar-search-list-element/item-types/publication/publication-sidebar-search-list-element.component';
import { StartsWithDateComponent } from './app/shared/starts-with/date/starts-with-date.component'; import { StartsWithDateComponent } from './app/shared/starts-with/date/starts-with-date.component';
import { StartsWithTextComponent } from './app/shared/starts-with/text/starts-with-text.component'; import { StartsWithTextComponent } from './app/shared/starts-with/text/starts-with-text.component';

View File

@@ -12,6 +12,7 @@ import { TranslateModule } from '@ngx-translate/core';
import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to'; 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 { AdminSidebarComponent } from './app/admin/admin-sidebar/admin-sidebar.component'; import { AdminSidebarComponent } from './app/admin/admin-sidebar/admin-sidebar.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';
@@ -53,6 +54,7 @@ import { MyDSpacePageComponent } from './app/my-dspace-page/my-dspace-page.compo
import { ExpandableNavbarSectionComponent } from './app/navbar/expandable-navbar-section/expandable-navbar-section.component'; import { ExpandableNavbarSectionComponent } from './app/navbar/expandable-navbar-section/expandable-navbar-section.component';
import { PageNotFoundComponent } from './app/pagenotfound/pagenotfound.component'; import { PageNotFoundComponent } from './app/pagenotfound/pagenotfound.component';
import { ProfilePageComponent } from './app/profile-page/profile-page.component'; import { ProfilePageComponent } from './app/profile-page/profile-page.component';
import { ProfilePageMetadataFormComponent } from './app/profile-page/profile-page-metadata-form/profile-page-metadata-form.component';
import { RegisterEmailFormComponent } from './app/register-email-form/register-email-form.component'; import { RegisterEmailFormComponent } from './app/register-email-form/register-email-form.component';
import { CreateProfileComponent } from './app/register-page/create-profile/create-profile.component'; import { CreateProfileComponent } from './app/register-page/create-profile/create-profile.component';
import { RegisterEmailComponent } from './app/register-page/register-email/register-email.component'; import { RegisterEmailComponent } from './app/register-page/register-email/register-email.component';
@@ -65,8 +67,9 @@ import { SearchPageComponent } from './app/search-page/search-page.component';
import { AuthNavMenuComponent } from './app/shared/auth-nav-menu/auth-nav-menu.component'; import { AuthNavMenuComponent } from './app/shared/auth-nav-menu/auth-nav-menu.component';
import { UserMenuComponent } from './app/shared/auth-nav-menu/user-menu/user-menu.component'; import { UserMenuComponent } from './app/shared/auth-nav-menu/user-menu/user-menu.component';
import { BrowseByComponent } from './app/shared/browse-by/browse-by.component'; import { BrowseByComponent } from './app/shared/browse-by/browse-by.component';
import { ComcolPageBrowseByComponent } from './app/shared/comcol-page-browse-by/comcol-page-browse-by.component'; import { ComcolPageBrowseByComponent } from './app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.component';
import { ComcolPageHandleComponent } from './app/shared/comcol-page-handle/comcol-page-handle.component'; import { ComcolPageContentComponent } from './app/shared/comcol/comcol-page-content/comcol-page-content.component';
import { ComcolPageHandleComponent } from './app/shared/comcol/comcol-page-handle/comcol-page-handle.component';
import { DsDynamicLookupRelationExternalSourceTabComponent } from './app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/dynamic-lookup-relation-external-source-tab.component'; import { DsDynamicLookupRelationExternalSourceTabComponent } from './app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/dynamic-lookup-relation-external-source-tab.component';
import { ExternalSourceEntryImportModalComponent } from './app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/external-source-entry-import-modal/external-source-entry-import-modal.component'; import { ExternalSourceEntryImportModalComponent } from './app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/external-source-entry-import-modal/external-source-entry-import-modal.component';
import { DsDynamicLookupRelationSearchTabComponent } from './app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/search-tab/dynamic-lookup-relation-search-tab.component'; import { DsDynamicLookupRelationSearchTabComponent } from './app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/search-tab/dynamic-lookup-relation-search-tab.component';
@@ -76,8 +79,11 @@ import { BadgesComponent } from './app/shared/object-collection/shared/badges/ba
import { MyDSpaceStatusBadgeComponent } from './app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component'; import { MyDSpaceStatusBadgeComponent } from './app/shared/object-collection/shared/badges/my-dspace-status-badge/my-dspace-status-badge.component';
import { StatusBadgeComponent } from './app/shared/object-collection/shared/badges/status-badge/status-badge.component'; import { StatusBadgeComponent } from './app/shared/object-collection/shared/badges/status-badge/status-badge.component';
import { TypeBadgeComponent } from './app/shared/object-collection/shared/badges/type-badge/type-badge.component'; import { TypeBadgeComponent } from './app/shared/object-collection/shared/badges/type-badge/type-badge.component';
import { ItemDetailPreviewFieldComponent } from './app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview-field/item-detail-preview-field.component';
import { ItemListPreviewComponent } from './app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component';
import { ObjectListComponent } from './app/shared/object-list/object-list.component'; import { ObjectListComponent } from './app/shared/object-list/object-list.component';
import { ResultsBackButtonComponent } from './app/shared/results-back-button/results-back-button.component'; import { ResultsBackButtonComponent } from './app/shared/results-back-button/results-back-button.component';
import { SearchComponent } from './app/shared/search/search.component';
import { SearchFiltersComponent } from './app/shared/search/search-filters/search-filters.component'; import { SearchFiltersComponent } from './app/shared/search/search-filters/search-filters.component';
import { SearchResultsComponent } from './app/shared/search/search-results/search-results.component'; import { SearchResultsComponent } from './app/shared/search/search-results/search-results.component';
import { SearchSettingsComponent } from './app/shared/search/search-settings/search-settings.component'; import { SearchSettingsComponent } from './app/shared/search/search-settings/search-settings.component';
@@ -88,13 +94,14 @@ import { CommunityStatisticsPageComponent } from './app/statistics-page/communit
import { ItemStatisticsPageComponent } from './app/statistics-page/item-statistics-page/item-statistics-page.component'; import { ItemStatisticsPageComponent } from './app/statistics-page/item-statistics-page/item-statistics-page.component';
import { SiteStatisticsPageComponent } from './app/statistics-page/site-statistics-page/site-statistics-page.component'; import { SiteStatisticsPageComponent } from './app/statistics-page/site-statistics-page/site-statistics-page.component';
import { SubmissionEditComponent } from './app/submission/edit/submission-edit.component'; import { SubmissionEditComponent } from './app/submission/edit/submission-edit.component';
import { SubmissionUploadFilesComponent } from './app/submission/form/submission-upload-files/submission-upload-files.component';
import { SubmissionImportExternalComponent } from './app/submission/import-external/submission-import-external.component'; import { SubmissionImportExternalComponent } from './app/submission/import-external/submission-import-external.component';
import { SubmissionSectionUploadFileComponent } from './app/submission/sections/upload/file/section-upload-file.component'; import { SubmissionSectionUploadFileComponent } from './app/submission/sections/upload/file/section-upload-file.component';
import { SubmissionSubmitComponent } from './app/submission/submit/submission-submit.component'; import { SubmissionSubmitComponent } from './app/submission/submit/submission-submit.component';
import { ThumbnailComponent } from './app/thumbnail/thumbnail.component'; import { ThumbnailComponent } from './app/thumbnail/thumbnail.component';
import { WorkflowItemDeleteComponent } from './app/workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component'; import { WorkflowItemDeleteComponent } from './app/workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component';
import { WorkflowItemSendBackComponent } from './app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component'; import { WorkflowItemSendBackComponent } from './app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component';
import { WorkspaceItemsDeletePageComponent } from './app/workspace-items-delete-page/workspace-items-delete/workspace-items-delete.component'; import { WorkspaceItemsDeletePageComponent } from './app/workspaceitems-edit-page/workspaceitems-delete-page/workspaceitems-delete-page.component';
const DECLARATIONS = [ const DECLARATIONS = [
FileSectionComponent, FileSectionComponent,
@@ -180,6 +187,13 @@ const DECLARATIONS = [
UserMenuComponent, UserMenuComponent,
BrowseByComponent, BrowseByComponent,
RegisterEmailFormComponent, RegisterEmailFormComponent,
SearchComponent,
ItemListPreviewComponent,
MetadataImportPageComponent,
ItemDetailPreviewFieldComponent,
ProfilePageMetadataFormComponent,
SubmissionUploadFilesComponent,
ComcolPageContentComponent,
]; ];
@NgModule({ @NgModule({