mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
solved issues with browse pages
This commit is contained in:
@@ -342,7 +342,7 @@ describe('ItemComponent', () => {
|
||||
id: '123',
|
||||
leftItem: createSuccessfulRemoteDataObject$(mockItem),
|
||||
rightItem: createSuccessfulRemoteDataObject$(relatedItem),
|
||||
relationshipType: createSuccessfulRemoteDataObject$new RelationshipType())
|
||||
relationshipType: createSuccessfulRemoteDataObject$(new RelationshipType())
|
||||
})
|
||||
]));
|
||||
mockItem.metadata[metadataField] = [
|
||||
|
@@ -1,10 +1,12 @@
|
||||
import { autoserialize, autoserializeAs } from 'cerialize';
|
||||
import { autoserialize, inheritSerialization } from 'cerialize';
|
||||
import { MetadataMap } from '../core/shared/metadata.models';
|
||||
import { ListableObject } from '../shared/object-collection/shared/listable-object.model';
|
||||
import { NormalizedObject } from '../core/cache/models/normalized-object.model';
|
||||
|
||||
/**
|
||||
* Represents a normalized version of a search result object of a certain DSpaceObject
|
||||
*/
|
||||
@inheritSerialization(NormalizedObject)
|
||||
export class NormalizedSearchResult implements ListableObject {
|
||||
/**
|
||||
* The UUID of the DSpaceObject that was found
|
||||
|
@@ -1,7 +1,6 @@
|
||||
import { AuthStatus } from './auth-status.model';
|
||||
import { autoserialize, autoserializeAs, inheritSerialization } from 'cerialize';
|
||||
import { mapsTo, relationship } from '../../cache/builders/build-decorators';
|
||||
import { ResourceType } from '../../shared/resource-type';
|
||||
import { NormalizedObject } from '../../cache/models/normalized-object.model';
|
||||
import { IDToUUIDSerializer } from '../../cache/id-to-uuid-serializer';
|
||||
import { EPerson } from '../../eperson/models/eperson.model';
|
||||
|
@@ -1,8 +1,9 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Observable, of as observableOf } from 'rxjs';
|
||||
import { distinctUntilChanged, map, startWith, take } from 'rxjs/operators';
|
||||
import { distinctUntilChanged, map, startWith } from 'rxjs/operators';
|
||||
import {
|
||||
ensureArrayHasValue, hasValue,
|
||||
ensureArrayHasValue,
|
||||
hasValue,
|
||||
hasValueOperator,
|
||||
isEmpty,
|
||||
isNotEmpty,
|
||||
@@ -23,7 +24,9 @@ import { BrowseEntry } from '../shared/browse-entry.model';
|
||||
import { HALEndpointService } from '../shared/hal-endpoint.service';
|
||||
import {
|
||||
configureRequest,
|
||||
filterSuccessfulResponses, getBrowseDefinitionLinks, getFirstOccurrence,
|
||||
filterSuccessfulResponses,
|
||||
getBrowseDefinitionLinks,
|
||||
getFirstOccurrence,
|
||||
getRemoteDataPayload,
|
||||
getRequestFromRequestHref
|
||||
} from '../shared/operators';
|
||||
@@ -32,7 +35,6 @@ import { Item } from '../shared/item.model';
|
||||
import { DSpaceObject } from '../shared/dspace-object.model';
|
||||
import { BrowseEntrySearchOptions } from './browse-entry-search-options.model';
|
||||
import { GenericSuccessResponse } from '../cache/response.models';
|
||||
import { RequestEntry } from '../data/request.reducer';
|
||||
|
||||
/**
|
||||
* The service handling all browse requests
|
||||
|
@@ -5,7 +5,6 @@ import { mapsTo, relationship } from '../../builders/build-decorators';
|
||||
import { NormalizedDSpaceObject } from '../normalized-dspace-object.model';
|
||||
import { NormalizedObject } from '../normalized-object.model';
|
||||
import { IDToUUIDSerializer } from '../../id-to-uuid-serializer';
|
||||
import { NormalizedItemType } from './normalized-item-type.model';
|
||||
import { ItemType } from '../../../shared/item-relationships/item-type.model';
|
||||
|
||||
/**
|
||||
|
@@ -1,11 +1,10 @@
|
||||
import { autoserialize, autoserializeAs, inheritSerialization } from 'cerialize';
|
||||
import { Relationship } from '../../../shared/item-relationships/relationship.model';
|
||||
import { ResourceType } from '../../../shared/resource-type';
|
||||
import { mapsTo, relationship } from '../../builders/build-decorators';
|
||||
import { NormalizedObject } from '../normalized-object.model';
|
||||
import { IDToUUIDSerializer } from '../../id-to-uuid-serializer';
|
||||
import { NormalizedRelationshipType } from './normalized-relationship-type.model';
|
||||
import { RelationshipType } from '../../../shared/item-relationships/relationship-type.model';
|
||||
import { Item } from '../../../shared/item.model';
|
||||
|
||||
/**
|
||||
* Normalized model class for a DSpace Relationship
|
||||
@@ -24,14 +23,14 @@ export class NormalizedRelationship extends NormalizedObject<Relationship> {
|
||||
* The item to the left of this relationship
|
||||
*/
|
||||
@autoserialize
|
||||
@relationship(ResourceType.Item, false)
|
||||
@relationship(Item, false)
|
||||
leftItem: string;
|
||||
|
||||
/**
|
||||
* The item to the right of this relationship
|
||||
*/
|
||||
@autoserialize
|
||||
@relationship(ResourceType.Item, false)
|
||||
@relationship(Item, false)
|
||||
rightItem: string;
|
||||
|
||||
/**
|
||||
|
@@ -2,7 +2,6 @@ import { autoserialize, inheritSerialization } from 'cerialize';
|
||||
import { mapsTo } from '../builders/build-decorators';
|
||||
import { NormalizedDSpaceObject } from './normalized-dspace-object.model';
|
||||
import { License } from '../../shared/license.model';
|
||||
import { ResourceType } from '../../shared/resource-type';
|
||||
|
||||
/**
|
||||
* Normalized model class for a Collection License
|
||||
|
@@ -5,7 +5,6 @@ import { mapsTo } from '../builders/build-decorators';
|
||||
import { NormalizedObject } from './normalized-object.model';
|
||||
import { IDToUUIDSerializer } from '../id-to-uuid-serializer';
|
||||
import { ActionType } from './action-type.model';
|
||||
import { ResourceType } from '../../shared/resource-type';
|
||||
|
||||
/**
|
||||
* Normalized model class for a Resource Policy
|
||||
|
@@ -100,7 +100,6 @@ import { NormalizedSubmissionFormsModel } from './config/models/normalized-confi
|
||||
import { NormalizedSubmissionSectionModel } from './config/models/normalized-config-submission-section.model';
|
||||
import { NormalizedAuthStatus } from './auth/models/normalized-auth-status.model';
|
||||
import { NormalizedAuthorityValue } from './integration/models/normalized-authority-value.model';
|
||||
import { BrowseEntry } from './shared/browse-entry.model';
|
||||
import { RoleService } from './roles/role.service';
|
||||
import { MyDSpaceGuard } from '../+my-dspace-page/my-dspace.guard';
|
||||
import { MyDSpaceResponseParsingService } from './data/mydspace-response-parsing.service';
|
||||
@@ -115,6 +114,8 @@ import { NormalizedRelationshipType } from './cache/models/items/normalized-rela
|
||||
import { NormalizedItemType } from './cache/models/items/normalized-item-type.model';
|
||||
import { MetadatafieldParsingService } from './data/metadatafield-parsing.service';
|
||||
import { NormalizedSubmissionUploadsModel } from './config/models/normalized-config-submission-uploads.model';
|
||||
import { NormalizedBrowseEntry } from './shared/normalized-browse-entry.model';
|
||||
import { BrowseDefinition } from './shared/browse-definition.model';
|
||||
|
||||
const IMPORTS = [
|
||||
CommonModule,
|
||||
@@ -237,7 +238,8 @@ export const normalizedModels =
|
||||
NormalizedSubmissionUploadsModel,
|
||||
NormalizedAuthStatus,
|
||||
NormalizedAuthorityValue,
|
||||
BrowseEntry,
|
||||
NormalizedBrowseEntry,
|
||||
BrowseDefinition,
|
||||
NormalizedClaimedTask,
|
||||
NormalizedTaskObject,
|
||||
NormalizedPoolTask,
|
||||
|
@@ -3,17 +3,13 @@ import { GLOBAL_CONFIG } from '../../../config';
|
||||
import { GlobalConfig } from '../../../config/global-config.interface';
|
||||
import { isNotEmpty } from '../../shared/empty.util';
|
||||
import { ObjectCacheService } from '../cache/object-cache.service';
|
||||
import {
|
||||
ErrorResponse,
|
||||
GenericSuccessResponse,
|
||||
RestResponse
|
||||
} from '../cache/response.models';
|
||||
import { ErrorResponse, GenericSuccessResponse, RestResponse } from '../cache/response.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { DSpaceRESTv2Serializer } from '../dspace-rest-v2/dspace-rest-v2.serializer';
|
||||
import { BrowseEntry } from '../shared/browse-entry.model';
|
||||
import { BaseResponseParsingService } from './base-response-parsing.service';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RestRequest } from './request.models';
|
||||
import { NormalizedBrowseEntry } from '../shared/normalized-browse-entry.model';
|
||||
|
||||
@Injectable()
|
||||
export class BrowseEntriesResponseParsingService extends BaseResponseParsingService implements ResponseParsingService {
|
||||
@@ -30,7 +26,7 @@ export class BrowseEntriesResponseParsingService extends BaseResponseParsingServ
|
||||
if (isNotEmpty(data.payload)) {
|
||||
let browseEntries = [];
|
||||
if (isNotEmpty(data.payload._embedded) && Array.isArray(data.payload._embedded[Object.keys(data.payload._embedded)[0]])) {
|
||||
const serializer = new DSpaceRESTv2Serializer(BrowseEntry);
|
||||
const serializer = new DSpaceRESTv2Serializer(NormalizedBrowseEntry);
|
||||
browseEntries = serializer.deserializeArray(data.payload._embedded[Object.keys(data.payload._embedded)[0]]);
|
||||
}
|
||||
return new GenericSuccessResponse(browseEntries, data.statusCode, data.statusText, this.processPageInfo(data.payload));
|
||||
|
@@ -113,7 +113,6 @@ describe('BrowseResponseParsingService', () => {
|
||||
}
|
||||
],
|
||||
defaultSortOrder: 'ASC',
|
||||
type: 'browse',
|
||||
metadataKeys: [
|
||||
'dc.date.issued'
|
||||
],
|
||||
@@ -139,7 +138,6 @@ describe('BrowseResponseParsingService', () => {
|
||||
}
|
||||
],
|
||||
defaultSortOrder: 'ASC',
|
||||
type: 'browse',
|
||||
metadataKeys: [
|
||||
'dc.contributor.*',
|
||||
'dc.creator'
|
||||
@@ -173,6 +171,5 @@ describe('BrowseResponseParsingService', () => {
|
||||
const response = service.parse(validRequest, validResponse);
|
||||
expect((response as GenericSuccessResponse<BrowseDefinition[]>).payload).toEqual(definitions);
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { autoserialize, deserialize } from 'cerialize';
|
||||
import { autoserialize, deserialize, inheritSerialization } from 'cerialize';
|
||||
import { mapsTo, relationship } from '../cache/builders/build-decorators';
|
||||
import { MetadataField } from './metadata-field.model';
|
||||
import { NormalizedObject } from '../cache/models/normalized-object.model';
|
||||
@@ -9,6 +9,7 @@ import { MetadataSchema } from './metadata-schema.model';
|
||||
* Class the represents a normalized metadata field
|
||||
*/
|
||||
@mapsTo(MetadataField)
|
||||
@inheritSerialization(NormalizedObject)
|
||||
export class NormalizedMetadataField extends NormalizedObject<MetadataField> implements ListableObject {
|
||||
|
||||
/**
|
||||
|
@@ -1,14 +1,14 @@
|
||||
import { autoserialize } from 'cerialize';
|
||||
import { autoserialize, inheritSerialization } from 'cerialize';
|
||||
import { NormalizedObject } from '../cache/models/normalized-object.model';
|
||||
import { mapsTo } from '../cache/builders/build-decorators';
|
||||
import { ListableObject } from '../../shared/object-collection/shared/listable-object.model';
|
||||
import { ResourceType } from '../shared/resource-type';
|
||||
import { MetadataSchema } from './metadata-schema.model';
|
||||
|
||||
/**
|
||||
* Normalized class for a DSpace MetadataSchema
|
||||
*/
|
||||
@mapsTo(MetadataSchema)
|
||||
@inheritSerialization(NormalizedObject)
|
||||
export class NormalizedMetadataSchema extends NormalizedObject<MetadataSchema> implements ListableObject {
|
||||
/**
|
||||
* The unique identifier for this schema
|
||||
|
@@ -4,6 +4,8 @@ import { ResourceType } from './resource-type';
|
||||
import { TypedObject } from '../cache/object-cache.reducer';
|
||||
|
||||
export class BrowseDefinition implements TypedObject {
|
||||
static type = new ResourceType('browse');
|
||||
|
||||
@autoserialize
|
||||
id: string;
|
||||
|
||||
|
@@ -1,5 +1,4 @@
|
||||
import { autoserialize, autoserializeAs } from 'cerialize';
|
||||
import { ResourceType } from './resource-type';
|
||||
import { autoserialize, autoserializeAs, inheritSerialization } from 'cerialize';
|
||||
import { BrowseEntry } from './browse-entry.model';
|
||||
import { NormalizedObject } from '../cache/models/normalized-object.model';
|
||||
import { mapsTo } from '../cache/builders/build-decorators';
|
||||
@@ -9,6 +8,7 @@ import { mapsTo } from '../cache/builders/build-decorators';
|
||||
* This class is not normalized because browse entries do not have self links
|
||||
*/
|
||||
@mapsTo(BrowseEntry)
|
||||
@inheritSerialization(NormalizedObject)
|
||||
export class NormalizedBrowseEntry extends NormalizedObject<BrowseEntry> {
|
||||
/**
|
||||
* The authority string of this browse entry
|
||||
|
@@ -27,17 +27,16 @@ import { SubmissionJsonPatchOperationsService } from '../../../core/submission/s
|
||||
import { SubmissionJsonPatchOperationsServiceStub } from '../../../shared/testing/submission-json-patch-operations-service-stub';
|
||||
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { Community } from '../../../core/shared/community.model';
|
||||
import { PaginatedList } from '../../../core/data/paginated-list';
|
||||
import { PageInfo } from '../../../core/shared/page-info.model';
|
||||
import { Collection } from '../../../core/shared/collection.model';
|
||||
import {
|
||||
createSuccessfulRemoteDataObject$,
|
||||
createTestComponent
|
||||
} from '../../../shared/testing/utils';
|
||||
import { cold } from 'jasmine-marbles';
|
||||
import { SearchResult } from '../../../+search-page/search-result.model';
|
||||
import { SearchService } from '../../../+search-page/search-service/search.service';
|
||||
import { RemoteData } from '../../../core/data/remote-data';
|
||||
|
||||
const mockCommunity1Collection1 = Object.assign(new Collection(), {
|
||||
name: 'Community 1-Collection 1',
|
||||
|
Reference in New Issue
Block a user