mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
Merge remote-tracking branch 'origin/feature/CST-9636' into feature/CST-9636
This commit is contained in:
@@ -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>>;
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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 };
|
||||
|
@@ -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');
|
||||
|
@@ -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({
|
||||
|
@@ -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)
|
||||
);
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user