61949: replacing object factories with decorator

This commit is contained in:
lotte
2019-04-24 16:51:46 +02:00
parent 6203fb443b
commit a5086b8d11
31 changed files with 118 additions and 49 deletions

View File

@@ -20,4 +20,4 @@ import { SubmissionEditComponent } from '../submission/edit/submission-edit.comp
/** /**
* This module defines the default component to load when navigating to the workflowitems edit page path. * This module defines the default component to load when navigating to the workflowitems edit page path.
*/ */
export class WorkflowitemsEditPageRoutingModule { } export class WorkflowItemsEditPageRoutingModule { }

View File

@@ -1,12 +1,12 @@
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { SharedModule } from '../shared/shared.module'; import { SharedModule } from '../shared/shared.module';
import { WorkflowitemsEditPageRoutingModule } from './workflowitems-edit-page-routing.module'; import { WorkflowItemsEditPageRoutingModule } from './workflowitems-edit-page-routing.module';
import { SubmissionModule } from '../submission/submission.module'; import { SubmissionModule } from '../submission/submission.module';
@NgModule({ @NgModule({
imports: [ imports: [
WorkflowitemsEditPageRoutingModule, WorkflowItemsEditPageRoutingModule,
CommonModule, CommonModule,
SharedModule, SharedModule,
SubmissionModule, SubmissionModule,
@@ -16,6 +16,6 @@ import { SubmissionModule } from '../submission/submission.module';
/** /**
* This module handles all modules that need to access the workflowitems edit page. * This module handles all modules that need to access the workflowitems edit page.
*/ */
export class WorkflowitemsEditPageModule { export class WorkflowItemsEditPageModule {
} }

View File

@@ -31,7 +31,7 @@ export function getCommunityModulePath() {
{ path: 'logout', loadChildren: './+logout-page/logout-page.module#LogoutPageModule' }, { path: 'logout', loadChildren: './+logout-page/logout-page.module#LogoutPageModule' },
{ path: 'submit', loadChildren: './+submit-page/submit-page.module#SubmitPageModule' }, { path: 'submit', loadChildren: './+submit-page/submit-page.module#SubmitPageModule' },
{ path: 'workspaceitems', loadChildren: './+workspaceitems-edit-page/workspaceitems-edit-page.module#WorkspaceitemsEditPageModule' }, { path: 'workspaceitems', loadChildren: './+workspaceitems-edit-page/workspaceitems-edit-page.module#WorkspaceitemsEditPageModule' },
{ path: 'workflowitems', loadChildren: './+workflowitems-edit-page/workflowitems-edit-page.module#WorkflowitemsEditPageModule' }, { path: 'workflowitems', loadChildren: './+workflowitems-edit-page/workflowitems-edit-page.module#WorkflowItemsEditPageModule' },
{ path: '**', pathMatch: 'full', component: PageNotFoundComponent }, { path: '**', pathMatch: 'full', component: PageNotFoundComponent },
]) ])
], ],

View File

@@ -1,5 +0,0 @@
export enum AuthType {
EPerson = 'eperson',
Status = 'status',
Group = 'group'
}

View File

@@ -4,9 +4,11 @@ import { mapsTo, relationship } from '../../cache/builders/build-decorators';
import { ResourceType } from '../../shared/resource-type'; import { ResourceType } from '../../shared/resource-type';
import { NormalizedObject } from '../../cache/models/normalized-object.model'; import { NormalizedObject } from '../../cache/models/normalized-object.model';
import { IDToUUIDSerializer } from '../../cache/id-to-uuid-serializer'; import { IDToUUIDSerializer } from '../../cache/id-to-uuid-serializer';
import { resourceType } from '../../shared/resource-type.decorator';
@mapsTo(AuthStatus) @mapsTo(AuthStatus)
@inheritSerialization(NormalizedObject) @inheritSerialization(NormalizedObject)
@resourceType(ResourceType.AuthStatus)
export class NormalizedAuthStatus extends NormalizedObject<AuthStatus> { export class NormalizedAuthStatus extends NormalizedObject<AuthStatus> {
@autoserialize @autoserialize
id: string; id: string;

View File

@@ -5,12 +5,15 @@ import { mapsTo } from '../builders/build-decorators';
import { IDToUUIDSerializer } from '../id-to-uuid-serializer'; import { IDToUUIDSerializer } from '../id-to-uuid-serializer';
import { NormalizedObject } from './normalized-object.model'; import { NormalizedObject } from './normalized-object.model';
import { SupportLevel } from './support-level.model'; import { SupportLevel } from './support-level.model';
import { resourceType } from '../../shared/resource-type.decorator';
import { ResourceType } from '../../shared/resource-type';
/** /**
* Normalized model class for a Bitstream Format * Normalized model class for a Bitstream Format
*/ */
@mapsTo(BitstreamFormat) @mapsTo(BitstreamFormat)
@inheritSerialization(NormalizedObject) @inheritSerialization(NormalizedObject)
@resourceType(ResourceType.BitstreamFormat)
export class NormalizedBitstreamFormat extends NormalizedObject<BitstreamFormat> { export class NormalizedBitstreamFormat extends NormalizedObject<BitstreamFormat> {
/** /**

View File

@@ -4,12 +4,14 @@ import { NormalizedDSpaceObject } from './normalized-dspace-object.model';
import { Bitstream } from '../../shared/bitstream.model'; import { Bitstream } from '../../shared/bitstream.model';
import { mapsTo, relationship } from '../builders/build-decorators'; import { mapsTo, relationship } from '../builders/build-decorators';
import { ResourceType } from '../../shared/resource-type'; import { ResourceType } from '../../shared/resource-type';
import { resourceType } from '../../shared/resource-type.decorator';
/** /**
* Normalized model class for a DSpace Bitstream * Normalized model class for a DSpace Bitstream
*/ */
@mapsTo(Bitstream) @mapsTo(Bitstream)
@inheritSerialization(NormalizedDSpaceObject) @inheritSerialization(NormalizedDSpaceObject)
@resourceType(ResourceType.Bitstream)
export class NormalizedBitstream extends NormalizedDSpaceObject<Bitstream> { export class NormalizedBitstream extends NormalizedDSpaceObject<Bitstream> {
/** /**

View File

@@ -4,12 +4,14 @@ import { NormalizedDSpaceObject } from './normalized-dspace-object.model';
import { Bundle } from '../../shared/bundle.model'; import { Bundle } from '../../shared/bundle.model';
import { mapsTo, relationship } from '../builders/build-decorators'; import { mapsTo, relationship } from '../builders/build-decorators';
import { ResourceType } from '../../shared/resource-type'; import { ResourceType } from '../../shared/resource-type';
import { resourceType } from '../../shared/resource-type.decorator';
/** /**
* Normalized model class for a DSpace Bundle * Normalized model class for a DSpace Bundle
*/ */
@mapsTo(Bundle) @mapsTo(Bundle)
@inheritSerialization(NormalizedDSpaceObject) @inheritSerialization(NormalizedDSpaceObject)
@resourceType(ResourceType.Bundle)
export class NormalizedBundle extends NormalizedDSpaceObject<Bundle> { export class NormalizedBundle extends NormalizedDSpaceObject<Bundle> {
/** /**
* The primary bitstream of this Bundle * The primary bitstream of this Bundle

View File

@@ -4,12 +4,14 @@ import { NormalizedDSpaceObject } from './normalized-dspace-object.model';
import { Collection } from '../../shared/collection.model'; import { Collection } from '../../shared/collection.model';
import { mapsTo, relationship } from '../builders/build-decorators'; import { mapsTo, relationship } from '../builders/build-decorators';
import { ResourceType } from '../../shared/resource-type'; import { ResourceType } from '../../shared/resource-type';
import { resourceType } from '../../shared/resource-type.decorator';
/** /**
* Normalized model class for a DSpace Collection * Normalized model class for a DSpace Collection
*/ */
@mapsTo(Collection) @mapsTo(Collection)
@inheritSerialization(NormalizedDSpaceObject) @inheritSerialization(NormalizedDSpaceObject)
@resourceType(ResourceType.Collection)
export class NormalizedCollection extends NormalizedDSpaceObject<Collection> { export class NormalizedCollection extends NormalizedDSpaceObject<Collection> {
/** /**

View File

@@ -4,12 +4,14 @@ import { NormalizedDSpaceObject } from './normalized-dspace-object.model';
import { Community } from '../../shared/community.model'; import { Community } from '../../shared/community.model';
import { mapsTo, relationship } from '../builders/build-decorators'; import { mapsTo, relationship } from '../builders/build-decorators';
import { ResourceType } from '../../shared/resource-type'; import { ResourceType } from '../../shared/resource-type';
import { resourceType } from '../../shared/resource-type.decorator';
/** /**
* Normalized model class for a DSpace Community * Normalized model class for a DSpace Community
*/ */
@mapsTo(Community) @mapsTo(Community)
@inheritSerialization(NormalizedDSpaceObject) @inheritSerialization(NormalizedDSpaceObject)
@resourceType(ResourceType.Community)
export class NormalizedCommunity extends NormalizedDSpaceObject<Community> { export class NormalizedCommunity extends NormalizedDSpaceObject<Community> {
/** /**

View File

@@ -4,11 +4,13 @@ import { MetadataMap, MetadataMapSerializer } from '../../shared/metadata.models
import { ResourceType } from '../../shared/resource-type'; import { ResourceType } from '../../shared/resource-type';
import { mapsTo } from '../builders/build-decorators'; import { mapsTo } from '../builders/build-decorators';
import { NormalizedObject } from './normalized-object.model'; import { NormalizedObject } from './normalized-object.model';
import { resourceType } from '../../shared/resource-type.decorator';
/** /**
* An model class for a DSpaceObject. * An model class for a DSpaceObject.
*/ */
@mapsTo(DSpaceObject) @mapsTo(DSpaceObject)
@resourceType(ResourceType.DSpaceObject)
export class NormalizedDSpaceObject<T extends DSpaceObject> extends NormalizedObject<T> { export class NormalizedDSpaceObject<T extends DSpaceObject> extends NormalizedObject<T> {
/** /**

View File

@@ -4,12 +4,14 @@ import { NormalizedDSpaceObject } from './normalized-dspace-object.model';
import { Item } from '../../shared/item.model'; import { Item } from '../../shared/item.model';
import { mapsTo, relationship } from '../builders/build-decorators'; import { mapsTo, relationship } from '../builders/build-decorators';
import { ResourceType } from '../../shared/resource-type'; import { ResourceType } from '../../shared/resource-type';
import { resourceType } from '../../shared/resource-type.decorator';
/** /**
* Normalized model class for a DSpace Item * Normalized model class for a DSpace Item
*/ */
@mapsTo(Item) @mapsTo(Item)
@inheritSerialization(NormalizedDSpaceObject) @inheritSerialization(NormalizedDSpaceObject)
@resourceType(ResourceType.Item)
export class NormalizedItem extends NormalizedDSpaceObject<Item> { export class NormalizedItem extends NormalizedDSpaceObject<Item> {
/** /**

View File

@@ -2,12 +2,15 @@ import { autoserialize, inheritSerialization } from 'cerialize';
import { mapsTo } from '../builders/build-decorators'; import { mapsTo } from '../builders/build-decorators';
import { NormalizedDSpaceObject } from './normalized-dspace-object.model'; import { NormalizedDSpaceObject } from './normalized-dspace-object.model';
import { License } from '../../shared/license.model'; import { License } from '../../shared/license.model';
import { resourceType } from '../../shared/resource-type.decorator';
import { ResourceType } from '../../shared/resource-type';
/** /**
* Normalized model class for a Collection License * Normalized model class for a Collection License
*/ */
@mapsTo(License) @mapsTo(License)
@inheritSerialization(NormalizedDSpaceObject) @inheritSerialization(NormalizedDSpaceObject)
@resourceType(ResourceType.License)
export class NormalizedLicense extends NormalizedDSpaceObject<License> { export class NormalizedLicense extends NormalizedDSpaceObject<License> {
/** /**

View File

@@ -59,10 +59,10 @@ export class NormalizedObjectFactory {
case ResourceType.MetadataField: { case ResourceType.MetadataField: {
return NormalizedGroup return NormalizedGroup
} }
case ResourceType.Workspaceitem: { case ResourceType.WorkspaceItem: {
return NormalizedWorkspaceItem return NormalizedWorkspaceItem
} }
case ResourceType.Workflowitem: { case ResourceType.WorkflowItem: {
return NormalizedWorkflowItem return NormalizedWorkflowItem
} }
case ResourceType.SubmissionDefinition: case ResourceType.SubmissionDefinition:

View File

@@ -5,12 +5,15 @@ import { mapsTo } from '../builders/build-decorators';
import { NormalizedObject } from './normalized-object.model'; import { NormalizedObject } from './normalized-object.model';
import { IDToUUIDSerializer } from '../id-to-uuid-serializer'; import { IDToUUIDSerializer } from '../id-to-uuid-serializer';
import { ActionType } from './action-type.model'; import { ActionType } from './action-type.model';
import { resourceType } from '../../shared/resource-type.decorator';
import { ResourceType } from '../../shared/resource-type';
/** /**
* Normalized model class for a Resource Policy * Normalized model class for a Resource Policy
*/ */
@mapsTo(ResourcePolicy) @mapsTo(ResourcePolicy)
@inheritSerialization(NormalizedObject) @inheritSerialization(NormalizedObject)
@resourceType(ResourceType.ResourcePolicy)
export class NormalizedResourcePolicy extends NormalizedObject<ResourcePolicy> { export class NormalizedResourcePolicy extends NormalizedObject<ResourcePolicy> {
/** /**

View File

@@ -3,11 +3,16 @@ import { SubmissionSectionModel } from './config-submission-section.model';
import { PaginatedList } from '../../data/paginated-list'; import { PaginatedList } from '../../data/paginated-list';
import { NormalizedConfigObject } from './normalized-config.model'; import { NormalizedConfigObject } from './normalized-config.model';
import { SubmissionDefinitionsModel } from './config-submission-definitions.model'; import { SubmissionDefinitionsModel } from './config-submission-definitions.model';
import { resourceType } from '../../shared/resource-type.decorator';
import { ResourceType } from '../../shared/resource-type';
import { mapsTo } from '../../cache/builders/build-decorators';
/** /**
* Normalized class for the configuration describing the submission * Normalized class for the configuration describing the submission
*/ */
@mapsTo(SubmissionDefinitionsModel)
@inheritSerialization(NormalizedConfigObject) @inheritSerialization(NormalizedConfigObject)
@resourceType(ResourceType.SubmissionDefinitions)
export class NormalizedSubmissionDefinitionsModel extends NormalizedConfigObject<SubmissionDefinitionsModel> { export class NormalizedSubmissionDefinitionsModel extends NormalizedConfigObject<SubmissionDefinitionsModel> {
/** /**

View File

@@ -64,7 +64,7 @@ import { RegistryService } from './registry/registry.service';
import { RegistryMetadataschemasResponseParsingService } from './data/registry-metadataschemas-response-parsing.service'; import { RegistryMetadataschemasResponseParsingService } from './data/registry-metadataschemas-response-parsing.service';
import { RegistryMetadatafieldsResponseParsingService } from './data/registry-metadatafields-response-parsing.service'; import { RegistryMetadatafieldsResponseParsingService } from './data/registry-metadatafields-response-parsing.service';
import { RegistryBitstreamformatsResponseParsingService } from './data/registry-bitstreamformats-response-parsing.service'; import { RegistryBitstreamformatsResponseParsingService } from './data/registry-bitstreamformats-response-parsing.service';
import { WorkflowitemDataService } from './submission/workflowitem-data.service'; import { WorkflowItemDataService } from './submission/workflowitem-data.service';
import { NotificationsService } from '../shared/notifications/notifications.service'; import { NotificationsService } from '../shared/notifications/notifications.service';
import { UploaderService } from '../shared/uploader/uploader.service'; import { UploaderService } from '../shared/uploader/uploader.service';
import { FileService } from './shared/file.service'; import { FileService } from './shared/file.service';
@@ -152,7 +152,7 @@ const PROVIDERS = [
UUIDService, UUIDService,
NotificationsService, NotificationsService,
WorkspaceitemDataService, WorkspaceitemDataService,
WorkflowitemDataService, WorkflowItemDataService,
UploaderService, UploaderService,
FileService, FileService,
DSpaceObjectDataService, DSpaceObjectDataService,

View File

@@ -6,9 +6,11 @@ import { NormalizedDSpaceObject } from '../../cache/models/normalized-dspace-obj
import { EPerson } from './eperson.model'; import { EPerson } from './eperson.model';
import { mapsTo, relationship } from '../../cache/builders/build-decorators'; import { mapsTo, relationship } from '../../cache/builders/build-decorators';
import { ResourceType } from '../../shared/resource-type'; import { ResourceType } from '../../shared/resource-type';
import { resourceType } from '../../shared/resource-type.decorator';
@mapsTo(EPerson) @mapsTo(EPerson)
@inheritSerialization(NormalizedDSpaceObject) @inheritSerialization(NormalizedDSpaceObject)
@resourceType(ResourceType.EPerson)
export class NormalizedEPerson extends NormalizedDSpaceObject<EPerson> implements CacheableObject, ListableObject { export class NormalizedEPerson extends NormalizedDSpaceObject<EPerson> implements CacheableObject, ListableObject {
/** /**

View File

@@ -6,9 +6,11 @@ import { NormalizedDSpaceObject } from '../../cache/models/normalized-dspace-obj
import { mapsTo, relationship } from '../../cache/builders/build-decorators'; import { mapsTo, relationship } from '../../cache/builders/build-decorators';
import { Group } from './group.model'; import { Group } from './group.model';
import { ResourceType } from '../../shared/resource-type'; import { ResourceType } from '../../shared/resource-type';
import { resourceType } from '../../shared/resource-type.decorator';
@mapsTo(Group) @mapsTo(Group)
@inheritSerialization(NormalizedDSpaceObject) @inheritSerialization(NormalizedDSpaceObject)
@resourceType(ResourceType.Group)
export class NormalizedGroup extends NormalizedDSpaceObject<Group> implements CacheableObject, ListableObject { export class NormalizedGroup extends NormalizedDSpaceObject<Group> implements CacheableObject, ListableObject {
/** /**

View File

@@ -1,25 +1,18 @@
import { MetadataSchema } from './metadataschema.model';
import { autoserialize } from 'cerialize';
import { ListableObject } from '../../shared/object-collection/shared/listable-object.model'; import { ListableObject } from '../../shared/object-collection/shared/listable-object.model';
import { isNotEmpty } from '../../shared/empty.util'; import { isNotEmpty } from '../../shared/empty.util';
import { MetadataSchema } from './metadata-schema.model';
export class MetadataField implements ListableObject { export class MetadataField implements ListableObject {
@autoserialize
id: number; id: number;
@autoserialize
self: string; self: string;
@autoserialize
element: string; element: string;
@autoserialize
qualifier: string; qualifier: string;
@autoserialize
scopeNote: string; scopeNote: string;
@autoserialize
schema: MetadataSchema; schema: MetadataSchema;
toString(separator: string = '.'): string { toString(separator: string = '.'): string {

View File

@@ -1,16 +1,11 @@
import { autoserialize } from 'cerialize';
import { ListableObject } from '../../shared/object-collection/shared/listable-object.model'; import { ListableObject } from '../../shared/object-collection/shared/listable-object.model';
export class MetadataSchema implements ListableObject { export class MetadataSchema implements ListableObject {
@autoserialize
id: number; id: number;
@autoserialize
self: string; self: string;
@autoserialize
prefix: string; prefix: string;
@autoserialize
namespace: string; namespace: string;
} }

View File

@@ -0,0 +1,30 @@
import { autoserialize, deserialize } from 'cerialize';
import { mapsTo, relationship } from '../cache/builders/build-decorators';
import { ResourceType } from '../shared/resource-type';
import { resourceType } from '../shared/resource-type.decorator';
import { MetadataField } from './metadata-field.model';
import { NormalizedObject } from '../cache/models/normalized-object.model';
import { ListableObject } from '../../shared/object-collection/shared/listable-object.model';
@mapsTo(MetadataField)
@resourceType(ResourceType.MetadataField)
export class NormalizedMetadataField extends NormalizedObject<MetadataField> implements ListableObject {
@autoserialize
id: number;
@autoserialize
self: string;
@autoserialize
element: string;
@autoserialize
qualifier: string;
@autoserialize
scopeNote: string;
@deserialize
@relationship(ResourceType.MetadataSchema)
schema: string;
}

View File

@@ -2,12 +2,15 @@ import { autoserialize } from 'cerialize';
import { NormalizedObject } from '../cache/models/normalized-object.model'; import { NormalizedObject } from '../cache/models/normalized-object.model';
import { mapsTo } from '../cache/builders/build-decorators'; import { mapsTo } from '../cache/builders/build-decorators';
import { ListableObject } from '../../shared/object-collection/shared/listable-object.model'; import { ListableObject } from '../../shared/object-collection/shared/listable-object.model';
import { MetadataSchema } from './metadataschema.model'; import { resourceType } from '../shared/resource-type.decorator';
import { ResourceType } from '../shared/resource-type';
import { MetadataSchema } from './metadata-schema.model';
/** /**
* Normalized class for a DSpace MetadataSchema * Normalized class for a DSpace MetadataSchema
*/ */
@mapsTo(MetadataSchema) @mapsTo(MetadataSchema)
@resourceType(ResourceType.MetadataSchema)
export class NormalizedMetadataSchema extends NormalizedObject<MetadataSchema> implements ListableObject { export class NormalizedMetadataSchema extends NormalizedObject<MetadataSchema> implements ListableObject {
/** /**
* The unique identifier for this schema * The unique identifier for this schema

View File

@@ -0,0 +1,16 @@
import { CacheableObject } from '../cache/object-cache.reducer';
import { GenericConstructor } from './generic-constructor';
const resourceTypeForObjectMap = new Map();
export function resourceType(resourceType: string) {
return function decorator(objectConstructor: GenericConstructor<CacheableObject>) {
if (!objectConstructor) {
return;
}
resourceTypeForObjectMap.set(resourceType, objectConstructor);
};
}
export function rendersSectionType(resourceType: string) {
return resourceTypeForObjectMap.get(resourceType);
}

View File

@@ -12,12 +12,13 @@ export enum ResourceType {
MetadataSchema = 'metadataschema', MetadataSchema = 'metadataschema',
MetadataField = 'metadatafield', MetadataField = 'metadatafield',
License = 'license', License = 'license',
Workflowitem = 'workflowitem', WorkflowItem = 'workflowitem',
Workspaceitem = 'workspaceitem', WorkspaceItem = 'workspaceitem',
SubmissionDefinitions = 'submissiondefinitions', SubmissionDefinitions = 'submissiondefinitions',
SubmissionDefinition = 'submissiondefinition', SubmissionDefinition = 'submissiondefinition',
SubmissionForm = 'submissionform', SubmissionForm = 'submissionform',
SubmissionForms = 'submissionforms', SubmissionForms = 'submissionforms',
SubmissionSections = 'submissionsections', SubmissionSections = 'submissionsections',
SubmissionSection = 'submissionsection', SubmissionSection = 'submissionsection',
AuthStatus = 'status'
} }

View File

@@ -1,16 +1,18 @@
import { autoserialize, inheritSerialization } from 'cerialize'; import { autoserialize, inheritSerialization } from 'cerialize';
import { mapsTo, relationship } from '../../cache/builders/build-decorators'; import { mapsTo, relationship } from '../../cache/builders/build-decorators';
import { Workflowitem } from './workflowitem.model'; import { WorkflowItem } from './workflowitem.model';
import { NormalizedSubmissionObject } from './normalized-submission-object.model'; import { NormalizedSubmissionObject } from './normalized-submission-object.model';
import { ResourceType } from '../../shared/resource-type'; import { ResourceType } from '../../shared/resource-type';
import { resourceType } from '../../shared/resource-type.decorator';
/** /**
* An model class for a NormalizedWorkflowItem. * An model class for a NormalizedWorkflowItem.
*/ */
@mapsTo(Workflowitem) @mapsTo(WorkflowItem)
@inheritSerialization(NormalizedSubmissionObject) @inheritSerialization(NormalizedSubmissionObject)
export class NormalizedWorkflowItem extends NormalizedSubmissionObject<Workflowitem> { @resourceType(ResourceType.WorkflowItem)
export class NormalizedWorkflowItem extends NormalizedSubmissionObject<WorkflowItem> {
/** /**
* The collection this workflowitem belonging to * The collection this workflowitem belonging to

View File

@@ -1,19 +1,21 @@
import { autoserialize, inheritSerialization } from 'cerialize'; import { autoserialize, inheritSerialization } from 'cerialize';
import { Workspaceitem } from './workspaceitem.model'; import { WorkspaceItem } from './workspaceitem.model';
import { NormalizedSubmissionObject } from './normalized-submission-object.model'; import { NormalizedSubmissionObject } from './normalized-submission-object.model';
import { mapsTo, relationship } from '../../cache/builders/build-decorators'; import { mapsTo, relationship } from '../../cache/builders/build-decorators';
import { NormalizedDSpaceObject } from '../../cache/models/normalized-dspace-object.model'; import { NormalizedDSpaceObject } from '../../cache/models/normalized-dspace-object.model';
import { ResourceType } from '../../shared/resource-type'; import { ResourceType } from '../../shared/resource-type';
import { Workflowitem } from './workflowitem.model'; import { WorkflowItem } from './workflowitem.model';
import { resourceType } from '../../shared/resource-type.decorator';
/** /**
* An model class for a NormalizedWorkspaceItem. * An model class for a NormalizedWorkspaceItem.
*/ */
@mapsTo(Workspaceitem) @mapsTo(WorkspaceItem)
@inheritSerialization(NormalizedDSpaceObject) @inheritSerialization(NormalizedDSpaceObject)
@inheritSerialization(NormalizedSubmissionObject) @inheritSerialization(NormalizedSubmissionObject)
export class NormalizedWorkspaceItem extends NormalizedSubmissionObject<Workflowitem> { @resourceType(ResourceType.WorkspaceItem)
export class NormalizedWorkspaceItem extends NormalizedSubmissionObject<WorkflowItem> {
/** /**
* The collection this workspaceitem belonging to * The collection this workspaceitem belonging to

View File

@@ -1,7 +1,7 @@
import { Workspaceitem } from './workspaceitem.model'; import { WorkspaceItem } from './workspaceitem.model';
/** /**
* A model class for a Workflowitem. * A model class for a WorkflowItem.
*/ */
export class Workflowitem extends Workspaceitem { export class WorkflowItem extends WorkspaceItem {
} }

View File

@@ -1,8 +1,8 @@
import { SubmissionObject } from './submission-object.model'; import { SubmissionObject } from './submission-object.model';
/** /**
* A model class for a Workspaceitem. * A model class for a WorkspaceItem.
*/ */
export class Workspaceitem extends SubmissionObject { export class WorkspaceItem extends SubmissionObject {
} }

View File

@@ -6,7 +6,7 @@ import { RemoteDataBuildService } from '../cache/builders/remote-data-build.serv
import { CoreState } from '../core.reducers'; import { CoreState } from '../core.reducers';
import { DataService } from '../data/data.service'; import { DataService } from '../data/data.service';
import { RequestService } from '../data/request.service'; import { RequestService } from '../data/request.service';
import { Workflowitem } from './models/workflowitem.model'; import { WorkflowItem } from './models/workflowitem.model';
import { HALEndpointService } from '../shared/hal-endpoint.service'; import { HALEndpointService } from '../shared/hal-endpoint.service';
import { FindAllOptions } from '../data/request.models'; import { FindAllOptions } from '../data/request.models';
import { NormalizedObjectBuildService } from '../cache/builders/normalized-object-build.service'; import { NormalizedObjectBuildService } from '../cache/builders/normalized-object-build.service';
@@ -18,12 +18,12 @@ import { DSOChangeAnalyzer } from '../data/dso-change-analyzer.service';
* A service that provides methods to make REST requests with workflowitems endpoint. * A service that provides methods to make REST requests with workflowitems endpoint.
*/ */
@Injectable() @Injectable()
export class WorkflowitemDataService extends DataService<Workflowitem> { export class WorkflowItemDataService extends DataService<WorkflowItem> {
protected linkPath = 'workflowitems'; protected linkPath = 'workflowitems';
protected forceBypassCache = true; protected forceBypassCache = true;
constructor( constructor(
protected comparator: DSOChangeAnalyzer<Workflowitem>, protected comparator: DSOChangeAnalyzer<WorkflowItem>,
protected dataBuildService: NormalizedObjectBuildService, protected dataBuildService: NormalizedObjectBuildService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected http: HttpClient, protected http: HttpClient,

View File

@@ -30,9 +30,9 @@ import {
} from './submission-objects.actions'; } from './submission-objects.actions';
import { SectionsService } from '../sections/sections.service'; import { SectionsService } from '../sections/sections.service';
import { isEmpty, isNotEmpty, isNotUndefined } from '../../shared/empty.util'; import { isEmpty, isNotEmpty, isNotUndefined } from '../../shared/empty.util';
import { Workspaceitem } from '../../core/submission/models/workspaceitem.model'; import { WorkspaceItem } from '../../core/submission/models/workspaceitem.model';
import { SubmissionService } from '../submission.service'; import { SubmissionService } from '../submission.service';
import { Workflowitem } from '../../core/submission/models/workflowitem.model'; import { WorkflowItem } from '../../core/submission/models/workflowitem.model';
import { NotificationsService } from '../../shared/notifications/notifications.service'; import { NotificationsService } from '../../shared/notifications/notifications.service';
import { SubmissionObject } from '../../core/submission/models/submission-object.model'; import { SubmissionObject } from '../../core/submission/models/submission-object.model';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
@@ -265,7 +265,7 @@ export class SubmissionObjectEffects {
let canDeposit = true; let canDeposit = true;
if (isNotEmpty(response)) { if (isNotEmpty(response)) {
response.forEach((item: Workspaceitem | Workflowitem) => { response.forEach((item: WorkspaceItem | WorkflowItem) => {
const {errors} = item; const {errors} = item;
if (errors && !isEmpty(errors)) { if (errors && !isEmpty(errors)) {
@@ -303,7 +303,7 @@ export class SubmissionObjectEffects {
this.notificationsService.success(null, this.translate.get('submission.sections.general.save_success_notice')); this.notificationsService.success(null, this.translate.get('submission.sections.general.save_success_notice'));
} }
response.forEach((item: Workspaceitem | Workflowitem) => { response.forEach((item: WorkspaceItem | WorkflowItem) => {
let errorsList = Object.create({}); let errorsList = Object.create({});
const {errors} = item; const {errors} = item;