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 { Injectable } from '@angular/core';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
|
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
|
||||||
import { ObjectCacheService } from '../cache/object-cache.service';
|
import { ObjectCacheService } from '../cache/object-cache.service';
|
||||||
import { HALEndpointService } from '../shared/hal-endpoint.service';
|
import { HALEndpointService } from '../shared/hal-endpoint.service';
|
||||||
import { RemoteData } from '../data/remote-data';
|
|
||||||
import { RequestService } from '../data/request.service';
|
import { RequestService } from '../data/request.service';
|
||||||
import { BulkAccessConditionOptions } from './models/bulk-access-condition-options.model';
|
|
||||||
import { ConfigDataService } from './config-data.service';
|
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
|
* 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 {
|
export class BulkAccessConfigDataService extends ConfigDataService {
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@@ -23,7 +23,4 @@ export class BulkAccessConfigDataService extends ConfigDataService {
|
|||||||
super('bulkaccessconditionoptions', requestService, rdbService, objectCache, halService);
|
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 { Observable } from 'rxjs';
|
||||||
|
import { map } from 'rxjs/operators';
|
||||||
|
|
||||||
import { ConfigObject } from './models/config.model';
|
import { ConfigObject } from './models/config.model';
|
||||||
import { RemoteData } from '../data/remote-data';
|
import { RemoteData } from '../data/remote-data';
|
||||||
import { FollowLinkConfig } from '../../shared/utils/follow-link-config.model';
|
import { FollowLinkConfig } from '../../shared/utils/follow-link-config.model';
|
||||||
import { getFirstCompletedRemoteData } from '../shared/operators';
|
import { getFirstCompletedRemoteData } from '../shared/operators';
|
||||||
import { map } from 'rxjs/operators';
|
|
||||||
import { IdentifiableDataService } from '../data/base/identifiable-data.service';
|
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);
|
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 { typedObject } from '../../cache/builders/build-decorators';
|
||||||
import { excludeFromEquals } from '../../utilities/equals.decorators';
|
import { excludeFromEquals } from '../../utilities/equals.decorators';
|
||||||
import { ResourceType } from '../../shared/resource-type';
|
import { ResourceType } from '../../shared/resource-type';
|
||||||
import { HALLink } from '../../shared/hal-link.model';
|
import { HALLink } from '../../shared/hal-link.model';
|
||||||
import { ConfigObject } from './config.model';
|
import { ConfigObject } from './config.model';
|
||||||
import { AccessesConditionOption } from './config-accesses-conditions-options.model';
|
import { AccessesConditionOption } from './config-accesses-conditions-options.model';
|
||||||
|
import { BULK_ACCESS_CONDITION_OPTIONS } from './config-type';
|
||||||
export const BULK_ACCESS_CONDITION_OPTIONS = new ResourceType('bulkAccessConditionOptions');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Model class for a bulk access condition options
|
* Model class for a bulk access condition options
|
||||||
*/
|
*/
|
||||||
@typedObject
|
@typedObject
|
||||||
|
@inheritSerialization(ConfigObject)
|
||||||
export class BulkAccessConditionOptions extends ConfigObject {
|
export class BulkAccessConditionOptions extends ConfigObject {
|
||||||
static type = BULK_ACCESS_CONDITION_OPTIONS;
|
static type = BULK_ACCESS_CONDITION_OPTIONS;
|
||||||
|
|
||||||
@@ -28,10 +28,10 @@ export class BulkAccessConditionOptions extends ConfigObject {
|
|||||||
@autoserialize
|
@autoserialize
|
||||||
id: string;
|
id: string;
|
||||||
|
|
||||||
@deserialize
|
@autoserialize
|
||||||
itemAccessConditionOptions: AccessesConditionOption[];
|
itemAccessConditionOptions: AccessesConditionOption[];
|
||||||
|
|
||||||
@deserialize
|
@autoserialize
|
||||||
bitstreamAccessConditionOptions: AccessesConditionOption[];
|
bitstreamAccessConditionOptions: AccessesConditionOption[];
|
||||||
|
|
||||||
_links: { self: HALLink };
|
_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_UPLOAD_TYPE = new ResourceType('submissionupload');
|
||||||
|
|
||||||
export const SUBMISSION_ACCESSES_TYPE = new ResourceType('submissionaccessoption');
|
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 { Subscription } from '../shared/subscriptions/models/subscription.model';
|
||||||
import { SupervisionOrderDataService } from './supervision-order/supervision-order-data.service';
|
import { SupervisionOrderDataService } from './supervision-order/supervision-order-data.service';
|
||||||
import { ItemRequest } from './shared/item-request.model';
|
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
|
* When not in production, endpoint responses can be mocked for testing purposes
|
||||||
@@ -371,6 +372,7 @@ export const models =
|
|||||||
IdentifierData,
|
IdentifierData,
|
||||||
Subscription,
|
Subscription,
|
||||||
ItemRequest,
|
ItemRequest,
|
||||||
|
BulkAccessConditionOptions
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
@@ -9,7 +9,7 @@ import {
|
|||||||
import { BulkAccessControlService } from './bulk-access-control.service';
|
import { BulkAccessControlService } from './bulk-access-control.service';
|
||||||
import { SelectableListService } from '../object-list/selectable-list/selectable-list.service';
|
import { SelectableListService } from '../object-list/selectable-list/selectable-list.service';
|
||||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
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 { CommonModule } from '@angular/common';
|
||||||
import { ListableObject } from '../object-collection/shared/listable-object.model';
|
import { ListableObject } from '../object-collection/shared/listable-object.model';
|
||||||
import { SharedModule } from '../shared.module';
|
import { SharedModule } from '../shared.module';
|
||||||
@@ -62,11 +62,10 @@ export class AccessControlFormContainerComponent<T extends DSpaceObject> impleme
|
|||||||
|
|
||||||
state = initialState;
|
state = initialState;
|
||||||
|
|
||||||
dropdownData$: Observable<BulkAccessConditionOptions> = this.bulkAccessConfigService.findByPropertyName('default').pipe(
|
dropdownData$: Observable<BulkAccessConditionOptions> = this.bulkAccessConfigService.findByName('default').pipe(
|
||||||
getFirstCompletedRemoteData(),
|
getFirstCompletedRemoteData(),
|
||||||
map((configRD: RemoteData<BulkAccessConditionOptions>) => configRD.hasSucceeded ? configRD.payload : null),
|
map((configRD: RemoteData<BulkAccessConditionOptions>) => configRD.hasSucceeded ? configRD.payload : null),
|
||||||
shareReplay(1),
|
shareReplay(1)
|
||||||
tap(x => console.log('options', x))
|
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user