Merge remote-tracking branch 'upstream/main' into retrieve-name-with-dsonameservice-main

This commit is contained in:
Alexandre Vryghem
2023-03-16 00:30:49 +01:00
61 changed files with 1253 additions and 65 deletions

View File

@@ -618,7 +618,11 @@ export class EditBitstreamPageComponent implements OnInit, OnDestroy {
// TODO: Set bitstream to primary when supported
const primary = rawForm.fileNamePrimaryContainer.primaryBitstream;
Metadata.setFirstValue(newMetadata, 'dc.title', rawForm.fileNamePrimaryContainer.fileName);
Metadata.setFirstValue(newMetadata, 'dc.description', rawForm.descriptionContainer.description);
if (isEmpty(rawForm.descriptionContainer.description)) {
delete newMetadata['dc.description'];
} else {
Metadata.setFirstValue(newMetadata, 'dc.description', rawForm.descriptionContainer.description);
}
if (this.isIIIF) {
// It's helpful to remove these metadata elements entirely when the form value is empty.
// This avoids potential issues on the REST side and makes it possible to do things like

View File

@@ -28,14 +28,14 @@
<ng-template ngbNavContent>
<div class="row mt-2">
<div class="col-12 col-lg-6">
<ds-search-form id="search-form"
<ds-themed-search-form id="search-form"
[query]="(searchOptions$ | async)?.query"
[scope]="(searchOptions$ | async)?.scope"
[currentUrl]="'./'"
[inPlaceSearch]="true"
[searchPlaceholder]="'collection.edit.item-mapper.search-form.placeholder' | translate"
(submitSearch)="performedSearch = true">
</ds-search-form>
</ds-themed-search-form>
</div>
</div>

View File

@@ -1,4 +1,4 @@
import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
import { ChangeDetectionStrategy, Component, OnInit, Inject } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { BehaviorSubject, combineLatest as observableCombineLatest, Observable, Subject } from 'rxjs';
import { filter, map, mergeMap, startWith, switchMap, take } from 'rxjs/operators';
@@ -30,6 +30,7 @@ import { getCollectionPageRoute } from './collection-page-routing-paths';
import { redirectOn4xx } from '../core/shared/authorized.operators';
import { BROWSE_LINKS_TO_FOLLOW } from '../core/browse/browse.service';
import { DSONameService } from '../core/breadcrumbs/dso-name.service';
import { APP_CONFIG, AppConfig } from '../../../src/config/app-config.interface';
@Component({
selector: 'ds-collection-page',
@@ -71,13 +72,15 @@ export class CollectionPageComponent implements OnInit {
private paginationService: PaginationService,
private authorizationDataService: AuthorizationDataService,
public dsoNameService: DSONameService,
@Inject(APP_CONFIG) public appConfig: AppConfig,
) {
this.paginationConfig = new PaginationComponentOptions();
this.paginationConfig.id = 'cp';
this.paginationConfig.pageSize = 5;
this.paginationConfig.currentPage = 1;
this.sortConfig = new SortOptions('dc.date.accessioned', SortDirection.DESC);
this.paginationConfig = Object.assign(new PaginationComponentOptions(), {
id: 'cp',
currentPage: 1,
pageSize: this.appConfig.browseBy.pageSize,
});
this.sortConfig = new SortOptions('dc.date.accessioned', SortDirection.DESC);
}
ngOnInit(): void {

View File

@@ -18,12 +18,12 @@
<!--[fields]="['project.identifier.status']"-->
<!--[label]="'project.page.status'">-->
<!--</ds-generic-item-page-field>-->
<ds-metadata-representation-list
<ds-themed-metadata-representation-list
[parentItem]="object"
[itemType]="'OrgUnit'"
[metadataFields]="['project.contributor.other']"
[label]="'project.page.contributor' | translate">
</ds-metadata-representation-list>
</ds-themed-metadata-representation-list>
<ds-generic-item-page-field [item]="object"
[fields]="['project.identifier.funder']"
[label]="'project.page.funder'">

View File

@@ -3,7 +3,7 @@
<ng-container *ngIf="(site$ | async) as site">
<ds-view-tracker [object]="site"></ds-view-tracker>
</ng-container>
<ds-search-form [inPlaceSearch]="false" [searchPlaceholder]="'home.search-form.placeholder' | translate"></ds-search-form>
<ds-themed-search-form [inPlaceSearch]="false" [searchPlaceholder]="'home.search-form.placeholder' | translate"></ds-themed-search-form>
<ds-top-level-community-list></ds-top-level-community-list>
<ds-recent-item-list *ngIf="recentSubmissionspageSize>0"></ds-recent-item-list>
</div>

View File

@@ -0,0 +1,30 @@
import { Component, Input } from '@angular/core';
import { Item } from '../../core/shared/item.model';
import { ItemAlertsComponent } from './item-alerts.component';
import { ThemedComponent } from '../../shared/theme-support/themed.component';
/**
* Themed wrapper for {@link ItemAlertsComponent}
*/
@Component({
selector: 'ds-themed-item-alerts',
styleUrls: [],
templateUrl: '../../shared/theme-support/themed.component.html',
})
export class ThemedItemAlertsComponent extends ThemedComponent<ItemAlertsComponent> {
protected inAndOutputNames: (keyof ItemAlertsComponent & keyof this)[] = ['item'];
@Input() item: Item;
protected getComponentName(): string {
return 'ItemAlertsComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/item-page/alerts/item-alerts.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./item-alerts.component');
}
}

View File

@@ -27,13 +27,13 @@
<ng-template ngbNavContent>
<div class="row mt-2">
<div class="col-12 col-lg-6">
<ds-search-form id="search-form"
<ds-themed-search-form id="search-form"
[query]="(searchOptions$ | async)?.query"
[currentUrl]="'./'"
[inPlaceSearch]="true"
[searchPlaceholder]="'item.edit.item-mapper.search-form.placeholder' | translate"
(submitSearch)="performedSearch = true">
</ds-search-form>
</ds-themed-search-form>
</div>
</div>

View File

@@ -0,0 +1,32 @@
import { Component, Input } from '@angular/core';
import { ThemedComponent } from '../../../../shared/theme-support/themed.component';
import { FullFileSectionComponent } from './full-file-section.component';
import { Item } from '../../../../core/shared/item.model';
/**
* Themed wrapper for {@link FullFileSectionComponent}
*/
@Component({
selector: 'ds-themed-item-page-full-file-section',
styleUrls: [],
templateUrl: './../../../../shared/theme-support/themed.component.html',
})
export class ThemedFullFileSectionComponent extends ThemedComponent<FullFileSectionComponent> {
@Input() item: Item;
protected inAndOutputNames: (keyof FullFileSectionComponent & keyof this)[] = ['item'];
protected getComponentName(): string {
return 'FullFileSectionComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../../themes/${themeName}/app/item-page/full/field-components/file-section/full-file-section.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./full-file-section.component');
}
}

View File

@@ -1,7 +1,7 @@
<div class="container" *ngVar="(itemRD$ | async) as itemRD">
<div class="item-page" *ngIf="itemRD?.hasSucceeded" @fadeInOut>
<div *ngIf="itemRD?.payload as item">
<ds-item-alerts [item]="item"></ds-item-alerts>
<ds-themed-item-alerts [item]="item"></ds-themed-item-alerts>
<ds-item-versions-notice [item]="item"></ds-item-versions-notice>
<ds-view-tracker [object]="item"></ds-view-tracker>
<div *ngIf="!item.isWithdrawn || (isAdmin$|async)" class="full-item-info">
@@ -28,7 +28,7 @@
</tbody>
</table>
</div>
<ds-item-page-full-file-section [item]="item"></ds-item-page-full-file-section>
<ds-themed-item-page-full-file-section [item]="item"></ds-themed-item-page-full-file-section>
<ds-item-page-collections [item]="item"></ds-item-page-collections>
<ds-item-versions class="mt-2" [item]="item"></ds-item-versions>
<div class="button-row bottom" *ngIf="fromSubmissionObject">

View File

@@ -53,6 +53,10 @@ import { BitstreamRequestACopyPageComponent } from './bitstreams/request-a-copy/
import { FileSectionComponent } from './simple/field-components/file-section/file-section.component';
import { ItemSharedModule } from './item-shared.module';
import { DsoPageModule } from '../shared/dso-page/dso-page.module';
import { ThemedItemAlertsComponent } from './alerts/themed-item-alerts.component';
import {
ThemedFullFileSectionComponent
} from './full/field-components/file-section/themed-full-file-section.component';
const ENTRY_COMPONENTS = [
@@ -76,6 +80,7 @@ const DECLARATIONS = [
ItemPageFieldComponent,
CollectionsComponent,
FullFileSectionComponent,
ThemedFullFileSectionComponent,
PublicationComponent,
UntypedItemComponent,
ItemComponent,
@@ -91,6 +96,7 @@ const DECLARATIONS = [
OrcidSyncSettingsComponent,
OrcidQueueComponent,
ItemAlertsComponent,
ThemedItemAlertsComponent,
BitstreamRequestACopyPageComponent,
];

View File

@@ -13,6 +13,9 @@ import { MetadataValuesComponent } from './field-components/metadata-values/meta
import { GenericItemPageFieldComponent } from './simple/field-components/specific-field/generic/generic-item-page-field.component';
import { MetadataRepresentationListComponent } from './simple/metadata-representation-list/metadata-representation-list.component';
import { RelatedItemsComponent } from './simple/related-items/related-items-component';
import {
ThemedMetadataRepresentationListComponent
} from './simple/metadata-representation-list/themed-metadata-representation-list.component';
const ENTRY_COMPONENTS = [
ItemVersionsDeleteModalComponent,
@@ -27,6 +30,7 @@ const COMPONENTS = [
MetadataValuesComponent,
GenericItemPageFieldComponent,
MetadataRepresentationListComponent,
ThemedMetadataRepresentationListComponent,
RelatedItemsComponent,
];

View File

@@ -1,7 +1,7 @@
<div class="container" *ngVar="(itemRD$ | async) as itemRD">
<div class="item-page" *ngIf="itemRD?.hasSucceeded" @fadeInOut>
<div *ngIf="itemRD?.payload as item">
<ds-item-alerts [item]="item"></ds-item-alerts>
<ds-themed-item-alerts [item]="item"></ds-themed-item-alerts>
<ds-item-versions-notice [item]="item"></ds-item-versions-notice>
<ds-view-tracker [object]="item"></ds-view-tracker>
<ds-listable-object-component-loader *ngIf="!item.isWithdrawn || (isAdmin$|async)" [object]="item" [viewMode]="viewMode"></ds-listable-object-component-loader>

View File

@@ -25,12 +25,12 @@
</ng-container>
<ds-themed-item-page-file-section [item]="object"></ds-themed-item-page-file-section>
<ds-item-page-date-field [item]="object"></ds-item-page-date-field>
<ds-metadata-representation-list class="ds-item-page-mixed-author-field"
<ds-themed-metadata-representation-list class="ds-item-page-mixed-author-field"
[parentItem]="object"
[itemType]="'Person'"
[metadataFields]="['dc.contributor.author', 'dc.creator']"
[label]="'relationships.isAuthorOf' | translate">
</ds-metadata-representation-list>
</ds-themed-metadata-representation-list>
<ds-generic-item-page-field [item]="object"
[fields]="['journal.title']"
[label]="'publication.page.journal-title'">

View File

@@ -26,12 +26,12 @@
</ng-container>
<ds-themed-item-page-file-section [item]="object"></ds-themed-item-page-file-section>
<ds-item-page-date-field [item]="object"></ds-item-page-date-field>
<ds-metadata-representation-list class="ds-item-page-mixed-author-field"
<ds-themed-metadata-representation-list class="ds-item-page-mixed-author-field"
[parentItem]="object"
[itemType]="'Person'"
[metadataFields]="['dc.contributor.author', 'dc.creator']"
[label]="'relationships.isAuthorOf' | translate">
</ds-metadata-representation-list>
</ds-themed-metadata-representation-list>
<ds-generic-item-page-field [item]="object"
[fields]="['journal.title']"
[label]="'item.page.journal-title'">

View File

@@ -59,8 +59,10 @@ export class MetadataRepresentationListComponent extends AbstractIncrementalList
*/
total: number;
constructor(public relationshipService: RelationshipDataService,
private browseDefinitionDataService: BrowseDefinitionDataService) {
constructor(
public relationshipService: RelationshipDataService,
protected browseDefinitionDataService: BrowseDefinitionDataService,
) {
super();
}

View File

@@ -0,0 +1,35 @@
import { ThemedComponent } from '../../../shared/theme-support/themed.component';
import { MetadataRepresentationListComponent } from './metadata-representation-list.component';
import { Component, Input } from '@angular/core';
import { Item } from '../../../core/shared/item.model';
@Component({
selector: 'ds-themed-metadata-representation-list',
styleUrls: [],
templateUrl: '../../../shared/theme-support/themed.component.html',
})
export class ThemedMetadataRepresentationListComponent extends ThemedComponent<MetadataRepresentationListComponent> {
protected inAndOutputNames: (keyof MetadataRepresentationListComponent & keyof this)[] = ['parentItem', 'itemType', 'metadataFields', 'label', 'incrementBy'];
@Input() parentItem: Item;
@Input() itemType: string;
@Input() metadataFields: string[];
@Input() label: string;
@Input() incrementBy = 10;
protected getComponentName(): string {
return 'MetadataRepresentationListComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../themes/${themeName}/app/item-page/simple/metadata-representation-list/metadata-representation-list.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./metadata-representation-list.component`);
}
}

View File

@@ -12,7 +12,7 @@
<li ngbNavItem>
<a ngbNavLink>{{'submission.sections.describe.relationship-lookup.search-tab.tab-title.' + relationshipOptions.relationshipType | translate : { count: (totalInternal$ | async)} }}</a>
<ng-template ngbNavContent>
<ds-dynamic-lookup-relation-search-tab
<ds-themed-dynamic-lookup-relation-search-tab
[selection$]="selection$"
[listId]="listId"
[relationship]="relationshipOptions"
@@ -28,13 +28,13 @@
(deselectObject)="deselect($event)"
(resultFound)="setTotalInternals($event.pageInfo.totalElements)"
class="d-block pt-3">
</ds-dynamic-lookup-relation-search-tab>
</ds-themed-dynamic-lookup-relation-search-tab>
</ng-template>
</li>
<li ngbNavItem *ngFor="let source of (externalSourcesRD$ | async); let idx = index">
<a ngbNavLink>{{'submission.sections.describe.relationship-lookup.search-tab.tab-title.' + source.id | translate : { count: (totalExternal$ | async)[idx] } }}</a>
<ng-template ngbNavContent>
<ds-dynamic-lookup-relation-external-source-tab
<ds-themed-dynamic-lookup-relation-external-source-tab
[label]="label"
[listId]="listId"
[repeatable]="repeatable"
@@ -45,7 +45,7 @@
[externalSource]="source"
(importedObject)="imported($event)"
class="d-block pt-3">
</ds-dynamic-lookup-relation-external-source-tab>
</ds-themed-dynamic-lookup-relation-external-source-tab>
</ng-template>
</li>
<li ngbNavItem *ngIf="!isEditRelationship">

View File

@@ -4,10 +4,10 @@
<ds-page-size-selector></ds-page-size-selector>
</div>
<div class="col-8">
<ds-search-form [query]="(searchConfigService.paginatedSearchOptions | async)?.query"
<ds-themed-search-form [query]="(searchConfigService.paginatedSearchOptions | async)?.query"
[inPlaceSearch]="true"
[searchPlaceholder]="'submission.sections.describe.relationship-lookup.selection-tab.search-form.placeholder' | translate">
</ds-search-form>
</ds-themed-search-form>
<div>
<h3>{{ 'submission.sections.describe.relationship-lookup.selection-tab.title.' + externalSource.id | translate}}</h3>
<ng-container *ngVar="(entriesRD$ | async) as entriesRD">

View File

@@ -124,12 +124,13 @@ export class DsDynamicLookupRelationExternalSourceTabComponent implements OnInit
*/
relatedEntityType: ItemType;
constructor(private router: Router,
public searchConfigService: SearchConfigurationService,
private externalSourceService: ExternalSourceDataService,
private modalService: NgbModal,
private selectableListService: SelectableListService,
private paginationService: PaginationService
constructor(
protected router: Router,
public searchConfigService: SearchConfigurationService,
protected externalSourceService: ExternalSourceDataService,
protected modalService: NgbModal,
protected selectableListService: SelectableListService,
protected paginationService: PaginationService,
) {
}

View File

@@ -0,0 +1,62 @@
import { ThemedComponent } from '../../../../../theme-support/themed.component';
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { RelationshipOptions } from '../../../models/relationship-options.model';
import { ListableObject } from '../../../../../object-collection/shared/listable-object.model';
import { Context } from '../../../../../../core/shared/context.model';
import { Item } from '../../../../../../core/shared/item.model';
import { SEARCH_CONFIG_SERVICE } from '../../../../../../my-dspace-page/my-dspace-page.component';
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
import { Collection } from '../../../../../../core/shared/collection.model';
import { ExternalSource } from '../../../../../../core/shared/external-source.model';
import { DsDynamicLookupRelationExternalSourceTabComponent } from './dynamic-lookup-relation-external-source-tab.component';
import { fadeIn, fadeInOut } from '../../../../../animations/fade';
@Component({
selector: 'ds-themed-dynamic-lookup-relation-external-source-tab',
styleUrls: [],
templateUrl: '../../../../../theme-support/themed.component.html',
providers: [
{
provide: SEARCH_CONFIG_SERVICE,
useClass: SearchConfigurationService
}
],
animations: [
fadeIn,
fadeInOut
]
})
export class ThemedDynamicLookupRelationExternalSourceTabComponent extends ThemedComponent<DsDynamicLookupRelationExternalSourceTabComponent> {
protected inAndOutputNames: (keyof DsDynamicLookupRelationExternalSourceTabComponent & keyof this)[] = ['label', 'listId',
'item', 'collection', 'relationship', 'context', 'repeatable', 'importedObject', 'externalSource'];
@Input() label: string;
@Input() listId: string;
@Input() item: Item;
@Input() collection: Collection;
@Input() relationship: RelationshipOptions;
@Input() context: Context;
@Input() repeatable: boolean;
@Output() importedObject: EventEmitter<ListableObject> = new EventEmitter<ListableObject>();
@Input() externalSource: ExternalSource;
protected getComponentName(): string {
return 'DsDynamicLookupRelationExternalSourceTabComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../../../../themes/${themeName}/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/dynamic-lookup-relation-external-source-tab.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./dynamic-lookup-relation-external-source-tab.component`);
}
}

View File

@@ -9,6 +9,7 @@
[selectionConfig]="{ repeatable: repeatable, listId: listId }"
[showScopeSelector]="false"
[showViewModes]="false"
[query]="query"
(resultFound)="onResultFound($event)"
(deselectObject)="deselectObject.emit($event)"
(selectObject)="selectObject.emit($event)">

View File

@@ -147,12 +147,12 @@ export class DsDynamicLookupRelationSearchTabComponent implements OnInit, OnDest
@Output() resultFound: EventEmitter<SearchObjects<DSpaceObject>> = new EventEmitter<SearchObjects<DSpaceObject>>();
constructor(
private searchService: SearchService,
private selectableListService: SelectableListService,
protected searchService: SearchService,
protected selectableListService: SelectableListService,
public searchConfigService: SearchConfigurationService,
public lookupRelationService: LookupRelationService,
private relationshipService: RelationshipDataService,
private paginationService: PaginationService
protected relationshipService: RelationshipDataService,
protected paginationService: PaginationService,
) {
}

View File

@@ -0,0 +1,71 @@
import { ThemedComponent } from '../../../../../theme-support/themed.component';
import { DsDynamicLookupRelationSearchTabComponent } from './dynamic-lookup-relation-search-tab.component';
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { RelationshipOptions } from '../../../models/relationship-options.model';
import { Observable } from 'rxjs';
import { ListableObject } from '../../../../../object-collection/shared/listable-object.model';
import { Context } from '../../../../../../core/shared/context.model';
import { RelationshipType } from '../../../../../../core/shared/item-relationships/relationship-type.model';
import { Item } from '../../../../../../core/shared/item.model';
import { SearchResult } from '../../../../../search/models/search-result.model';
import { SearchObjects } from '../../../../../search/models/search-objects.model';
import { DSpaceObject } from '../../../../../../core/shared/dspace-object.model';
import { SEARCH_CONFIG_SERVICE } from '../../../../../../my-dspace-page/my-dspace-page.component';
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
@Component({
selector: 'ds-themed-dynamic-lookup-relation-search-tab',
styleUrls: [],
templateUrl: '../../../../../theme-support/themed.component.html',
providers: [
{
provide: SEARCH_CONFIG_SERVICE,
useClass: SearchConfigurationService
}
]
})
export class ThemedDynamicLookupRelationSearchTabComponent extends ThemedComponent<DsDynamicLookupRelationSearchTabComponent> {
protected inAndOutputNames: (keyof DsDynamicLookupRelationSearchTabComponent & keyof this)[] = ['relationship', 'listId',
'query', 'repeatable', 'selection$', 'context', 'relationshipType', 'item', 'isLeft', 'toRemove', 'isEditRelationship',
'deselectObject', 'selectObject', 'resultFound'];
@Input() relationship: RelationshipOptions;
@Input() listId: string;
@Input() query: string;
@Input() repeatable: boolean;
@Input() selection$: Observable<ListableObject[]>;
@Input() context: Context;
@Input() relationshipType: RelationshipType;
@Input() item: Item;
@Input() isLeft: boolean;
@Input() toRemove: SearchResult<Item>[];
@Input() isEditRelationship: boolean;
@Output() deselectObject: EventEmitter<ListableObject> = new EventEmitter<ListableObject>();
@Output() selectObject: EventEmitter<ListableObject> = new EventEmitter<ListableObject>();
@Output() resultFound: EventEmitter<SearchObjects<DSpaceObject>> = new EventEmitter<SearchObjects<DSpaceObject>>();
protected getComponentName(): string {
return 'DsDynamicLookupRelationSearchTabComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../../../../../themes/${themeName}/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/search-tab/dynamic-lookup-relation-search-tab.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./dynamic-lookup-relation-search-tab.component`);
}
}

View File

@@ -40,6 +40,8 @@ import { NgxMaskModule } from 'ngx-mask';
import { ThemedExternalSourceEntryImportModalComponent } from './builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/external-source-entry-import-modal/themed-external-source-entry-import-modal.component';
import { NgbDatepickerModule, NgbTimepickerModule } from '@ng-bootstrap/ng-bootstrap';
import { CdkTreeModule } from '@angular/cdk/tree';
import { ThemedDynamicLookupRelationSearchTabComponent } from './builder/ds-dynamic-form-ui/relation-lookup-modal/search-tab/themed-dynamic-lookup-relation-search-tab.component';
import { ThemedDynamicLookupRelationExternalSourceTabComponent } from './builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/themed-dynamic-lookup-relation-external-source-tab.component';
const COMPONENTS = [
CustomSwitchComponent,
@@ -48,8 +50,10 @@ const COMPONENTS = [
DsDynamicListComponent,
DsDynamicLookupComponent,
DsDynamicLookupRelationSearchTabComponent,
ThemedDynamicLookupRelationSearchTabComponent,
DsDynamicLookupRelationSelectionTabComponent,
DsDynamicLookupRelationExternalSourceTabComponent,
ThemedDynamicLookupRelationExternalSourceTabComponent,
DsDynamicDisabledComponent,
DsDynamicLookupRelationModalComponent,
DsDynamicScrollableDropdownComponent,

View File

@@ -31,7 +31,7 @@ export class SearchFormComponent implements OnChanges {
/**
* True when the search component should show results on the current page
*/
@Input() inPlaceSearch;
@Input() inPlaceSearch: boolean;
/**
* The currently selected scope object's UUID
@@ -68,13 +68,14 @@ export class SearchFormComponent implements OnChanges {
*/
@Output() submitSearch = new EventEmitter<any>();
constructor(private router: Router,
private searchService: SearchService,
private paginationService: PaginationService,
private searchConfig: SearchConfigurationService,
private modalService: NgbModal,
private dsoService: DSpaceObjectDataService,
public dsoNameService: DSONameService,
constructor(
protected router: Router,
protected searchService: SearchService,
protected paginationService: PaginationService,
protected searchConfig: SearchConfigurationService,
protected modalService: NgbModal,
protected dsoService: DSpaceObjectDataService,
public dsoNameService: DSONameService,
) {
}

View File

@@ -0,0 +1,50 @@
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { ThemedComponent } from '../theme-support/themed.component';
import { SearchFormComponent } from './search-form.component';
/**
* Themed wrapper for {@link SearchFormComponent}
*/
@Component({
selector: 'ds-themed-search-form',
styleUrls: [],
templateUrl: '../../shared/theme-support/themed.component.html',
})
export class ThemedSearchFormComponent extends ThemedComponent<SearchFormComponent> {
@Input() query: string;
@Input() inPlaceSearch: boolean;
@Input() scope: string;
@Input() currentUrl: string;
@Input() large: boolean;
@Input() brandColor: string;
@Input() searchPlaceholder: string;
@Input() showScopeSelector: boolean;
@Output() submitSearch: EventEmitter<any> = new EventEmitter();
protected inAndOutputNames: (keyof SearchFormComponent & keyof this)[] = [
'query', 'inPlaceSearch', 'scope', 'currentUrl', 'large', 'brandColor', 'searchPlaceholder', 'showScopeSelector',
'submitSearch',
];
protected getComponentName(): string {
return 'SearchFormComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/shared/search-form/search-form.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import('./search-form.component');
}
}

View File

@@ -80,14 +80,14 @@
</ng-template>
<ng-template #searchForm>
<ds-search-form *ngIf="searchEnabled" id="search-form"
<ds-themed-search-form *ngIf="searchEnabled" id="search-form"
[query]="(searchOptions$ | async)?.query"
[scope]="(searchOptions$ | async)?.scope"
[currentUrl]="searchLink"
[showScopeSelector]="showScopeSelector"
[inPlaceSearch]="inPlaceSearch"
[searchPlaceholder]="searchFormPlaceholder | translate">
</ds-search-form>
</ds-themed-search-form>
<div class="row mb-3 mb-md-1">
<div class="labels col-sm-9">
<ds-search-labels *ngIf="searchEnabled" [inPlaceSearch]="inPlaceSearch"></ds-search-labels>

View File

@@ -153,6 +153,11 @@ export class SearchComponent implements OnInit {
*/
@Input() trackStatistics = false;
/**
* The default value for the search query when none is already defined in the {@link SearchConfigurationService}
*/
@Input() query: string;
/**
* The current configuration used during the search
*/
@@ -309,6 +314,9 @@ export class SearchComponent implements OnInit {
configuration: searchOptions.configuration || configuration,
sort: sortOption || searchOptions.sort
});
if (combinedOptions.query === '') {
combinedOptions.query = this.query;
}
const newSearchOptions = new PaginatedSearchOptions(combinedOptions);
// check if search options are changed
// if so retrieve new related results otherwise skip it

View File

@@ -19,7 +19,7 @@ import { ListableObject } from '../object-collection/shared/listable-object.mode
templateUrl: '../theme-support/themed.component.html',
})
export class ThemedSearchComponent extends ThemedComponent<SearchComponent> {
protected inAndOutputNames: (keyof SearchComponent & keyof this)[] = ['configurationList', 'context', 'configuration', 'fixedFilterQuery', 'useCachedVersionIfAvailable', 'inPlaceSearch', 'linkType', 'paginationId', 'searchEnabled', 'sideBarWidth', 'searchFormPlaceholder', 'selectable', 'selectionConfig', 'showCsvExport', 'showSidebar', 'showViewModes', 'useUniquePageId', 'viewModeList', 'showScopeSelector', 'resultFound', 'deselectObject', 'selectObject', 'trackStatistics'];
protected inAndOutputNames: (keyof SearchComponent & keyof this)[] = ['configurationList', 'context', 'configuration', 'fixedFilterQuery', 'useCachedVersionIfAvailable', 'inPlaceSearch', 'linkType', 'paginationId', 'searchEnabled', 'sideBarWidth', 'searchFormPlaceholder', 'selectable', 'selectionConfig', 'showCsvExport', 'showSidebar', 'showViewModes', 'useUniquePageId', 'viewModeList', 'showScopeSelector', 'resultFound', 'deselectObject', 'selectObject', 'trackStatistics', 'query'];
@Input() configurationList: SearchConfigurationOption[] = [];
@@ -61,6 +61,8 @@ export class ThemedSearchComponent extends ThemedComponent<SearchComponent> {
@Input() trackStatistics = false;
@Input() query: string;
@Output() resultFound: EventEmitter<SearchObjects<DSpaceObject>> = new EventEmitter<SearchObjects<DSpaceObject>>();
@Output() deselectObject: EventEmitter<ListableObject> = new EventEmitter<ListableObject>();

View File

@@ -51,6 +51,7 @@ import { LoadingComponent } from './loading/loading.component';
import { PaginationComponent } from './pagination/pagination.component';
import { ThumbnailComponent } from '../thumbnail/thumbnail.component';
import { SearchFormComponent } from './search-form/search-form.component';
import { ThemedSearchFormComponent } from './search-form/themed-search-form.component';
import {
SearchResultGridElementComponent
} from './object-grid/search-result-grid-element/search-result-grid-element.component';
@@ -330,6 +331,7 @@ const COMPONENTS = [
PaginationComponent,
RSSComponent,
SearchFormComponent,
ThemedSearchFormComponent,
PageWithSidebarComponent,
SidebarDropdownComponent,
ThumbnailComponent,

View File

@@ -169,7 +169,7 @@
"admin.registries.bitstream-formats.edit.success.head": "Éxito",
// "admin.registries.bitstream-formats.edit.supportLevel.hint": "The level of support your institution pledges for this format.",
"admin.registries.bitstream-formats.edit.supportLevel.hint": "El nivel de apoyo que su institución promete para este formato.",
"admin.registries.bitstream-formats.edit.supportLevel.hint": "El nivel de soporte que su institución promete para este formato.",
// "admin.registries.bitstream-formats.edit.supportLevel.label": "Support level",
"admin.registries.bitstream-formats.edit.supportLevel.label": "Nivel de soporte",
@@ -309,13 +309,13 @@
"admin.registries.schema.notification.deleted.success": "{{ amount }} esquemas de metadatos eliminados correctamente",
// "admin.registries.schema.notification.edited": "Successfully edited metadata schema \"{{prefix}}\"",
"admin.registries.schema.notification.edited": "Esquema de metadatos editado correctamente \"{{ prefix }}\"",
"admin.registries.schema.notification.edited": "Esquema de metadatos \"{{ prefix }}\" editado correctamente",
// "admin.registries.schema.notification.failure": "Error",
"admin.registries.schema.notification.failure": "Error",
// "admin.registries.schema.notification.field.created": "Successfully created metadata field \"{{field}}\"",
"admin.registries.schema.notification.field.created": "Campo de metadatos creado correctamente \"{{ field }}\"",
"admin.registries.schema.notification.field.created": "Campo de metadatos \"{{ field }}\" creado correctamente",
// "admin.registries.schema.notification.field.deleted.failure": "Failed to delete {{amount}} metadata fields",
"admin.registries.schema.notification.field.deleted.failure": "No se pudieron borrar {{ amount }} campos de metadatos",
@@ -324,7 +324,7 @@
"admin.registries.schema.notification.field.deleted.success": "{{ amount }} campos de metadatos eliminados correctamente",
// "admin.registries.schema.notification.field.edited": "Successfully edited metadata field \"{{field}}\"",
"admin.registries.schema.notification.field.edited": "Campo de metadatos editado correctamente \"{{ field }}\"",
"admin.registries.schema.notification.field.edited": "Campo de metadatos \"{{ field }}\" editado correctamente",
// "admin.registries.schema.notification.success": "Success",
"admin.registries.schema.notification.success": "Éxito",
@@ -746,7 +746,14 @@
// "admin.access-control.groups.form.return": "Back",
"admin.access-control.groups.form.return": "Atrás",
// "admin.access-control.groups.form.tooltip.editGroupPage": "On this page, you can modify the properties and members of a group. In the top section, you can edit the group name and description, unless this is an admin group for a collection or community, in which case the group name and description are auto-generated and cannot be edited. In the following sections, you can edit group membership. See [the wiki](https://wiki.lyrasis.org/display/DSDOC7x/Create+or+manage+a+user+group) for more details.",
"admin.access-control.groups.form.tooltip.editGroupPage": "En esta página, puede modificar las propiedades y miembros de un grupo. En la sección superior, puede editar el nombre del grupo y la descripción, a menos que este sea un grupo de administración de una colección o comunidad, en cuyo caso el nombre y descripción del grupo fueron auto-generadas y no podrán ser editadas. En las secciones siguientes, puede editar la afiliación al grupo. Para más detalles ver [la wiki](https://wiki.lyrasis.org/display/DSDOC7x/Create+or+manage+a+user+group).",
// "admin.access-control.groups.form.tooltip.editGroup.addEpeople": "To add or remove an EPerson to/from this group, either click the 'Browse All' button or use the search bar below to search for users (use the dropdown to the left of the search bar to choose whether to search by metadata or by email). Then click the plus icon for each user you wish to add in the list below, or the trash can icon for each user you wish to remove. The list below may have several pages: use the page controls below the list to navigate to the next pages. Once you are ready, save your changes by clicking the 'Save' button in the top section.",
"admin.access-control.groups.form.tooltip.editGroup.addEpeople": "Para agregar o remover una persona en este grupo, pulse el botón Examinar todo o utilice la barra de búsqueda de abajo para buscar los usuario (Use el desplegable que se encuentra a la derecha de la barra de búsqueda para seleccionar entre buscar por metadato o por correo electrónico). Posteriormente pulse el botón con el icono más por cada usuario que desea agregar a la lista, o el icono de papelera por cada usuario que desea remover. La lista puede contener varias páginas: utilice los controles de paginación debajo de la lista, para navegar a las siguientes páginas. Cuando haya finalizado, guarde sus cambios pulsando el botón Guardar ubicado en la parte superior de la sección.",
// "admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "To add or remove a Subgroup to/from this group, either click the 'Browse All' button or use the search bar below to search for subgroups. Then click the plus icon for each subgroup you wish to add in the list below, or the trash can icon for each subgroup you wish to remove. The list below may have several pages: use the page controls below the list to navigate to the next pages. Once you are ready, save your changes by clicking the 'Save' button in the top section.",
"admin.access-control.groups.form.tooltip.editGroup.addSubgroups": "Para agregar o remover un sub-grupo en este grupo, pulse el botón Examinar todo o utilice la barra de búsqueda de abajo para buscar los subgrupos- Posteriormente pulse el botón con el icono más por cada sub-grupo que desea agregar a la lista, o el icono de papelera por cada sub-grupo que desea remover. La lista puede contener varias páginas: utilice los controles de paginación debajo de la lista, para navegar a las siguientes páginas. Cuando haya finalizado, guarde sus cambios pulsando el botón Guardar ubicado en la parte superior de la sección.",
// "admin.search.breadcrumbs": "Administrative Search",
"admin.search.breadcrumbs": "Búsqueda administrativa",
@@ -796,12 +803,21 @@
// "admin.workflow.item.workflow": "Workflow",
"admin.workflow.item.workflow": "Flujo de trabajo",
// "admin.workflow.item.workspace": "Workspace",
"admin.workflow.item.workspace": "Espacio de trabajo",
// "admin.workflow.item.delete": "Delete",
"admin.workflow.item.delete": "Borrar",
// "admin.workflow.item.send-back": "Send back",
"admin.workflow.item.send-back": "Enviar de vuelta",
// "admin.workflow.item.policies": "Policies",
"admin.workflow.item.policies": "Políticas",
// "admin.workflow.item.supervision": "Supervision",
"admin.workflow.item.supervision": "Supervisión",
// "admin.metadata-import.breadcrumbs": "Import Metadata",
@@ -861,6 +877,101 @@
// "admin.metadata-import.page.validateOnly.hint": "When selected, the uploaded CSV will be validated. You will receive a report of detected changes, but no changes will be saved.",
"admin.metadata-import.page.validateOnly.hint": "Al seleccionar, se validará el CSV subido. Recibirá un informe con los cambios detectados, pero no se efectuarán dichos cambios.",
// "advanced-workflow-action.rating.form.rating.label": "Rating",
"advanced-workflow-action.rating.form.rating.label": "Evaluación",
// "advanced-workflow-action.rating.form.rating.error": "You must rate the item",
"advanced-workflow-action.rating.form.rating.error": "Usted debe evaluar el ítem",
// "advanced-workflow-action.rating.form.review.label": "Review",
"advanced-workflow-action.rating.form.review.label": "Revisión",
// "advanced-workflow-action.rating.form.review.error": "You must enter a review to submit this rating",
"advanced-workflow-action.rating.form.review.error": "Debe ingresar una revisión para enviar esta evaluación",
// "advanced-workflow-action.rating.description": "Please select a rating below",
"advanced-workflow-action.rating.description": "Por favor, a continuación seleccione una evaluación",
// "advanced-workflow-action.rating.description-requiredDescription": "Please select a rating below and also add a review",
"advanced-workflow-action.rating.description-requiredDescription": "Por favor, seleccione una evaluación y también agregue una revisión",
// "advanced-workflow-action.select-reviewer.description-single": "Please select a single reviewer below before submitting",
"advanced-workflow-action.select-reviewer.description-single": "Por favor, seleccione un revisor antes de realizar el envío",
// "advanced-workflow-action.select-reviewer.description-multiple": "Please select one or more reviewers below before submitting",
"advanced-workflow-action.select-reviewer.description-multiple": "Por favor, seleccione uno o mas revisores antes de realizar el envío",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "EPeople",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.head": "Usuario",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Add EPeople",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.head": "Agregar usuario",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "Browse All",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.button.see-all": "Explorar todo",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Current Members",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.headMembers": "Miembros actuales",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata": "Metadata",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.metadata": "Metadatos",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email": "E-mail (exact)",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.scope.email": "Correo electrónico (exacto)",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Search",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.search.button": "Buscar",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.id": "ID",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Name",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.name": "Nombre",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Identity",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.identity": "Identidad",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Email",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.email": "Correo electrónico",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "NetID",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.netid": "NetID",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "Remove / Add",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit": "Eliminar / Agregar",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "Remove member with name \"{{name}}\"",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.remove": "Eliminar miembro con nombre \"{{name}}\"",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Successfully added member: \"{{name}}\"",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.addMember": "Miembro agregado exitosamente: \"{{name}}\"",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Failed to add member: \"{{name}}\"",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.addMember": "Error al agregar miembro: \"{{name}}\"",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "Successfully deleted member: \"{{name}}\"",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.success.deleteMember": "Miembro borrado exitosamente: \"{{name}}\"",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "Failed to delete member: \"{{name}}\"",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.deleteMember": "No fue posible borrar el miembro: \"{{name}}\"",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Add member with name \"{{name}}\"",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.table.edit.buttons.add": "Agregar miembro con nombre \"{{name}}\"",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "No current active group, submit a name first.",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.notification.failure.noActiveGroup": "Actualmente no hay un grupo activo, primero envíe un nombre.",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet": "No members in group yet, search and add.",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-members-yet": "Aún no hay miembros en el grupo, busque y agregue.",
// "advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "No EPeople found in that search",
"advanced-workflow-action-select-reviewer.groups.form.reviewers-list.no-items": "No se encontró ningún usuario en la búsqueda",
// "advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "No reviewer selected.",
"advanced-workflow-action.select-reviewer.no-reviewer-selected.error": "Ningún revisor selecionado.",
// "admin.batch-import.page.validateOnly.hint": "When selected, the uploaded ZIP will be validated. You will receive a report of detected changes, but no changes will be saved.",
"admin.batch-import.page.validateOnly.hint": "Al seleccionar, se validará el archivo ZIP subido. Recibirá un informe con los cambios detectados, pero no se efectuarán dichos cambios.",
@@ -1158,10 +1269,23 @@
"browse.title.page": "Examinando {{ collection }} por {{ field }} {{ value }}",
// "search.browse.item-back": "Back to Results",
"search.browse.item-back": "Volver a los resultados",
// "chips.remove": "Remove chip",
"chips.remove": "Quitar chip",
// "claimed-approved-search-result-list-element.title": "Approved",
"claimed-approved-search-result-list-element.title": "Aprobado",
// "claimed-declined-search-result-list-element.title": "Rejected, sent back to submitter",
"claimed-declined-search-result-list-element.title": "Rechazado, enviar de vuelta al depositante",
// "claimed-declined-task-search-result-list-element.title": "Declined, sent back to Review Manager's workflow",
"claimed-declined-task-search-result-list-element.title": "Declinado, enviar de vuelta al Administrador de Revisión del flujo de trabajo",
// "collection.create.head": "Create a Collection",
"collection.create.head": "Crear una colección",
@@ -1766,6 +1890,13 @@
"comcol-role.edit.reviewer.description": "Los revisores pueden aceptar o rechazar envíos entrantes. Sin embargo, no pueden editar los metadatos del envío.",
// "comcol-role.edit.scorereviewers.name": "Score Reviewers",
// TODO New key - Add a translation
"comcol-role.edit.scorereviewers.name": "Score Reviewers",
// "comcol-role.edit.scorereviewers.description": "Reviewers are able to give a score to incoming submissions, this will define whether the submission will be rejected or not.",
// TODO New key - Add a translation
"comcol-role.edit.scorereviewers.description": "Reviewers are able to give a score to incoming submissions, this will define whether the submission will be rejected or not.",
// "community.form.abstract": "Short Description",
"community.form.abstract": "Breve descripción",
@@ -1842,7 +1973,7 @@
"cookies.consent.close": "Cerrar",
// "cookies.consent.decline": "Decline",
"cookies.consent.decline": "Declinar",
"cookies.consent.decline": "Rechazar",
// "cookies.consent.ok": "That's ok",
"cookies.consent.ok": "Aceptar",
@@ -1951,8 +2082,8 @@
// "curation-task.task.vscan.label": "Virus Scan",
"curation-task.task.vscan.label": "Búsqueda de virus",
// "curation-task.task.registerdoi.label": "Register DOI",
"curation-task.task.registerdoi.label": "Registra DOI",
// "curation-task.task.register-doi.label": "Register DOI",
"curation-task.task.register-doi.label": "Registro DOI",
@@ -2094,6 +2225,45 @@
// "dso-selector.results-could-not-be-retrieved": "Something went wrong, please refresh again ↻",
"dso-selector.results-could-not-be-retrieved": "Algo salió mal, por favor actualice de nuevo ↻",
// "supervision-group-selector.header": "Supervision Group Selector",
"supervision-group-selector.header": "Selector de grupo de supervisión",
// "supervision-group-selector.select.type-of-order.label": "Select a type of Order",
"supervision-group-selector.select.type-of-order.label": "Seleccione un tipo de Orden",
// "supervision-group-selector.select.type-of-order.option.none": "NONE",
"supervision-group-selector.select.type-of-order.option.none": "NINGUNO",
// "supervision-group-selector.select.type-of-order.option.editor": "EDITOR",
"supervision-group-selector.select.type-of-order.option.editor": "EDITOR",
// "supervision-group-selector.select.type-of-order.option.observer": "OBSERVER",
"supervision-group-selector.select.type-of-order.option.observer": "OBSERVADOR",
// "supervision-group-selector.select.group.label": "Select a Group",
"supervision-group-selector.select.group.label": "Seleccione un grupo",
// "supervision-group-selector.button.cancel": "Cancel",
"supervision-group-selector.button.cancel": "Cancelar",
// "supervision-group-selector.button.save": "Save",
"supervision-group-selector.button.save": "Guardar",
// "supervision-group-selector.select.type-of-order.error": "Please select a type of order",
"supervision-group-selector.select.type-of-order.error": "Por favor seleccione un tipo de orden",
// "supervision-group-selector.select.group.error": "Please select a group",
"supervision-group-selector.select.group.error": "Por favor seleccione un grupo",
// "supervision-group-selector.notification.create.success.title": "Successfully created supervision order for group {{ name }}",
"supervision-group-selector.notification.create.success.title": "Orden de supervisión creada exitosamente para el grupo {{ name }}",
// "supervision-group-selector.notification.create.failure.title": "Error",
"supervision-group-selector.notification.create.failure.title": "Error",
// "supervision-group-selector.notification.create.already-existing" : "A supervision order already exists on this item for selected group",
"supervision-group-selector.notification.create.already-existing" : "Ya existe una orden de supervisión para este ítem en el grupo selecionado",
// "confirmation-modal.export-metadata.header": "Export metadata for {{ dsoName }}",
"confirmation-modal.export-metadata.header": "Exportar metadatos para {{ dsoName }}",
@@ -2142,6 +2312,17 @@
// "confirmation-modal.delete-profile.confirm": "Delete",
"confirmation-modal.delete-profile.confirm": "Borrar",
// "confirmation-modal.delete-subscription.header": "Delete Subscription",
"confirmation-modal.delete-subscription.header": "Borrar suscripción",
// "confirmation-modal.delete-subscription.info": "Are you sure you want to delete subscription for \"{{ dsoName }}\"",
"confirmation-modal.delete-subscription.info": "Esta usted seguro que desea borrar la suscripción a \"{{ dsoName }}\"",
// "confirmation-modal.delete-subscription.cancel": "Cancel",
"confirmation-modal.delete-subscription.cancel": "Cancelar",
// "confirmation-modal.delete-subscription.confirm": "Delete",
"confirmation-modal.delete-subscription.confirm": "Borrar",
// "error.bitstream": "Error fetching bitstream",
"error.bitstream": "Error al obtener el archivo",
@@ -2260,8 +2441,8 @@
// "forgot-email.form.email.error.required": "Please fill in an email address",
"forgot-email.form.email.error.required": "Por favor introduzca una dirección de correo electrónico",
// "forgot-email.form.email.error.pattern": "Please fill in a valid email address",
"forgot-email.form.email.error.pattern": "Por favor introduzca una dirección de correo electrónico válida",
// "forgot-email.form.email.error.not-email-form": "Please fill in a valid email address",
"forgot-email.form.email.error.not-email-form": "Por favor introduzca una dirección de correo electrónico valida",
// "forgot-email.form.email.hint": "An email will be sent to this address with a further instructions.",
"forgot-email.form.email.hint": "Se le enviará un mensaje a esa dirección con las instrucciones pertinentes.",
@@ -2818,6 +2999,69 @@
// "item.edit.tabs.item-mapper.title": "Item Edit - Collection Mapper",
"item.edit.tabs.item-mapper.title": "Edición de ítem - Mapeador de colecciones",
// "item.edit.identifiers.doi.status.UNKNOWN": "Unknown",
"item.edit.identifiers.doi.status.UNKNOWN": "Desconocido",
// "item.edit.identifiers.doi.status.TO_BE_REGISTERED": "Queued for registration",
"item.edit.identifiers.doi.status.TO_BE_REGISTERED": "En cola para registro",
// "item.edit.identifiers.doi.status.TO_BE_RESERVED": "Queued for reservation",
"item.edit.identifiers.doi.status.TO_BE_RESERVED": "En cola para reserva",
// "item.edit.identifiers.doi.status.IS_REGISTERED": "Registered",
"item.edit.identifiers.doi.status.IS_REGISTERED": "Registrado",
// "item.edit.identifiers.doi.status.IS_RESERVED": "Reserved",
"item.edit.identifiers.doi.status.IS_RESERVED": "Reservado",
// "item.edit.identifiers.doi.status.UPDATE_RESERVED": "Reserved (update queued)",
"item.edit.identifiers.doi.status.UPDATE_RESERVED": "Reservado (actualización en cola)",
// "item.edit.identifiers.doi.status.UPDATE_REGISTERED": "Registered (update queued)",
"item.edit.identifiers.doi.status.UPDATE_REGISTERED": "Registrado (actualización en cola)",
// "item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "Queued for update and registration",
"item.edit.identifiers.doi.status.UPDATE_BEFORE_REGISTRATION": "En cola para actualización y registro",
// "item.edit.identifiers.doi.status.TO_BE_DELETED": "Queued for deletion",
"item.edit.identifiers.doi.status.TO_BE_DELETED": "En cola para eliminación",
// "item.edit.identifiers.doi.status.DELETED": "Deleted",
"item.edit.identifiers.doi.status.DELETED": "Borrado",
// "item.edit.identifiers.doi.status.PENDING": "Pending (not registered)",
"item.edit.identifiers.doi.status.PENDING": "Pendiente (no registrado)",
// "item.edit.identifiers.doi.status.MINTED": "Minted (not registered)",
"item.edit.identifiers.doi.status.MINTED": "Asignado (no registrado)",
// "item.edit.tabs.status.buttons.register-doi.label": "Register a new or pending DOI",
"item.edit.tabs.status.buttons.register-doi.label": "Registrar un nuevo DOI o uno pendiente",
// "item.edit.tabs.status.buttons.register-doi.button": "Register DOI...",
"item.edit.tabs.status.buttons.register-doi.button": "Registrar DOI...",
// "item.edit.register-doi.header": "Register a new or pending DOI",
"item.edit.register-doi.header": "Registrar un nuevo DOI o uno pendiente",
// "item.edit.register-doi.description": "Review any pending identifiers and item metadata below and click Confirm to proceed with DOI registration, or Cancel to back out",
"item.edit.register-doi.description": "Revise los identificadores pendientes y los metadatos a continuación y pulse Confirmar para proceder con el registro DOI, o pulse Cancelar para devolverse",
// "item.edit.register-doi.confirm": "Confirm",
"item.edit.register-doi.confirm": "Confirmar",
// "item.edit.register-doi.cancel": "Cancel",
"item.edit.register-doi.cancel": "Cancelar",
// "item.edit.register-doi.success": "DOI queued for registration successfully.",
"item.edit.register-doi.success": "Registro exitoso del DOI en cola.",
// "item.edit.register-doi.error": "Error registering DOI",
"item.edit.register-doi.error": "Error registrando el DOI",
// "item.edit.register-doi.to-update": "The following DOI has already been minted and will be queued for registration online",
"item.edit.register-doi.to-update": "El siguiente DOI ya ha sido asignado y estará en cola para el registro en línea",
// "item.edit.item-mapper.buttons.add": "Map item to selected collections",
"item.edit.item-mapper.buttons.add": "Asignar ítem a colecciones seleccionadas",
@@ -2880,6 +3124,12 @@
// "item.edit.metadata.discard-button": "Discard",
"item.edit.metadata.discard-button": "Descartar",
// "item.edit.metadata.edit.buttons.confirm": "Confirm",
"item.edit.metadata.edit.buttons.confirm": "Confirmar",
// "item.edit.metadata.edit.buttons.drag": "Drag to reorder",
"item.edit.metadata.edit.buttons.drag": "Arrastre para reordenar",
// "item.edit.metadata.edit.buttons.edit": "Edit",
"item.edit.metadata.edit.buttons.edit": "Editar",
@@ -2892,6 +3142,9 @@
// "item.edit.metadata.edit.buttons.unedit": "Stop editing",
"item.edit.metadata.edit.buttons.unedit": "Dejar de editar",
// "item.edit.metadata.edit.buttons.virtual": "This is a virtual metadata value, i.e. a value inherited from a related entity. It cant be modified directly. Add or remove the corresponding relationship in the \"Relationships\" tab",
"item.edit.metadata.edit.buttons.virtual": "Este es un valor de metadato virtual, es decir, un valor heredado de una entidad relacionada. Este no pude ser modificado directamente. Agregue o remueva la relación correspondiente en la pestaña \"Relaciones\"",
// "item.edit.metadata.empty": "The item currently doesn't contain any metadata. Click Add to start adding a metadata value.",
"item.edit.metadata.empty": "Actualmente, el ítem no contiene metadatos. Haga clic en Agregar para comenzar a agregar un valor de metadatos.",
@@ -2907,8 +3160,11 @@
// "item.edit.metadata.headers.value": "Value",
"item.edit.metadata.headers.value": "Valor",
// "item.edit.metadata.metadatafield.error": "An error occurred validating the metadata field",
"item.edit.metadata.metadatafield.error": "Un error ha ocurrido al validar el campo del metadato",
// "item.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field",
"item.edit.metadata.metadatafield.invalid": "Elija un campo de metadatos válido",
"item.edit.metadata.metadatafield.invalid": "Por favor, escoja un campo de metadatos valido",
// "item.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button",
"item.edit.metadata.notifications.discarded.content": "Tus cambios fueron descartados. ",
@@ -2940,6 +3196,9 @@
// "item.edit.metadata.reinstate-button": "Undo",
"item.edit.metadata.reinstate-button": "Deshacer",
// "item.edit.metadata.reset-order-button": "Undo reorder",
"item.edit.metadata.reset-order-button": "Deshacer reordenar",
// "item.edit.metadata.save-button": "Save",
"item.edit.metadata.save-button": "Guardar",
@@ -3275,6 +3534,30 @@
// "item.truncatable-part.show-less": "Collapse",
"item.truncatable-part.show-less": "Contraer",
// "workflow-item.search.result.delete-supervision.modal.header": "Delete Supervision Order",
"workflow-item.search.result.delete-supervision.modal.header": "Borrar Orden de Supervisión",
// "workflow-item.search.result.delete-supervision.modal.info": "Are you sure you want to delete Supervision Order",
"workflow-item.search.result.delete-supervision.modal.info": "Esta seguro de querer borrar la Orden de Supervisión",
// "workflow-item.search.result.delete-supervision.modal.cancel": "Cancel",
"workflow-item.search.result.delete-supervision.modal.cancel": "Cancelar",
// "workflow-item.search.result.delete-supervision.modal.confirm": "Delete",
"workflow-item.search.result.delete-supervision.modal.confirm": "Borrar",
// "workflow-item.search.result.notification.deleted.success": "Successfully deleted supervision order \"{{name}}\"",
"workflow-item.search.result.notification.deleted.success": "La orden de supervisión \”{{ name }}”\ ha sido borrada exitosamente",
// "workflow-item.search.result.notification.deleted.failure": "Failed to delete supervision order \"{{name}}\"",
"workflow-item.search.result.notification.deleted.failure": "Error al borrar la orden de supervisión \”{{ name }}\”",
// "workflow-item.search.result.list.element.supervised-by": "Supervised by:",
"workflow-item.search.result.list.element.supervised-by": "Supervisado por:",
// "workflow-item.search.result.list.element.supervised.remove-tooltip": "Remove supervision group",
"workflow-item.search.result.list.element.supervised.remove-tooltip": "Borrar grupo de supervisión",
// "item.page.abstract": "Abstract",
@@ -3622,6 +3905,89 @@
// "itemtemplate.edit.metadata.add-button": "Add",
"itemtemplate.edit.metadata.add-button": "Agregar",
// "itemtemplate.edit.metadata.discard-button": "Discard",
"itemtemplate.edit.metadata.discard-button": "Descartar",
// "itemtemplate.edit.metadata.edit.buttons.confirm": "Confirm",
"itemtemplate.edit.metadata.edit.buttons.confirm": "Confirmar",
// "itemtemplate.edit.metadata.edit.buttons.drag": "Drag to reorder",
"itemtemplate.edit.metadata.edit.buttons.drag": "Arrastre para reordenar",
// "itemtemplate.edit.metadata.edit.buttons.edit": "Edit",
"itemtemplate.edit.metadata.edit.buttons.edit": "Editar",
// "itemtemplate.edit.metadata.edit.buttons.remove": "Remove",
"itemtemplate.edit.metadata.edit.buttons.remove": "Eliminar",
// "itemtemplate.edit.metadata.edit.buttons.undo": "Undo changes",
"itemtemplate.edit.metadata.edit.buttons.undo": "Deshacer cambios",
// "itemtemplate.edit.metadata.edit.buttons.unedit": "Stop editing",
"itemtemplate.edit.metadata.edit.buttons.unedit": "Dejar de editar",
// "itemtemplate.edit.metadata.empty": "The item template currently doesn't contain any metadata. Click Add to start adding a metadata value.",
"itemtemplate.edit.metadata.empty": "La plantilla de ítem no contiene ningún metadato. Pulse Agregar para empezar a agregar valores de metadatos.",
// "itemtemplate.edit.metadata.headers.edit": "Edit",
"itemtemplate.edit.metadata.headers.edit": "Editar",
// "itemtemplate.edit.metadata.headers.field": "Field",
"itemtemplate.edit.metadata.headers.field": "Campo",
// "itemtemplate.edit.metadata.headers.language": "Lang",
"itemtemplate.edit.metadata.headers.language": "Idioma",
// "itemtemplate.edit.metadata.headers.value": "Value",
"itemtemplate.edit.metadata.headers.value": "Valor",
// "itemtemplate.edit.metadata.metadatafield.error": "An error occurred validating the metadata field",
"itemtemplate.edit.metadata.metadatafield.error": "Un error ha ocurrido al validar el campo del metadato",
// "itemtemplate.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field",
"itemtemplate.edit.metadata.metadatafield.invalid": "Por favor, escoja un campo de metadato valido",
// "itemtemplate.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button",
"itemtemplate.edit.metadata.notifications.discarded.content": "Sus cambios fueron descartados. Para recuperar sus cambios pulse el botón 'Deshacer'",
// "itemtemplate.edit.metadata.notifications.discarded.title": "Changed discarded",
"itemtemplate.edit.metadata.notifications.discarded.title": "Cambio descartado",
// "itemtemplate.edit.metadata.notifications.error.title": "An error occurred",
"itemtemplate.edit.metadata.notifications.error.title": "Ocurrió un error",
// "itemtemplate.edit.metadata.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.",
"itemtemplate.edit.metadata.notifications.invalid.content": "Sus cambios no se guardaron. Asegúrese de que todos los campos sean válidos antes de guardar.",
// "itemtemplate.edit.metadata.notifications.invalid.title": "Metadata invalid",
"itemtemplate.edit.metadata.notifications.invalid.title": "Metadatos inválidos",
// "itemtemplate.edit.metadata.notifications.outdated.content": "The item template you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts",
"itemtemplate.edit.metadata.notifications.outdated.content": "La plantilla de ítem en la que usted esta trabajando actualmente ha sido cambiada por otro usuario. Sus cambios han sido descartados para evitar conflictos",
// "itemtemplate.edit.metadata.notifications.outdated.title": "Changed outdated",
"itemtemplate.edit.metadata.notifications.outdated.title": "Cambiado obsoleto",
// "itemtemplate.edit.metadata.notifications.saved.content": "Your changes to this item template's metadata were saved.",
"itemtemplate.edit.metadata.notifications.saved.content": "Sus cambios a los metadatos de esta plantilla de ítem han sido guardados.",
// "itemtemplate.edit.metadata.notifications.saved.title": "Metadata saved",
"itemtemplate.edit.metadata.notifications.saved.title": "Metadatos guardados",
// "itemtemplate.edit.metadata.reinstate-button": "Undo",
"itemtemplate.edit.metadata.reinstate-button": "Deshacer",
// "itemtemplate.edit.metadata.reset-order-button": "Undo reorder",
"itemtemplate.edit.metadata.reset-order-button": "Deshacer reordenar",
// "itemtemplate.edit.metadata.save-button": "Save",
"itemtemplate.edit.metadata.save-button": "Guardar",
// "journal.listelement.badge": "Journal",
"journal.listelement.badge": "Revista",
@@ -4193,6 +4559,9 @@
// "mydspace.show.workspace": "Your Submissions",
"mydspace.show.workspace": "Sus envíos",
// "mydspace.show.supervisedWorkspace": "Supervised items",
"mydspace.show.supervisedWorkspace": "Ítems supervisados",
// "mydspace.status.archived": "Archived",
"mydspace.status.archived": "Archivado",
@@ -4234,6 +4603,9 @@
// "nav.community-browse.header": "By Community",
"nav.community-browse.header": "Por comunidad",
// "nav.context-help-toggle": "Toggle context help",
"nav.context-help-toggle": "Alternar ayuda contextual",
// "nav.language": "Language switch",
"nav.language": "Cambio de idioma",
@@ -4264,6 +4636,9 @@
// "nav.stop-impersonating": "Stop impersonating EPerson",
"nav.stop-impersonating": "Dejar de hacerse pasar por usuario",
// "nav.subscriptions" : "Subscriptions",
"nav.subscriptions" : "Suscripciones",
// "nav.toggle" : "Toggle navigation",
"nav.toggle": "Alternar navegación",
@@ -4807,8 +5182,11 @@
// "register-page.registration.email.error.required": "Please fill in an email address",
"register-page.registration.email.error.required": "Por favor, introduzca una dirección de correo electrónico",
// "register-page.registration.email.error.pattern": "Please fill in a valid email address",
"register-page.registration.email.error.pattern": "Por favor, introduzca una dirección de correo electrónico válida",
// "register-page.registration.email.error.not-email-form": "Please fill in a valid email address.",
"register-page.registration.email.error.not-email-form": "Por favor, introduzca una dirección de correo electrónico válida.",
// "register-page.registration.email.error.not-valid-domain": "Use email with allowed domains: {{ domains }}",
"register-page.registration.email.error.not-valid-domain": "Utilice un correo electrónico con uno de los dominos permitidos: {{ domains }}",
// "register-page.registration.email.hint": "This address will be verified and used as your login name.",
"register-page.registration.email.hint": "Esta dirección será verificada y utilizada como su nombre de inicio de sesión.",
@@ -4834,6 +5212,9 @@
// "register-page.registration.google-recaptcha.must-accept-cookies": "In order to register you must accept the <b>Registration and Password recovery</b> (Google reCaptcha) cookies.",
"register-page.registration.google-recaptcha.must-accept-cookies": "Para registrarse debe aceptar las cookies de <b>Registro y recuperación de contraseña</b> (Google reCaptcha).",
// "register-page.registration.error.maildomain": "This email address is not on the list of domains who can register. Allowed domains are {{ domains }}",
"register-page.registration.error.maildomain": "Este correo electrónico no esta en la lista de dominios que pueden registrarse. Los dominios permitidos son {{ domains }}",
// "register-page.registration.google-recaptcha.open-cookie-settings": "Open cookie settings",
"register-page.registration.google-recaptcha.open-cookie-settings": "Abrir configuración de cookies",
@@ -4846,6 +5227,9 @@
// "register-page.registration.google-recaptcha.notification.message.expired": "Verification expired. Please verify again.",
"register-page.registration.google-recaptcha.notification.message.expired": "Verificación caducada. Verifique de nuevo.",
// "register-page.registration.info.maildomain": "Accounts can be registered for mail addresses of the domains",
"register-page.registration.info.maildomain": "Las cuentas pueden registrarse para las direcciones de correo de los dominios",
// "relationships.add.error.relationship-type.content": "No suitable match could be found for relationship type {{ type }} between the two items",
"relationships.add.error.relationship-type.content": "No se pudo encontrar una coincidencia adecuada para el tipo de relación {{ type }} entre los dos ítems",
@@ -5151,6 +5535,9 @@
// "search.filters.applied.f.birthDate.min": "Start birth date",
"search.filters.applied.f.birthDate.min": "Fecha de nacimiento, inicial",
// "search.filters.applied.f.supervisedBy": "Supervised by",
"search.filters.applied.f.supervisedBy": "Supervisado por",
// "search.filters.applied.f.withdrawn": "Withdrawn",
"search.filters.applied.f.withdrawn": "Retirado",
@@ -5366,6 +5753,16 @@
// "search.filters.filter.show-tree": "Browse {{ name }} tree",
"search.filters.filter.show-tree": "Examinar árbol {{ name }}",
// "search.filters.filter.supervisedBy.head": "Supervised By",
"search.filters.filter.supervisedBy.head": "Supervisado Por",
// "search.filters.filter.supervisedBy.placeholder": "Supervised By",
"search.filters.filter.supervisedBy.placeholder": "Supervisado Por",
// "search.filters.filter.supervisedBy.label": "Search Supervised By",
"search.filters.filter.supervisedBy.label": "Búsqueda Supervisada Por",
// "search.filters.entityType.JournalIssue": "Journal Issue",
"search.filters.entityType.JournalIssue": "Número de la revista",
@@ -6209,7 +6606,23 @@
// "submission.sections.general.sections_not_valid": "There are incomplete sections.",
"submission.sections.general.sections_not_valid": "Hay secciones incompletas.",
// "submission.sections.identifiers.info": "The following identifiers will be created for your item:",
"submission.sections.identifiers.info": "Se crearán los siguientes identificadores para su ítem:",
// "submission.sections.identifiers.no_handle": "No handles have been minted for this item.",
"submission.sections.identifiers.no_handle": "Ningún handle ha sido asignado a este ítem.",
// "submission.sections.identifiers.no_doi": "No DOIs have been minted for this item.",
"submission.sections.identifiers.no_doi": "No se han asignado DOIs para este ítem.",
// "submission.sections.identifiers.handle_label": "Handle: ",
"submission.sections.identifiers.handle_label": "Handle: ",
// "submission.sections.identifiers.doi_label": "DOI: ",
"submission.sections.identifiers.doi_label": "DOI: ",
// "submission.sections.identifiers.otherIdentifiers_label": "Other identifiers: ",
"submission.sections.identifiers.otherIdentifiers_label": "Otros identificadores: ",
// "submission.sections.submit.progressbar.accessCondition": "Item access conditions",
"submission.sections.submit.progressbar.accessCondition": "Condiciones de acceso al ítem",
@@ -6232,6 +6645,9 @@
// "submission.sections.submit.progressbar.detect-duplicate": "Potential duplicates",
"submission.sections.submit.progressbar.detect-duplicate": "Posibles duplicados",
// "submission.sections.submit.progressbar.identifiers": "Identifiers",
"submission.sections.submit.progressbar.identifiers": "Identificadores",
// "submission.sections.submit.progressbar.license": "Deposit license",
"submission.sections.submit.progressbar.license": "Licencia de depósito",
@@ -6536,6 +6952,19 @@
"submission.workflow.generic.view-help": "Seleccione esta opción para ver los metadatos del ítem.",
// "submission.workflow.generic.submit_select_reviewer": "Select Reviewer",
"submission.workflow.generic.submit_select_reviewer": "Seleccionar revisor",
// "submission.workflow.generic.submit_select_reviewer-help": "",
"submission.workflow.generic.submit_select_reviewer-help": "",
// "submission.workflow.generic.submit_score": "Rate",
"submission.workflow.generic.submit_score": "Evaluar",
// "submission.workflow.generic.submit_score-help": "",
"submission.workflow.generic.submit_score-help": "",
// "submission.workflow.tasks.claimed.approve": "Approve",
"submission.workflow.tasks.claimed.approve": "Aprobar",
@@ -6549,6 +6978,12 @@
// "submission.workflow.tasks.claimed.edit_help": "Select this option to change the item's metadata.",
"submission.workflow.tasks.claimed.edit_help": "Seleccione esta opción para cambiar los metadatos del ítem.",
// "submission.workflow.tasks.claimed.decline": "Decline",
"submission.workflow.tasks.claimed.decline": "Rechazar",
// "submission.workflow.tasks.claimed.decline_help": "",
"submission.workflow.tasks.claimed.decline_help": "",
// "submission.workflow.tasks.claimed.reject.reason.info": "Please enter your reason for rejecting the submission into the box below, indicating whether the submitter may fix a problem and resubmit.",
"submission.workflow.tasks.claimed.reject.reason.info": "Introduzca su motivo para rechazar el envío en el cuadro a continuación, indicando si el remitente puede solucionar un problema y volver a enviarlo.",
@@ -6609,6 +7044,112 @@
"submission.workspace.generic.view-help": "Seleccione esta opción para ver los metadatos del ítem.",
// "subscriptions.title": "Subscriptions",
"subscriptions.title": "Suscripciones",
// "subscriptions.item": "Subscriptions for items",
"subscriptions.item": "Suscripciones a ítems",
// "subscriptions.collection": "Subscriptions for collections",
"subscriptions.collection": "Suscripciones a colecciones",
// "subscriptions.community": "Subscriptions for communities",
"subscriptions.community": "Suscripciones a comunidades",
// "subscriptions.subscription_type": "Subscription type",
"subscriptions.subscription_type": "Tipo de suscripción",
// "subscriptions.frequency": "Subscription frequency",
"subscriptions.frequency": "Frecuencia de la suscripción",
// "subscriptions.frequency.D": "Daily",
"subscriptions.frequency.D": "Diaria",
// "subscriptions.frequency.M": "Monthly",
"subscriptions.frequency.M": "Mensual",
// "subscriptions.frequency.W": "Weekly",
"subscriptions.frequency.W": "Semanal",
// "subscriptions.tooltip": "Subscribe",
"subscriptions.tooltip": "Suscribir",
// "subscriptions.modal.title": "Subscriptions",
"subscriptions.modal.title": "Suscripciones",
// "subscriptions.modal.type-frequency": "Type and frequency",
"subscriptions.modal.type-frequency": "Tipo y frecuencia",
// "subscriptions.modal.close": "Close",
"subscriptions.modal.close": "Cerrar",
// "subscriptions.modal.delete-info": "To remove this subscription, please visit the \"Subscriptions\" page under your user profile",
"subscriptions.modal.delete-info": "Para eliminar esta suscripción, por favor visite la página \”Suscripciones”\ en su perfil de usuario",
// "subscriptions.modal.new-subscription-form.type.content": "Content",
"subscriptions.modal.new-subscription-form.type.content": "Contenido",
// "subscriptions.modal.new-subscription-form.frequency.D": "Diario",
"subscriptions.modal.new-subscription-form.frequency.D": "Diario",
// "subscriptions.modal.new-subscription-form.frequency.W": "Weekly",
"subscriptions.modal.new-subscription-form.frequency.W": "Semanal",
// "subscriptions.modal.new-subscription-form.frequency.M": "Monthly",
"subscriptions.modal.new-subscription-form.frequency.M": "Mensual",
// "subscriptions.modal.new-subscription-form.submit": "Submit",
"subscriptions.modal.new-subscription-form.submit": "Enviar",
// "subscriptions.modal.new-subscription-form.processing": "Processing...",
"subscriptions.modal.new-subscription-form.processing": "Procesando...",
// "subscriptions.modal.create.success": "Subscribed to {{ type }} successfully.",
"subscriptions.modal.create.success": "Suscrito a {{ type }} exitosamente.",
// "subscriptions.modal.delete.success": "Subscription deleted successfully",
"subscriptions.modal.delete.success": "La suscripción fue borrada exitosamente",
// "subscriptions.modal.update.success": "Subscription to {{ type }} updated successfully",
"subscriptions.modal.update.success": "La suscripción a {{ type }} fue exitosamente actualizada",
// "subscriptions.modal.create.error": "An error occurs during the subscription creation",
"subscriptions.modal.create.error": "Un error ocurrió durante la creación de la suscripción",
// "subscriptions.modal.delete.error": "An error occurs during the subscription delete",
"subscriptions.modal.delete.error": "Un error ocurrió durante la eliminación de la suscripción",
// "subscriptions.modal.update.error": "An error occurs during the subscription update",
"subscriptions.modal.update.error": "Un error ocurrió durante la actualización de la suscripción",
// "subscriptions.table.dso": "Subject",
"subscriptions.table.dso": "Tema",
// "subscriptions.table.subscription_type": "Subscription Type",
"subscriptions.table.subscription_type": "Tipo de suscripción",
// "subscriptions.table.subscription_frequency": "Subscription Frequency",
"subscriptions.table.subscription_frequency": "Frecuencia de Suscripción",
// "subscriptions.table.action": "Action",
"subscriptions.table.action": "Acción",
// "subscriptions.table.edit": "Edit",
"subscriptions.table.edit": "Editar",
// "subscriptions.table.delete": "Delete",
"subscriptions.table.delete": "Borrar",
// "subscriptions.table.not-available": "Not available",
"subscriptions.table.not-available": "No disponible",
// "subscriptions.table.not-available-message": "The subscribed item has been deleted, or you don't currently have the permission to view it",
"subscriptions.table.not-available-message": "El ítem suscrito ha sido eliminado, o actualmente usted no tiene permisos suficiente para poder visualizarlo.",
// "subscriptions.table.empty.message": "You do not have any subscriptions at this time. To subscribe to email updates for a Community or Collection, use the subscription button on the object's page.",
"subscriptions.table.empty.message": "Usted no tiene suscripciones. Para subscribirse a las actualizaciones por correo electrónico de una Comunidad o Colección, utilice el botón de suscripción en la página del objeto.",
// "thumbnail.default.alt": "Thumbnail Image",
"thumbnail.default.alt": "Miniatura",
@@ -6693,6 +7234,9 @@
// "supervisedWorkspace.search.results.head": "Supervised Items",
"supervisedWorkspace.search.results.head": "Ítems supervisados",
// "workspace.search.results.head": "Your submissions",
"workspace.search.results.head": "Sus envíos",
@@ -6702,6 +7246,9 @@
// "workflow.search.results.head": "Workflow tasks",
"workflow.search.results.head": "Tareas del flujo de trabajo",
// "supervision.search.results.head": "Workflow and Workspace tasks",
"supervision.search.results.head": "Tareas del flujo de trabajo y del espacio de trabajo",
// "workflow-item.edit.breadcrumbs": "Edit workflowitem",
@@ -6768,6 +7315,60 @@
// "workspace-item.view.title": "Workspace View",
"workspace-item.view.title": "Vista del flujo de trabajo",
// "workflow-item.advanced.title": "Advanced workflow",
"workflow-item.advanced.title": "Flujo de trabajo avanzado",
// "workflow-item.selectrevieweraction.notification.success.title": "Selected reviewer",
"workflow-item.selectrevieweraction.notification.success.title": "Revisor seleccionado",
// "workflow-item.selectrevieweraction.notification.success.content": "The reviewer for this workflow item has been successfully selected",
"workflow-item.selectrevieweraction.notification.success.content": "El revisor para este flujo de trabajo ha sido seleccionado exitosamente",
// "workflow-item.selectrevieweraction.notification.error.title": "Something went wrong",
"workflow-item.selectrevieweraction.notification.error.title": "Algo salió mal",
// "workflow-item.selectrevieweraction.notification.error.content": "Couldn't select the reviewer for this workflow item",
"workflow-item.selectrevieweraction.notification.error.content": "No fue posible seleccionar el revisor para este flujo de trabajo",
// "workflow-item.selectrevieweraction.title": "Select Reviewer",
"workflow-item.selectrevieweraction.title": "Seleccionar revisor",
// "workflow-item.selectrevieweraction.header": "Select Reviewer",
"workflow-item.selectrevieweraction.header": "Seleccionar revisor",
// "workflow-item.selectrevieweraction.button.cancel": "Cancel",
"workflow-item.selectrevieweraction.button.cancel": "Cancelar",
// "workflow-item.selectrevieweraction.button.confirm": "Confirm",
"workflow-item.selectrevieweraction.button.confirm": "Confirmar",
// "workflow-item.scorereviewaction.notification.success.title": "Revisar evaluación",
"workflow-item.scorereviewaction.notification.success.title": "Revisar evaluación",
// "workflow-item.scorereviewaction.notification.success.content": "The rating for this item workflow item has been successfully submitted",
"workflow-item.scorereviewaction.notification.success.content": "La evaluación para este ítem ha sido enviada exitosamente",
// "workflow-item.scorereviewaction.notification.error.title": "Something went wrong",
"workflow-item.scorereviewaction.notification.error.title": "Algo salió mal",
// "workflow-item.scorereviewaction.notification.error.content": "Couldn't rate this item",
"workflow-item.scorereviewaction.notification.error.content": "No fue posible evaluar este ítem",
// "workflow-item.scorereviewaction.title": "Rate this item",
"workflow-item.scorereviewaction.title": "Evaluar este ítem",
// "workflow-item.scorereviewaction.header": "Rate this item",
"workflow-item.scorereviewaction.header": "Evaluar este ítem",
// "workflow-item.scorereviewaction.button.cancel": "Cancel",
"workflow-item.scorereviewaction.button.cancel": "Cancelar",
// "workflow-item.scorereviewaction.button.confirm": "Confirm",
"workflow-item.scorereviewaction.button.confirm": "Confirmar",
// "idle-modal.header": "Session will expire soon",
"idle-modal.header": "La sesión caducará pronto",
@@ -7152,4 +7753,76 @@
"listable-notification-object.default-message": "Este objeto no se pudo recuperar",
// "system-wide-alert-banner.retrieval.error": "Something went wrong retrieving the system-wide alert banner",
"system-wide-alert-banner.retrieval.error": "Algo salió mal al recuperar el banner de alerta del sistema",
// "system-wide-alert-banner.countdown.prefix": "In",
"system-wide-alert-banner.countdown.prefix": "En",
// "system-wide-alert-banner.countdown.days": "{{days}} day(s),",
"system-wide-alert-banner.countdown.days": "{{days}} día(s),",
// "system-wide-alert-banner.countdown.hours": "{{hours}} hour(s) and",
"system-wide-alert-banner.countdown.hours": "{{hours}} hora(s) y",
// "system-wide-alert-banner.countdown.minutes": "{{minutes}} minute(s):",
"system-wide-alert-banner.countdown.minutes": "{{minutes}} minuto(s):",
// "menu.section.system-wide-alert": "System-wide Alert",
"menu.section.system-wide-alert": "Alerta del Sistema",
// "system-wide-alert.form.header": "System-wide Alert",
"system-wide-alert.form.header": "Alerta del Sistema",
// "system-wide-alert-form.retrieval.error": "Something went wrong retrieving the system-wide alert",
"system-wide-alert-form.retrieval.error": "Algo salió mal al recuperar la alerta del sistema",
// "system-wide-alert.form.cancel": "Cancel",
"system-wide-alert.form.cancel": "Cancelar",
// "system-wide-alert.form.save": "Save",
"system-wide-alert.form.save": "Guardar",
// "system-wide-alert.form.label.active": "ACTIVE",
"system-wide-alert.form.label.active": "ACTIVO",
// "system-wide-alert.form.label.inactive": "INACTIVE",
"system-wide-alert.form.label.inactive": "INACTIVO",
// "system-wide-alert.form.error.message": "The system wide alert must have a message",
"system-wide-alert.form.error.message": "La alerta de sistema debe tener un mensaje",
// "system-wide-alert.form.label.message": "Alert message",
"system-wide-alert.form.label.message": "Mensaje de alerta",
// "system-wide-alert.form.label.countdownTo.enable": "Enable a countdown timer",
"system-wide-alert.form.label.countdownTo.enable": "Habilitar un temporizador de cuenta regresiva",
// "system-wide-alert.form.label.countdownTo.hint": "Hint: Set a countdown timer. When enabled, a date can be set in the future and the system-wide alert banner will perform a countdown to the set date. When this timer ends, it will disappear from the alert. The server will NOT be automatically stopped.",
"system-wide-alert.form.label.countdownTo.hint": "Sugerencia: Configure un temporizador. Cuando esté habilitado, se puede establecer una fecha en el futuro y el banner del sistema de alerta realizara una cuenta regresiva hasta la fecha establecida. Cuando finalice el temporizador, este desaparecerá de la alerta. El servidor NO se detendrá automáticamente..",
// "system-wide-alert.form.label.preview": "System-wide alert preview",
"system-wide-alert.form.label.preview": "Vista preliminar de la alerta del sistema",
// "system-wide-alert.form.update.success": "The system-wide alert was successfully updated",
"system-wide-alert.form.update.success": "La alerta de sistema fue actualizada exitosamente",
// "system-wide-alert.form.update.error": "Something went wrong when updating the system-wide alert",
"system-wide-alert.form.update.error": "Algo salió mal al actualizar la alerta del sistema",
// "system-wide-alert.form.create.success": "The system-wide alert was successfully created",
"system-wide-alert.form.create.success": "La alerta del sistema fue creada exitosamente",
// "system-wide-alert.form.create.error": "Something went wrong when creating the system-wide alert",
"system-wide-alert.form.create.error": "Algo salió mal al crear la alerta del sistema",
// "admin.system-wide-alert.breadcrumbs": "System-wide Alerts",
"admin.system-wide-alert.breadcrumbs": "Alertas del sistema",
// "admin.system-wide-alert.title": "System-wide Alerts",
"admin.system-wide-alert.title": "Alertas del sistema",
}

View File

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

View File

@@ -0,0 +1,14 @@
import { Component } from '@angular/core';
import {
FullFileSectionComponent as BaseComponent
} from '../../../../../../../app/item-page/full/field-components/file-section/full-file-section.component';
@Component({
selector: 'ds-item-page-full-file-section',
// styleUrls: ['./full-file-section.component.scss'],
styleUrls: ['../../../../../../../app/item-page/full/field-components/file-section/full-file-section.component.scss'],
// templateUrl: './full-file-section.component.html',
templateUrl: '../../../../../../../app/item-page/full/field-components/file-section/full-file-section.component.html',
})
export class FullFileSectionComponent extends BaseComponent {
}

View File

@@ -0,0 +1,11 @@
import { MetadataRepresentationListComponent as BaseComponent } from '../../../../../../app/item-page/simple/metadata-representation-list/metadata-representation-list.component';
import { Component } from '@angular/core';
@Component({
selector: 'ds-metadata-representation-list',
// templateUrl: './metadata-representation-list.component.html'
templateUrl: '../../../../../../app/item-page/simple/metadata-representation-list/metadata-representation-list.component.html'
})
export class MetadataRepresentationListComponent extends BaseComponent {
}

View File

@@ -0,0 +1,26 @@
import { DsDynamicLookupRelationExternalSourceTabComponent as BaseComponent } from '../../../../../../../../../app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/dynamic-lookup-relation-external-source-tab.component';
import { Component } from '@angular/core';
import { SEARCH_CONFIG_SERVICE } from '../../../../../../../../../app/my-dspace-page/my-dspace-page.component';
import { SearchConfigurationService } from '../../../../../../../../../app/core/shared/search/search-configuration.service';
import { fadeIn, fadeInOut } from '../../../../../../../../../app/shared/animations/fade';
@Component({
selector: 'ds-dynamic-lookup-relation-external-source-tab',
// styleUrls: ['./dynamic-lookup-relation-external-source-tab.component.scss'],
styleUrls: ['../../../../../../../../../app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/dynamic-lookup-relation-external-source-tab.component.scss'],
// templateUrl: './dynamic-lookup-relation-external-source-tab.component.html',
templateUrl: '../../../../../../../../../app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/dynamic-lookup-relation-external-source-tab.component.html',
providers: [
{
provide: SEARCH_CONFIG_SERVICE,
useClass: SearchConfigurationService
}
],
animations: [
fadeIn,
fadeInOut
]
})
export class DsDynamicLookupRelationExternalSourceTabComponent extends BaseComponent {
}

View File

@@ -0,0 +1,21 @@
import { DsDynamicLookupRelationSearchTabComponent as BaseComponent } from '../../../../../../../../../app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/search-tab/dynamic-lookup-relation-search-tab.component';
import { Component } from '@angular/core';
import { SEARCH_CONFIG_SERVICE } from '../../../../../../../../../app/my-dspace-page/my-dspace-page.component';
import { SearchConfigurationService } from '../../../../../../../../../app/core/shared/search/search-configuration.service';
@Component({
selector: 'ds-dynamic-lookup-relation-search-tab',
// styleUrls: ['./dynamic-lookup-relation-search-tab.component.scss'],
styleUrls: ['../../../../../../../../../app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/search-tab/dynamic-lookup-relation-search-tab.component.scss'],
// templateUrl: './dynamic-lookup-relation-search-tab.component.html',
templateUrl: '../../../../../../../../../app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/search-tab/dynamic-lookup-relation-search-tab.component.html',
providers: [
{
provide: SEARCH_CONFIG_SERVICE,
useClass: SearchConfigurationService
}
]
})
export class DsDynamicLookupRelationSearchTabComponent extends BaseComponent {
}

View File

@@ -0,0 +1,24 @@
import { Component } from '@angular/core';
import {
listableObjectComponent
} from '../../../../../../../../../app/shared/object-collection/shared/listable-object/listable-object.decorator';
import { ViewMode } from '../../../../../../../../../app/core/shared/view-mode.model';
import {
ItemSearchResult
} from '../../../../../../../../../app/shared/object-collection/shared/item-search-result.model';
import {
ItemSearchResultListElementComponent as BaseComponent
} from '../../../../../../../../../app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component';
import { Context } from '../../../../../../../../../app/core/shared/context.model';
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.Any, 'custom')
@listableObjectComponent(ItemSearchResult, ViewMode.ListElement, Context.Any, 'custom')
@Component({
selector: 'ds-item-search-result-list-element',
// styleUrls: ['./item-search-result-list-element.component.scss'],
styleUrls: ['../../../../../../../../../app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.scss'],
// templateUrl: './item-search-result-list-element.component.html',
templateUrl: '../../../../../../../../../app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html',
})
export class ItemSearchResultListElementComponent extends BaseComponent {
}

View File

@@ -0,0 +1,20 @@
import { listableObjectComponent } from '../../../../../../../app/shared/object-collection/shared/listable-object/listable-object.decorator';
import { ViewMode } from '../../../../../../../app/core/shared/view-mode.model';
import { Component } from '@angular/core';
import { Context } from '../../../../../../../app/core/shared/context.model';
import { ItemSearchResult } from '../../../../../../../app/shared/object-collection/shared/item-search-result.model';
import {
PublicationSidebarSearchListElementComponent as BaseComponent
} from '../../../../../../../app/shared/object-list/sidebar-search-list-element/item-types/publication/publication-sidebar-search-list-element.component';
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.SideBarSearchModal, 'custom')
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.SideBarSearchModalCurrent, 'custom')
@listableObjectComponent(ItemSearchResult, ViewMode.ListElement, Context.SideBarSearchModal, 'custom')
@listableObjectComponent(ItemSearchResult, ViewMode.ListElement, Context.SideBarSearchModalCurrent, 'custom')
@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',
})
export class PublicationSidebarSearchListElementComponent extends BaseComponent {
}

View File

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

View File

@@ -0,0 +1,16 @@
import { Component } from '@angular/core';
import { renderStartsWithFor, StartsWithType } from '../../../../../../app/shared/starts-with/starts-with-decorator';
import {
StartsWithDateComponent as BaseComponent
} from '../../../../../../app/shared/starts-with/date/starts-with-date.component';
@Component({
selector: 'ds-starts-with-date',
// styleUrls: ['./starts-with-date.component.scss'],
styleUrls: ['../../../../../../app/shared/starts-with/date/starts-with-date.component.scss'],
// templateUrl: './starts-with-date.component.html',
templateUrl: '../../../../../../app/shared/starts-with/date/starts-with-date.component.html',
})
@renderStartsWithFor(StartsWithType.date)
export class StartsWithDateComponent extends BaseComponent {
}

View File

@@ -0,0 +1,16 @@
import { Component } from '@angular/core';
import { renderStartsWithFor, StartsWithType } from '../../../../../../app/shared/starts-with/starts-with-decorator';
import {
StartsWithTextComponent as BaseComponent
} from '../../../../../../app/shared/starts-with/text/starts-with-text.component';
@Component({
selector: 'ds-starts-with-text',
// styleUrls: ['./starts-with-text.component.scss'],
styleUrls: ['../../../../../../app/shared/starts-with/text/starts-with-text.component.scss'],
// templateUrl: './starts-with-text.component.html',
templateUrl: '../../../../../../app/shared/starts-with/text/starts-with-text.component.html',
})
@renderStartsWithFor(StartsWithType.text)
export class StartsWithTextComponent extends BaseComponent {
}

View File

@@ -38,7 +38,6 @@ import {
import {
EditItemSelectorComponent
} from './app/shared/dso-selector/modal-wrappers/edit-item-selector/edit-item-selector.component';
import { CommunityListElementComponent } from './app/shared/object-list/community-list-element/community-list-element.component';
import { CollectionListElementComponent} from './app/shared/object-list/collection-list-element/collection-list-element.component';
import { CollectionDropdownComponent } from './app/shared/collection-dropdown/collection-dropdown.component';
@@ -46,7 +45,14 @@ import { SharedBrowseByModule } from '../../app/shared/browse-by/shared-browse-b
import { ResultsBackButtonModule } from '../../app/shared/results-back-button/results-back-button.module';
import { DsoPageModule } from '../../app/shared/dso-page/dso-page.module';
import { FileDownloadLinkComponent } from './app/shared/file-download-link/file-download-link.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 {
PublicationSidebarSearchListElementComponent
} from './app/shared/object-list/sidebar-search-list-element/item-types/publication-sidebar-search-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';
/**
* Add components that use a custom decorator to ENTRY_COMPONENTS as well as DECLARATIONS.
@@ -58,11 +64,14 @@ const ENTRY_COMPONENTS = [
JournalVolumeComponent,
PublicationComponent,
UntypedItemComponent,
CommunityListElementComponent,
CollectionListElementComponent,
CollectionDropdownComponent,
FileDownloadLinkComponent,
StartsWithDateComponent,
StartsWithTextComponent,
PublicationSidebarSearchListElementComponent,
ItemSearchResultListElementComponent,
];
const DECLARATIONS = [

View File

@@ -50,6 +50,7 @@ import { BrowseBySwitcherComponent } from './app/browse-by/browse-by-switcher/br
import { CommunityListPageComponent } from './app/community-list-page/community-list-page.component';
import { SearchPageComponent } from './app/search-page/search-page.component';
import { ConfigurationSearchPageComponent } from './app/search-page/configuration-search-page.component';
import { SearchFormComponent } from './app/shared/search-form/search-form.component';
import { EndUserAgreementComponent } from './app/info/end-user-agreement/end-user-agreement.component';
import { PageNotFoundComponent } from './app/pagenotfound/pagenotfound.component';
import { ObjectNotFoundComponent } from './app/lookup-by-id/objectnotfound/objectnotfound.component';
@@ -125,6 +126,13 @@ import { DsoEditMetadataComponent } from './app/dso-shared/dso-edit-metadata/dso
import { DsoSharedModule } from '../../app/dso-shared/dso-shared.module';
import { SystemWideAlertModule } from '../../app/system-wide-alert/system-wide-alert.module';
import { DsoPageModule } from '../../app/shared/dso-page/dso-page.module';
import { ItemAlertsComponent } from './app/item-page/alerts/item-alerts.component';
import {
FullFileSectionComponent
} from './app/item-page/full/field-components/file-section/full-file-section.component';
import { MetadataRepresentationListComponent } from './app/item-page/simple/metadata-representation-list/metadata-representation-list.component';
import { DsDynamicLookupRelationSearchTabComponent } from './app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/search-tab/dynamic-lookup-relation-search-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';
const DECLARATIONS = [
FileSectionComponent,
@@ -134,6 +142,7 @@ const DECLARATIONS = [
CommunityListPageComponent,
SearchPageComponent,
ConfigurationSearchPageComponent,
SearchFormComponent,
EndUserAgreementComponent,
PageNotFoundComponent,
ObjectNotFoundComponent,
@@ -181,6 +190,11 @@ const DECLARATIONS = [
ExternalSourceEntryImportModalComponent,
ResultsBackButtonComponent,
DsoEditMetadataComponent,
ItemAlertsComponent,
FullFileSectionComponent,
MetadataRepresentationListComponent,
DsDynamicLookupRelationSearchTabComponent,
DsDynamicLookupRelationExternalSourceTabComponent,
];
@NgModule({