Merge remote-tracking branch 'origin/feature/CST-9636' into feature/CST-9636

This commit is contained in:
Enea Jahollari
2023-05-10 16:28:00 +02:00
6 changed files with 32 additions and 18 deletions

View File

@@ -1,17 +1,17 @@
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
import { ObjectCacheService } from '../cache/object-cache.service';
import { HALEndpointService } from '../shared/hal-endpoint.service';
import { RemoteData } from '../data/remote-data';
import { RequestService } from '../data/request.service';
import { BulkAccessConditionOptions } from './models/bulk-access-condition-options.model';
import { ConfigDataService } from './config-data.service';
import { dataService } from '../data/base/data-service.decorator';
import { BULK_ACCESS_CONDITION_OPTIONS } from './models/config-type';
@Injectable({ providedIn: 'root' })
/**
* Data Service responsible for retrieving Bulk Access Condition Options from the REST API
*/
@Injectable({ providedIn: 'root' })
@dataService(BULK_ACCESS_CONDITION_OPTIONS)
export class BulkAccessConfigDataService extends ConfigDataService {
constructor(
@@ -23,7 +23,4 @@ export class BulkAccessConfigDataService extends ConfigDataService {
super('bulkaccessconditionoptions', requestService, rdbService, objectCache, halService);
}
findByPropertyName(name: string): Observable<RemoteData<BulkAccessConditionOptions>> {
return this.findById(name) as Observable<RemoteData<BulkAccessConditionOptions>>;
}
}

View File

@@ -1,9 +1,10 @@
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { ConfigObject } from './models/config.model';
import { RemoteData } from '../data/remote-data';
import { FollowLinkConfig } from '../../shared/utils/follow-link-config.model';
import { getFirstCompletedRemoteData } from '../shared/operators';
import { map } from 'rxjs/operators';
import { IdentifiableDataService } from '../data/base/identifiable-data.service';
/**
@@ -38,7 +39,20 @@ export abstract class ConfigDataService extends IdentifiableDataService<ConfigOb
);
}
findByName(name: string, useCachedVersionIfAvailable = true, reRequestOnStale = true, ...linksToFollow: FollowLinkConfig<ConfigObject>[]): Observable<RemoteData<ConfigObject>> {
/**
* Returns a config object by given name
*
* Throws an error if a configuration object cannot be retrieved.
*
* @param name The name of configuration to retrieve
* @param useCachedVersionIfAvailable If this is true, the request will only be sent if there's
* no valid cached version. Defaults to true
* @param reRequestOnStale Whether or not the request should automatically be re-
* requested after the response becomes stale
* @param linksToFollow List of {@link FollowLinkConfig} that indicate which
* {@link HALLink}s should be automatically resolved
*/
public findByName(name: string, useCachedVersionIfAvailable = true, reRequestOnStale = true, ...linksToFollow: FollowLinkConfig<ConfigObject>[]): Observable<RemoteData<ConfigObject>> {
return super.findById(name, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow);
}
}

View File

@@ -1,17 +1,17 @@
import { autoserialize, autoserializeAs, deserialize } from 'cerialize';
import { autoserialize, autoserializeAs, inheritSerialization } from 'cerialize';
import { typedObject } from '../../cache/builders/build-decorators';
import { excludeFromEquals } from '../../utilities/equals.decorators';
import { ResourceType } from '../../shared/resource-type';
import { HALLink } from '../../shared/hal-link.model';
import { ConfigObject } from './config.model';
import { AccessesConditionOption } from './config-accesses-conditions-options.model';
export const BULK_ACCESS_CONDITION_OPTIONS = new ResourceType('bulkAccessConditionOptions');
import { BULK_ACCESS_CONDITION_OPTIONS } from './config-type';
/**
* Model class for a bulk access condition options
*/
@typedObject
@inheritSerialization(ConfigObject)
export class BulkAccessConditionOptions extends ConfigObject {
static type = BULK_ACCESS_CONDITION_OPTIONS;
@@ -28,10 +28,10 @@ export class BulkAccessConditionOptions extends ConfigObject {
@autoserialize
id: string;
@deserialize
@autoserialize
itemAccessConditionOptions: AccessesConditionOption[];
@deserialize
@autoserialize
bitstreamAccessConditionOptions: AccessesConditionOption[];
_links: { self: HALLink };

View File

@@ -17,3 +17,5 @@ export const SUBMISSION_UPLOADS_TYPE = new ResourceType('submissionuploads');
export const SUBMISSION_UPLOAD_TYPE = new ResourceType('submissionupload');
export const SUBMISSION_ACCESSES_TYPE = new ResourceType('submissionaccessoption');
export const BULK_ACCESS_CONDITION_OPTIONS = new ResourceType('bulkaccessconditionoption');

View File

@@ -177,6 +177,7 @@ import { IdentifierData } from '../shared/object-list/identifier-data/identifier
import { Subscription } from '../shared/subscriptions/models/subscription.model';
import { SupervisionOrderDataService } from './supervision-order/supervision-order-data.service';
import { ItemRequest } from './shared/item-request.model';
import { BulkAccessConditionOptions } from './config/models/bulk-access-condition-options.model';
/**
* When not in production, endpoint responses can be mocked for testing purposes
@@ -371,6 +372,7 @@ export const models =
IdentifierData,
Subscription,
ItemRequest,
BulkAccessConditionOptions
];
@NgModule({

View File

@@ -9,7 +9,7 @@ import {
import { BulkAccessControlService } from './bulk-access-control.service';
import { SelectableListService } from '../object-list/selectable-list/selectable-list.service';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { map, take, tap } from 'rxjs/operators';
import { map, take } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
import { ListableObject } from '../object-collection/shared/listable-object.model';
import { SharedModule } from '../shared.module';
@@ -62,11 +62,10 @@ export class AccessControlFormContainerComponent<T extends DSpaceObject> impleme
state = initialState;
dropdownData$: Observable<BulkAccessConditionOptions> = this.bulkAccessConfigService.findByPropertyName('default').pipe(
dropdownData$: Observable<BulkAccessConditionOptions> = this.bulkAccessConfigService.findByName('default').pipe(
getFirstCompletedRemoteData(),
map((configRD: RemoteData<BulkAccessConditionOptions>) => configRD.hasSucceeded ? configRD.payload : null),
shareReplay(1),
tap(x => console.log('options', x))
shareReplay(1)
);
/**