Merge pull request #1779 from mwoodiupui/themeable-dialogs

Make create, edit community/collection/item dialogs theme-able.
This commit is contained in:
Tim Donohue
2022-09-07 10:36:47 -05:00
committed by GitHub
27 changed files with 399 additions and 18 deletions

View File

@@ -16,24 +16,24 @@ import { filter, find, map, take } from 'rxjs/operators';
import { hasValue } from './shared/empty.util';
import { FeatureID } from './core/data/feature-authorization/feature-id';
import {
CreateCommunityParentSelectorComponent
} from './shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component';
ThemedCreateCommunityParentSelectorComponent
} from './shared/dso-selector/modal-wrappers/create-community-parent-selector/themed-create-community-parent-selector.component';
import { OnClickMenuItemModel } from './shared/menu/menu-item/models/onclick.model';
import {
CreateCollectionParentSelectorComponent
} from './shared/dso-selector/modal-wrappers/create-collection-parent-selector/create-collection-parent-selector.component';
ThemedCreateCollectionParentSelectorComponent
} from './shared/dso-selector/modal-wrappers/create-collection-parent-selector/themed-create-collection-parent-selector.component';
import {
CreateItemParentSelectorComponent
} from './shared/dso-selector/modal-wrappers/create-item-parent-selector/create-item-parent-selector.component';
ThemedCreateItemParentSelectorComponent
} from './shared/dso-selector/modal-wrappers/create-item-parent-selector/themed-create-item-parent-selector.component';
import {
EditCommunitySelectorComponent
} from './shared/dso-selector/modal-wrappers/edit-community-selector/edit-community-selector.component';
ThemedEditCommunitySelectorComponent
} from './shared/dso-selector/modal-wrappers/edit-community-selector/themed-edit-community-selector.component';
import {
EditCollectionSelectorComponent
} from './shared/dso-selector/modal-wrappers/edit-collection-selector/edit-collection-selector.component';
ThemedEditCollectionSelectorComponent
} from './shared/dso-selector/modal-wrappers/edit-collection-selector/themed-edit-collection-selector.component';
import {
EditItemSelectorComponent
} from './shared/dso-selector/modal-wrappers/edit-item-selector/edit-item-selector.component';
ThemedEditItemSelectorComponent
} from './shared/dso-selector/modal-wrappers/edit-item-selector/themed-edit-item-selector.component';
import {
ExportMetadataSelectorComponent
} from './shared/dso-selector/modal-wrappers/export-metadata-selector/export-metadata-selector.component';
@@ -188,7 +188,7 @@ export class MenuResolver implements Resolve<boolean> {
type: MenuItemType.ONCLICK,
text: 'menu.section.new_community',
function: () => {
this.modalService.open(CreateCommunityParentSelectorComponent);
this.modalService.open(ThemedCreateCommunityParentSelectorComponent);
}
} as OnClickMenuItemModel,
},
@@ -201,7 +201,7 @@ export class MenuResolver implements Resolve<boolean> {
type: MenuItemType.ONCLICK,
text: 'menu.section.new_collection',
function: () => {
this.modalService.open(CreateCollectionParentSelectorComponent);
this.modalService.open(ThemedCreateCollectionParentSelectorComponent);
}
} as OnClickMenuItemModel,
},
@@ -214,7 +214,7 @@ export class MenuResolver implements Resolve<boolean> {
type: MenuItemType.ONCLICK,
text: 'menu.section.new_item',
function: () => {
this.modalService.open(CreateItemParentSelectorComponent);
this.modalService.open(ThemedCreateItemParentSelectorComponent);
}
} as OnClickMenuItemModel,
},
@@ -263,7 +263,7 @@ export class MenuResolver implements Resolve<boolean> {
type: MenuItemType.ONCLICK,
text: 'menu.section.edit_community',
function: () => {
this.modalService.open(EditCommunitySelectorComponent);
this.modalService.open(ThemedEditCommunitySelectorComponent);
}
} as OnClickMenuItemModel,
},
@@ -276,7 +276,7 @@ export class MenuResolver implements Resolve<boolean> {
type: MenuItemType.ONCLICK,
text: 'menu.section.edit_collection',
function: () => {
this.modalService.open(EditCollectionSelectorComponent);
this.modalService.open(ThemedEditCollectionSelectorComponent);
}
} as OnClickMenuItemModel,
},
@@ -289,7 +289,7 @@ export class MenuResolver implements Resolve<boolean> {
type: MenuItemType.ONCLICK,
text: 'menu.section.edit_item',
function: () => {
this.modalService.open(EditItemSelectorComponent);
this.modalService.open(ThemedEditItemSelectorComponent);
}
} as OnClickMenuItemModel,
},

View File

@@ -0,0 +1,28 @@
import {Component} from '@angular/core';
import {CreateCollectionParentSelectorComponent} from './create-collection-parent-selector.component';
import {ThemedComponent} from 'src/app/shared/theme-support/themed.component';
/**
* Themed wrapper for CreateCollectionParentSelectorComponent
*/
@Component({
selector: 'ds-themed-create-collection-parent-selector',
styleUrls: [],
templateUrl: '../../../theme-support/themed.component.html'
})
export class ThemedCreateCollectionParentSelectorComponent
extends ThemedComponent<CreateCollectionParentSelectorComponent> {
protected getComponentName(): string {
return 'CreateCollectionParentSelectorComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../../themes/${themeName}/app/shared/dso-selector/modal-wrappers/create-collection-parent-selector/create-collection-parent-selector.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./create-collection-parent-selector.component');
}
}

View File

@@ -0,0 +1,27 @@
import {Component} from '@angular/core';
import {CreateCommunityParentSelectorComponent} from './create-community-parent-selector.component';
import {ThemedComponent} from 'src/app/shared/theme-support/themed.component';
/**
* Themed wrapper for CreateCommunityParentSelectorComponent
*/
@Component({
selector: 'ds-themed-create-community-parent-selector',
styleUrls: [],
templateUrl: '../../../theme-support/themed.component.html'
})
export class ThemedCreateCommunityParentSelectorComponent
extends ThemedComponent<CreateCommunityParentSelectorComponent> {
protected getComponentName(): string {
return 'CreateCommunityParentSelectorComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../../themes/${themeName}/app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./create-community-parent-selector.component');
}
}

View File

@@ -0,0 +1,31 @@
import {Component, Input} from '@angular/core';
import {CreateItemParentSelectorComponent} from './create-item-parent-selector.component';
import {ThemedComponent} from 'src/app/shared/theme-support/themed.component';
/**
* Themed wrapper for CreateItemParentSelectorComponent
*/
@Component({
selector: 'ds-themed-create-item-parent-selector',
styleUrls: [],
templateUrl: '../../../theme-support/themed.component.html'
})
export class ThemedCreateItemParentSelectorComponent
extends ThemedComponent<CreateItemParentSelectorComponent> {
@Input() entityType: string;
protected inAndOutputNames: (keyof CreateItemParentSelectorComponent & keyof this)[] = ['entityType'];
protected getComponentName(): string {
return 'CreateItemParentSelectorComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../../themes/${themeName}/app/shared/dso-selector/modal-wrappers/create-item-parent-selector/create-item-parent-selector.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./create-item-parent-selector.component');
}
}

View File

@@ -0,0 +1,27 @@
import {Component} from '@angular/core';
import {EditCollectionSelectorComponent} from './edit-collection-selector.component';
import {ThemedComponent} from 'src/app/shared/theme-support/themed.component';
/**
* Themed wrapper for EditCollectionSelectorComponent
*/
@Component({
selector: 'ds-themed-edit-collection-selector',
styleUrls: [],
templateUrl: '../../../theme-support/themed.component.html'
})
export class ThemedEditCollectionSelectorComponent
extends ThemedComponent<EditCollectionSelectorComponent> {
protected getComponentName(): string {
return 'EditCollectionSelectorComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../../themes/${themeName}/app/shared/dso-selector/modal-wrappers/edit-collection-selector/edit-collection-selector.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./edit-collection-selector.component');
}
}

View File

@@ -0,0 +1,27 @@
import {Component} from '@angular/core';
import {EditCommunitySelectorComponent} from './edit-community-selector.component';
import {ThemedComponent} from 'src/app/shared/theme-support/themed.component';
/**
* Themed wrapper for EditCommunitySelectorComponent
*/
@Component({
selector: 'ds-themed-edit-community-selector',
styleUrls: [],
templateUrl: '../../../theme-support/themed.component.html'
})
export class ThemedEditCommunitySelectorComponent
extends ThemedComponent<EditCommunitySelectorComponent> {
protected getComponentName(): string {
return 'EditCommunitySelectorComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../../themes/${themeName}/app/shared/dso-selector/modal-wrappers/edit-community-selector/edit-community-selector.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./edit-community-selector.component');
}
}

View File

@@ -0,0 +1,27 @@
import {Component} from '@angular/core';
import {EditItemSelectorComponent} from './edit-item-selector.component';
import {ThemedComponent} from 'src/app/shared/theme-support/themed.component';
/**
* Themed wrapper for EditItemSelectorComponent
*/
@Component({
selector: 'ds-themed-edit-item-selector',
styleUrls: [],
templateUrl: '../../../theme-support/themed.component.html'
})
export class ThemedEditItemSelectorComponent
extends ThemedComponent<EditItemSelectorComponent> {
protected getComponentName(): string {
return 'EditItemSelectorComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../../themes/${themeName}/app/shared/dso-selector/modal-wrappers/edit-item-selector/edit-item-selector.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./edit-item-selector.component');
}
}

View File

@@ -124,12 +124,21 @@ import { DSOSelectorComponent } from './dso-selector/dso-selector/dso-selector.c
import {
CreateCommunityParentSelectorComponent
} from './dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component';
import {
ThemedCreateCommunityParentSelectorComponent
} from './dso-selector/modal-wrappers/create-community-parent-selector/themed-create-community-parent-selector.component';
import {
CreateItemParentSelectorComponent
} from './dso-selector/modal-wrappers/create-item-parent-selector/create-item-parent-selector.component';
import {
ThemedCreateItemParentSelectorComponent
} from './dso-selector/modal-wrappers/create-item-parent-selector/themed-create-item-parent-selector.component';
import {
CreateCollectionParentSelectorComponent
} from './dso-selector/modal-wrappers/create-collection-parent-selector/create-collection-parent-selector.component';
import {
ThemedCreateCollectionParentSelectorComponent
} from './dso-selector/modal-wrappers/create-collection-parent-selector/themed-create-collection-parent-selector.component';
import {
CommunitySearchResultListElementComponent
} from './object-list/search-result-list-element/community-search-result/community-search-result-list-element.component';
@@ -139,12 +148,21 @@ import {
import {
EditItemSelectorComponent
} from './dso-selector/modal-wrappers/edit-item-selector/edit-item-selector.component';
import {
ThemedEditItemSelectorComponent
} from './dso-selector/modal-wrappers/edit-item-selector/themed-edit-item-selector.component';
import {
EditCommunitySelectorComponent
} from './dso-selector/modal-wrappers/edit-community-selector/edit-community-selector.component';
import {
ThemedEditCommunitySelectorComponent
} from './dso-selector/modal-wrappers/edit-community-selector/themed-edit-community-selector.component';
import {
EditCollectionSelectorComponent
} from './dso-selector/modal-wrappers/edit-collection-selector/edit-collection-selector.component';
import {
ThemedEditCollectionSelectorComponent
} from './dso-selector/modal-wrappers/edit-collection-selector/themed-edit-collection-selector.component';
import {
ItemListPreviewComponent
} from './object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component';
@@ -395,11 +413,17 @@ const COMPONENTS = [
DsoInputSuggestionsComponent,
DSOSelectorComponent,
CreateCommunityParentSelectorComponent,
ThemedCreateCommunityParentSelectorComponent,
CreateCollectionParentSelectorComponent,
ThemedCreateCollectionParentSelectorComponent,
CreateItemParentSelectorComponent,
ThemedCreateItemParentSelectorComponent,
EditCommunitySelectorComponent,
ThemedEditCommunitySelectorComponent,
EditCollectionSelectorComponent,
ThemedEditCollectionSelectorComponent,
EditItemSelectorComponent,
ThemedEditItemSelectorComponent,
CommunitySearchResultListElementComponent,
CollectionSearchResultListElementComponent,
BrowseByComponent,
@@ -491,11 +515,17 @@ const ENTRY_COMPONENTS = [
StartsWithDateComponent,
StartsWithTextComponent,
CreateCommunityParentSelectorComponent,
ThemedCreateCommunityParentSelectorComponent,
CreateCollectionParentSelectorComponent,
ThemedCreateCollectionParentSelectorComponent,
CreateItemParentSelectorComponent,
ThemedCreateItemParentSelectorComponent,
EditCommunitySelectorComponent,
ThemedEditCommunitySelectorComponent,
EditCollectionSelectorComponent,
ThemedEditCollectionSelectorComponent,
EditItemSelectorComponent,
ThemedEditItemSelectorComponent,
PlainTextMetadataListElementComponent,
ItemMetadataListElementComponent,
MetadataRepresentationListElementComponent,

View File

@@ -0,0 +1,11 @@
<div>
<div class="modal-header">{{'dso-selector.'+ action + '.' + objectType.toString().toLowerCase() + '.head' | translate}}
<button type="button" class="close" (click)="close()" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<h5 *ngIf="header" class="px-2">{{header | translate}}</h5>
<ds-dso-selector [currentDSOId]="dsoRD?.payload.uuid" [types]="selectorTypes" (onSelect)="selectObject($event)"></ds-dso-selector>
</div>
</div>

View File

@@ -0,0 +1,13 @@
import { Component } from '@angular/core';
import {
CreateCollectionParentSelectorComponent as BaseComponent
} from '../../../../../../../app/shared/dso-selector/modal-wrappers/create-collection-parent-selector/create-collection-parent-selector.component';
@Component({
selector: 'ds-create-collection-parent-selector',
// styleUrls: ['./create-collection-parent-selector.component.scss'],
// templateUrl: './create-collection-parent-selector.component.html',
templateUrl: '../../../../../../../app/shared/dso-selector/modal-wrappers/dso-selector-modal-wrapper.component.html',
})
export class CreateCollectionParentSelectorComponent extends BaseComponent {
}

View File

@@ -0,0 +1,19 @@
<div>
<div class="modal-header">{{'dso-selector.'+ action + '.' + objectType.toString().toLowerCase() + '.head' | translate}}
<button type="button" class="close" (click)="close()" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<button class="btn btn-outline-primary btn-lg btn-block" (click)="selectObject(undefined)">{{'dso-selector.create.community.top-level' | translate}}</button>
<h3 class="position-relative py-1 my-3 font-weight-normal">
<hr>
<div id="create-community-or-separator" class="text-center position-absolute w-100">
<span class="px-4 bg-white">or</span>
</div>
</h3>
<h5 class="px-2">{{'dso-selector.create.community.sub-level' | translate}}</h5>
<ds-dso-selector [currentDSOId]="dsoRD?.payload.uuid" [types]="selectorTypes" (onSelect)="selectObject($event)"></ds-dso-selector>
</div>
</div>

View File

@@ -0,0 +1,14 @@
import { Component } from '@angular/core';
import {
CreateCommunityParentSelectorComponent as BaseComponent
} from '../../../../../../../app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component';
@Component({
selector: 'ds-create-community-parent-selector',
// styleUrls: ['./create-community-parent-selector.component.scss'],
styleUrls: ['../../../../../../../app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component.scss'],
// templateUrl: './create-community-parent-selector.component.html',
templateUrl: '../../../../../../../app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component.html',
})
export class CreateCommunityParentSelectorComponent extends BaseComponent {
}

View File

@@ -0,0 +1,15 @@
<div>
<div class="modal-header">{{'dso-selector.'+ action + '.' + objectType.toString().toLowerCase() + '.head' | translate}}
<button type="button" class="close" (click)="close()" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div [innerHTML]="'dso-selector.create.item.intro' | translate"></div>
<h5 *ngIf="header" class="px-2">{{header | translate}}</h5>
<ds-authorized-collection-selector [currentDSOId]="dsoRD?.payload.uuid"
[entityType]="entityType"
[types]="selectorTypes"
(onSelect)="selectObject($event)"></ds-authorized-collection-selector>
</div>
</div>

View File

@@ -0,0 +1,13 @@
import {Component} from '@angular/core';
import {
CreateItemParentSelectorComponent as BaseComponent
} from '../../../../../../../app/shared/dso-selector/modal-wrappers/create-item-parent-selector/create-item-parent-selector.component';
@Component({
selector: 'ds-create-item-parent-selector',
// styleUrls: ['./create-item-parent-selector.component.scss'],
// templateUrl: './create-item-parent-selector.component.html',
templateUrl: '../../../../../../../app/shared/dso-selector/modal-wrappers/create-item-parent-selector/create-item-parent-selector.component.html',
})
export class CreateItemParentSelectorComponent extends BaseComponent {
}

View File

@@ -0,0 +1,11 @@
<div>
<div class="modal-header">{{'dso-selector.'+ action + '.' + objectType.toString().toLowerCase() + '.head' | translate}}
<button type="button" class="close" (click)="close()" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<h5 *ngIf="header" class="px-2">{{header | translate}}</h5>
<ds-dso-selector [currentDSOId]="dsoRD?.payload.uuid" [types]="selectorTypes" (onSelect)="selectObject($event)"></ds-dso-selector>
</div>
</div>

View File

@@ -0,0 +1,13 @@
import { Component } from '@angular/core';
import {
EditCollectionSelectorComponent as BaseComponent
} from '../../../../../../../app/shared/dso-selector/modal-wrappers/edit-collection-selector/edit-collection-selector.component';
@Component({
selector: 'ds-edit-collection-selector',
// styleUrls: ['./edit-collection-selector.component.scss'],
// templateUrl: './edit-collection-selector.component.html',
templateUrl: '../../../../../../../app/shared/dso-selector/modal-wrappers/dso-selector-modal-wrapper.component.html',
})
export class EditCollectionSelectorComponent extends BaseComponent {
}

View File

@@ -0,0 +1,11 @@
<div>
<div class="modal-header">{{'dso-selector.'+ action + '.' + objectType.toString().toLowerCase() + '.head' | translate}}
<button type="button" class="close" (click)="close()" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<h5 *ngIf="header" class="px-2">{{header | translate}}</h5>
<ds-dso-selector [currentDSOId]="dsoRD?.payload.uuid" [types]="selectorTypes" (onSelect)="selectObject($event)"></ds-dso-selector>
</div>
</div>

View File

@@ -0,0 +1,13 @@
import { Component } from '@angular/core';
import {
EditCommunitySelectorComponent as BaseComponent
} from '../../../../../../../app/shared/dso-selector/modal-wrappers/edit-community-selector/edit-community-selector.component';
@Component({
selector: 'ds-edit-item-selector',
// styleUrls: ['./edit-community-selector.component.scss'],
// templateUrl: './edit-community-selector.component.html',
templateUrl: '../../../../../../../app/shared/dso-selector/modal-wrappers/dso-selector-modal-wrapper.component.html',
})
export class EditCommunitySelectorComponent extends BaseComponent {
}

View File

@@ -0,0 +1,11 @@
<div>
<div class="modal-header">{{'dso-selector.'+ action + '.' + objectType.toString().toLowerCase() + '.head' | translate}}
<button type="button" class="close" (click)="close()" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<h5 *ngIf="header" class="px-2">{{header | translate}}</h5>
<ds-dso-selector [currentDSOId]="dsoRD?.payload.uuid" [types]="selectorTypes" (onSelect)="selectObject($event)"></ds-dso-selector>
</div>
</div>

View File

@@ -0,0 +1,13 @@
import { Component } from '@angular/core';
import {
EditItemSelectorComponent as BaseComponent
} from 'src/app/shared/dso-selector/modal-wrappers/edit-item-selector/edit-item-selector.component';
@Component({
selector: 'ds-edit-item-selector',
// styleUrls: ['./edit-item-selector.component.scss'],
// templateUrl: './edit-item-selector.component.html',
templateUrl: '../../../../../../../app/shared/dso-selector/modal-wrappers/dso-selector-modal-wrapper.component.html',
})
export class EditItemSelectorComponent extends BaseComponent {
}

View File

@@ -21,6 +21,24 @@ import {
} from './app/entity-groups/journal-entities/item-pages/journal-volume/journal-volume.component';
import { UntypedItemComponent } from './app/item-page/simple/item-types/untyped-item/untyped-item.component';
import { ItemSharedModule } from '../../app/item-page/item-shared.module';
import {
CreateCollectionParentSelectorComponent
} from './app/shared/dso-selector/modal-wrappers/create-collection-parent-selector/create-collection-parent-selector.component';
import {
CreateCommunityParentSelectorComponent
} from './app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component';
import {
CreateItemParentSelectorComponent
} from './app/shared/dso-selector/modal-wrappers/create-item-parent-selector/create-item-parent-selector.component';
import {
EditCollectionSelectorComponent
} from './app/shared/dso-selector/modal-wrappers/edit-collection-selector/edit-collection-selector.component';
import {
EditCommunitySelectorComponent
} from './app/shared/dso-selector/modal-wrappers/edit-community-selector/edit-community-selector.component';
import {
EditItemSelectorComponent
} from './app/shared/dso-selector/modal-wrappers/edit-item-selector/edit-item-selector.component';
/**
* Add components that use a custom decorator to ENTRY_COMPONENTS as well as DECLARATIONS.
@@ -41,6 +59,12 @@ const DECLARATIONS = [
HeaderNavbarWrapperComponent,
NavbarComponent,
FooterComponent,
CreateCollectionParentSelectorComponent,
CreateCommunityParentSelectorComponent,
CreateItemParentSelectorComponent,
EditCollectionSelectorComponent,
EditCommunitySelectorComponent,
EditItemSelectorComponent,
];
@NgModule({