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';
@Component({
selector: 'ds-metadata-import-page',
selector: 'ds-base-metadata-import-page',
templateUrl: './metadata-import-page.component.html',
imports: [
TranslateModule,
FormsModule,
FileDropzoneNoUploaderComponent,
FormsModule,
TranslateModule,
],
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 { AdminCurationTasksComponent } from './admin-curation-tasks/admin-curation-tasks.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 {
LDN_PATH,
NOTIFICATIONS_MODULE_PATH,
@@ -46,7 +46,7 @@ export const ROUTES: Route[] = [
{
path: 'metadata-import',
resolve: { breadcrumb: i18nBreadcrumbResolver },
component: MetadataImportPageComponent,
component: ThemedMetadataImportPageComponent,
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 { Item } from '../../core/shared/item.model';
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 { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -68,7 +68,7 @@ import {
ComcolPageLogoComponent,
NgIf,
ThemedComcolPageHandleComponent,
ComcolPageContentComponent,
ThemedComcolPageContentComponent,
DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent,
TranslateModule,

View File

@@ -46,7 +46,7 @@ import { Context } from '../../core/shared/context.model';
import { Item } from '../../core/shared/item.model';
import { getFirstSucceededRemoteData } from '../../core/shared/operators';
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 { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -74,7 +74,7 @@ export const BBM_PAGINATION_ID = 'bbm';
ComcolPageLogoComponent,
NgIf,
ThemedComcolPageHandleComponent,
ComcolPageContentComponent,
ThemedComcolPageContentComponent,
DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent,
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 { 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 { 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 { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.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,
NgIf,
ThemedComcolPageHandleComponent,
ComcolPageContentComponent,
ThemedComcolPageContentComponent,
DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent,
TranslateModule,

View File

@@ -17,7 +17,7 @@ import {
} from '../../core/cache/models/sort-options.model';
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 { 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 { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component';
import { ComcolPageLogoComponent } from '../../shared/comcol/comcol-page-logo/comcol-page-logo.component';
@@ -43,7 +43,7 @@ import {
ComcolPageLogoComponent,
NgIf,
ThemedComcolPageHandleComponent,
ComcolPageContentComponent,
ThemedComcolPageContentComponent,
DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent,
TranslateModule,

View File

@@ -36,7 +36,7 @@ import {
fadeInOut,
} from '../shared/animations/fade';
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 { ComcolPageHeaderComponent } from '../shared/comcol/comcol-page-header/comcol-page-header.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,
],
imports: [
ComcolPageContentComponent,
ThemedComcolPageContentComponent,
ErrorComponent,
NgIf,
ThemedLoadingComponent,

View File

@@ -32,7 +32,7 @@ import { Community } from '../core/shared/community.model';
import { getAllSucceededRemoteDataPayload } from '../core/shared/operators';
import { fadeInOut } from '../shared/animations/fade';
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 { ComcolPageHeaderComponent } from '../shared/comcol/comcol-page-header/comcol-page-header.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,
animations: [fadeInOut],
imports: [
ComcolPageContentComponent,
ThemedComcolPageContentComponent,
ErrorComponent,
ThemedLoadingComponent,
NgIf,

View File

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

View File

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

View File

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

View File

@@ -30,7 +30,7 @@ export class ThemedComcolPageBrowseByComponent extends ThemedComponent<ComcolPag
}
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> {

View File

@@ -12,7 +12,7 @@ import { TranslateModule } from '@ngx-translate/core';
* To see how it is used see collection-page or community-page.
*/
@Component({
selector: 'ds-comcol-page-content',
selector: 'ds-base-comcol-page-content',
styleUrls: ['./comcol-page-content.component.scss'],
templateUrl: './comcol-page-content.component.html',
imports: [
@@ -23,13 +23,19 @@ import { TranslateModule } from '@ngx-translate/core';
})
export class ComcolPageContentComponent {
// Optional title
/**
* Optional title
*/
@Input() title: string;
// The content to render. Might be html
/**
* The content to render. Might be html
*/
@Input() content: string;
// flag whether the content contains html syntax or not
/**
* flag whether the content contains html syntax or not
*/
@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 {
Component,
Injectable,
Input,
} from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
@@ -14,11 +13,12 @@ import { TranslateModule } from '@ngx-translate/core';
selector: 'ds-base-comcol-page-handle',
styleUrls: ['./comcol-page-handle.component.scss'],
templateUrl: './comcol-page-handle.component.html',
imports: [NgIf, TranslateModule],
imports: [
NgIf,
TranslateModule,
],
standalone: true,
})
@Injectable()
export class ComcolPageHandleComponent {
// Optional title

View File

@@ -54,7 +54,7 @@ import {
* Used to choose a dso from to export metadata of
*/
@Component({
selector: 'ds-export-metadata-selector',
selector: 'ds-export-batch-selector',
templateUrl: '../dso-selector-modal-wrapper.component.html',
standalone: true,
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
*/
@Component({
selector: 'ds-item-detail-preview-field',
selector: 'ds-base-item-detail-preview-field',
templateUrl: './item-detail-preview-field.component.html',
standalone: true,
imports: [MetadataFieldWrapperComponent, NgIf, NgFor, TranslateModule],
imports: [
MetadataFieldWrapperComponent,
NgFor,
NgIf,
TranslateModule,
],
})
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 { FileSizePipe } from '../../../utils/file-size-pipe';
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.
@@ -39,7 +39,7 @@ import { ItemDetailPreviewFieldComponent } from './item-detail-preview-field/ite
templateUrl: './item-detail-preview.component.html',
animations: [fadeInOut],
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 {
/**

View File

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

View File

@@ -38,7 +38,19 @@ import { TruncatablePartComponent } from '../../../truncatable/truncatable-part/
templateUrl: 'item-list-preview.component.html',
animations: [fadeInOut],
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 {

View File

@@ -247,7 +247,7 @@ describe('ItemSearchResultListElementComponent', () => {
expect(publicationListElementComponent.showThumbnails).toBeTrue();
});
it('should add ds-thumbnail element', () => {
it('should add thumbnail element', () => {
const thumbnailElement = fixture.debugElement.query(By.css('ds-thumbnail'));
expect(thumbnailElement).toBeTruthy();
});
@@ -428,7 +428,7 @@ describe('ItemSearchResultListElementComponent', () => {
fixture.detectChanges();
});
it('should not add ds-thumbnail element', () => {
it('should not add thumbnail element', () => {
const thumbnailElement = fixture.debugElement.query(By.css('ds-thumbnail'));
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.SideBarSearchModalCurrent)
@Component({
selector: 'ds-collection-sidebar-search-list-element',
selector: 'ds-community-sidebar-search-list-element',
templateUrl: '../sidebar-search-list-element.component.html',
standalone: true,
imports: [TruncatablePartComponent, NgClass, NgIf, AsyncPipe, TranslateModule],

View File

@@ -88,7 +88,18 @@ import { SearchConfigurationOption } from './search-switch-configuration/search-
changeDetection: ChangeDetectionStrategy.OnPush,
animations: [pushInOut],
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 {
@ViewChild('vcr', { read: ViewContainerRef }) vcr: ViewContainerRef;
@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

View File

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

View File

@@ -22,6 +22,10 @@ import {
import { AuthService } from '../../core/auth/auth.service';
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 { HALEndpointService } from '../../core/shared/hal-endpoint.service';
import { Item } from '../../core/shared/item.model';
@@ -42,14 +46,10 @@ import { SectionsService } from '../sections/sections.service';
import { SectionsType } from '../sections/sections-type';
import { VisibilityType } from '../sections/visibility-type';
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 { SubmissionFormFooterComponent } from './footer/submission-form-footer.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.
@@ -63,7 +63,7 @@ import { SubmissionUploadFilesComponent } from './submission-upload-files/submis
ThemedLoadingComponent,
SubmissionSectionContainerComponent,
SubmissionFormFooterComponent,
SubmissionUploadFilesComponent,
ThemedSubmissionUploadFilesComponent,
SubmissionFormCollectionComponent,
SubmissionFormSectionAddComponent,
],
@@ -81,7 +81,7 @@ export class SubmissionFormComponent implements OnChanges, OnDestroy {
/**
* Checks if the collection can be modifiable by the user
* @type {booelan}
* @type {boolean}
*/
@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.
*/
@Component({
selector: 'ds-submission-upload-files',
selector: 'ds-base-submission-upload-files',
templateUrl: './submission-upload-files.component.html',
imports: [
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';
/**
* Themed wrapper for WorkspaceItemsDeletePageComponent
* Themed wrapper for {@link WorkspaceItemsDeletePageComponent}
*/
@Component({
selector: 'ds-workspace-items-delete',
styleUrls: [],
@@ -20,10 +19,10 @@ export class ThemedWorkspaceItemsDeletePageComponent extends ThemedComponent<Wor
}
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> {
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 { 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 { 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 { 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';
@@ -30,7 +30,7 @@ import { VarDirective } from '../../../../../app/shared/utils/var.directive';
ComcolPageLogoComponent,
NgIf,
ThemedComcolPageHandleComponent,
ComcolPageContentComponent,
ThemedComcolPageContentComponent,
DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent,
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 { 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 { 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 { 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';
@@ -30,7 +30,7 @@ import { VarDirective } from '../../../../../app/shared/utils/var.directive';
ComcolPageLogoComponent,
NgIf,
ThemedComcolPageHandleComponent,
ComcolPageContentComponent,
ThemedComcolPageContentComponent,
DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent,
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 { 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 { 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 { 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';
@@ -32,7 +32,7 @@ import { VarDirective } from '../../../../../app/shared/utils/var.directive';
ComcolPageLogoComponent,
NgIf,
ThemedComcolPageHandleComponent,
ComcolPageContentComponent,
ThemedComcolPageContentComponent,
DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent,
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 { 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 { 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 { 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';
@@ -30,7 +30,7 @@ import { VarDirective } from '../../../../../app/shared/utils/var.directive';
ComcolPageLogoComponent,
NgIf,
ThemedComcolPageHandleComponent,
ComcolPageContentComponent,
ThemedComcolPageContentComponent,
DsoEditMenuComponent,
ThemedComcolPageBrowseByComponent,
TranslateModule,

View File

@@ -15,7 +15,7 @@ import {
fadeInOut,
} from '../../../../app/shared/animations/fade';
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 { 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';
@@ -26,7 +26,6 @@ import { ObjectCollectionComponent } from '../../../../app/shared/object-collect
import { VarDirective } from '../../../../app/shared/utils/var.directive';
import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dspace/view-tracker.component';
@Component({
selector: 'ds-themed-collection-page',
// templateUrl: './collection-page.component.html',
@@ -40,7 +39,7 @@ import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dsp
],
standalone: true,
imports: [
ComcolPageContentComponent,
ThemedComcolPageContentComponent,
ErrorComponent,
NgIf,
ThemedLoadingComponent,
@@ -60,4 +59,5 @@ import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dsp
/**
* 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 { fadeInOut } from '../../../../app/shared/animations/fade';
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 { 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';
@@ -27,7 +27,6 @@ import { ThemedLoadingComponent } from '../../../../app/shared/loading/themed-lo
import { VarDirective } from '../../../../app/shared/utils/var.directive';
import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dspace/view-tracker.component';
@Component({
selector: 'ds-themed-community-page',
// templateUrl: './community-page.component.html',
@@ -38,7 +37,7 @@ import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dsp
animations: [fadeInOut],
standalone: true,
imports: [
ComcolPageContentComponent,
ThemedComcolPageContentComponent,
ErrorComponent,
ThemedLoadingComponent,
NgIf,
@@ -60,4 +59,5 @@ import { ViewTrackerComponent } from '../../../../app/statistics/angulartics/dsp
/**
* 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({
selector: 'ds-themed-community-page-sub-collection-list',
// 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: '../../../../../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: [
ObjectCollectionComponent,
ErrorComponent,

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 { 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 { ProfilePageSecurityFormComponent } from '../../../../app/profile-page/profile-page-security-form/profile-page-security-form.component';
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',
standalone: true,
imports: [
ProfilePageMetadataFormComponent,
ThemedProfilePageMetadataFormComponent,
ProfilePageSecurityFormComponent,
AsyncPipe,
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';
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({
selector: 'ds-base-comcol-page-browse-by',
selector: 'ds-themed-comcol-page-browse-by',
// 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: '../../../../../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,
imports: [
FormsModule,
@@ -34,4 +30,5 @@ import { ComcolPageBrowseByComponent as BaseComponent } from '../../../../../app
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 { TranslateModule } from '@ngx-translate/core';
import { Context } from '../../../../../../../app/core/shared/context.model';
import { ViewMode } from '../../../../../../../app/core/shared/view-mode.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 { 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 { Context } from '../../../../../../../../app/core/shared/context.model';
import { ViewMode } from '../../../../../../../../app/core/shared/view-mode.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 { 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';
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.SideBarSearchModal, 'custom')
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.SideBarSearchModalCurrent, 'custom')
@@ -20,7 +20,7 @@ import { TruncatablePartComponent } from '../../../../../../../app/shared/trunca
@Component({
selector: 'ds-publication-sidebar-search-list-element',
// 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,
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({
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',
standalone: true,
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 { 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 { 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 { 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 { 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 { EditBitstreamPageComponent } from './app/bitstream-page/edit-bitstream-page/edit-bitstream-page.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 { PageNotFoundComponent } from './app/pagenotfound/pagenotfound.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 { CreateProfileComponent } from './app/register-page/create-profile/create-profile.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 { UserMenuComponent } from './app/shared/auth-nav-menu/user-menu/user-menu.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 { ComcolPageHandleComponent } from './app/shared/comcol-page-handle/comcol-page-handle.component';
import { ComcolPageBrowseByComponent } from './app/shared/comcol/comcol-page-browse-by/comcol-page-browse-by.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 { 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';
@@ -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 { 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 { 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 { 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 { SearchResultsComponent } from './app/shared/search/search-results/search-results.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 { SiteStatisticsPageComponent } from './app/statistics-page/site-statistics-page/site-statistics-page.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 { SubmissionSectionUploadFileComponent } from './app/submission/sections/upload/file/section-upload-file.component';
import { SubmissionSubmitComponent } from './app/submission/submit/submission-submit.component';
import { ThumbnailComponent } from './app/thumbnail/thumbnail.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 { 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 = [
FileSectionComponent,
@@ -180,6 +187,13 @@ const DECLARATIONS = [
UserMenuComponent,
BrowseByComponent,
RegisterEmailFormComponent,
SearchComponent,
ItemListPreviewComponent,
MetadataImportPageComponent,
ItemDetailPreviewFieldComponent,
ProfilePageMetadataFormComponent,
SubmissionUploadFilesComponent,
ComcolPageContentComponent,
];
@NgModule({