Merge remote-tracking branch 'atmire/mixing-text-authority-entities' into w2p-61133_Merge-345-and-master

Conflicts:
	src/app/+collection-page/collection-page.component.ts
	src/app/+collection-page/collection-page.module.ts
	src/app/+item-page/field-components/metadata-uri-values/metadata-uri-values.component.ts
	src/app/+item-page/field-components/metadata-values/metadata-values.component.ts
	src/app/+item-page/simple/field-components/specific-field/item-page-field.component.html
	src/app/+item-page/simple/field-components/specific-field/uri/item-page-uri-field.component.html
	src/app/+search-page/search-service/search.service.ts
	src/app/core/core.module.ts
	src/app/core/data/base-response-parsing.service.ts
	src/app/core/data/data.service.ts
	src/app/core/data/request.service.spec.ts
	src/app/core/metadata/metadata.service.spec.ts
	src/app/core/shared/dspace-object.model.ts
	src/app/core/shared/metadatum.model.ts
	src/app/core/shared/operators.ts
	src/app/core/shared/resource-type.ts
	src/app/shared/object-list/item-list-element/item-list-element.component.html
	src/app/shared/object-list/item-list-element/item-list-element.component.spec.ts
	src/app/shared/object-list/search-result-list-element/item-search-result/item-search-result-list-element.component.html
	src/app/shared/object-list/search-result-list-element/item-search-result/item-search-result-list-element.component.spec.ts
	src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts
	src/app/shared/services/route.service.ts
	src/app/shared/shared.module.ts
This commit is contained in:
Kristof De Langhe
2019-03-15 09:59:30 +01:00
208 changed files with 6544 additions and 582 deletions

View File

@@ -10,6 +10,7 @@ import { RemoteData } from '../data/remote-data';
import { ResourceType } from './resource-type';
import { ListableObject } from '../../shared/object-collection/shared/listable-object.model';
import { Observable } from 'rxjs';
import { hasNoValue } from '../../shared/empty.util';
/**
* An abstract model class for a DSpaceObject.
@@ -117,4 +118,23 @@ export class DSpaceObject implements CacheableObject, ListableObject {
return Metadata.has(this.metadata, keyOrKeys, valueFilter);
}
/**
* Find metadata on a specific field and order all of them using their "place" property.
* @param key
*/
findMetadataSortedByPlace(key: string): MetadataValue[] {
return this.allMetadata([key]).sort((a: MetadataValue, b: MetadataValue) => {
if (hasNoValue(a.place) && hasNoValue(b.place)) {
return 0;
}
if (hasNoValue(a.place)) {
return -1;
}
if (hasNoValue(b.place)) {
return 1;
}
return a.place - b.place;
});
}
}