diff --git a/src/app/+admin/admin-registries/metadata-registry/metadata-registry.actions.ts b/src/app/+admin/admin-registries/metadata-registry/metadata-registry.actions.ts index 55fcd61644..92d4a7a72a 100644 --- a/src/app/+admin/admin-registries/metadata-registry/metadata-registry.actions.ts +++ b/src/app/+admin/admin-registries/metadata-registry/metadata-registry.actions.ts @@ -17,11 +17,13 @@ export const MetadataRegistryActionTypes = { CANCEL_EDIT_SCHEMA: type('dspace/metadata-registry/CANCEL_SCHEMA'), SELECT_SCHEMA: type('dspace/metadata-registry/SELECT_SCHEMA'), DESELECT_SCHEMA: type('dspace/metadata-registry/DESELECT_SCHEMA'), + DESELECT_ALL_SCHEMA: type('dspace/metadata-registry/DESELECT_ALL_SCHEMA'), EDIT_FIELD: type('dspace/metadata-registry/EDIT_FIELD'), CANCEL_EDIT_FIELD: type('dspace/metadata-registry/CANCEL_FIELD'), SELECT_FIELD: type('dspace/metadata-registry/SELECT_FIELD'), - DESELECT_FIELD: type('dspace/metadata-registry/DESELEC_FIELDT') + DESELECT_FIELD: type('dspace/metadata-registry/DESELECT_FIELD'), + DESELECT_ALL_FIELD: type('dspace/metadata-registry/DESELECT_ALL_FIELD') }; /* tslint:disable:max-classes-per-file */ @@ -65,6 +67,10 @@ export class MetadataRegistryDeselectSchemaAction implements Action { } } +export class MetadataRegistryDeselectAllSchemaAction implements Action { + type = MetadataRegistryActionTypes.DESELECT_ALL_SCHEMA; +} + /** * Used to collapse the sidebar */ @@ -105,6 +111,10 @@ export class MetadataRegistryDeselectFieldAction implements Action { } } +export class MetadataRegistryDeselectAllFieldAction implements Action { + type = MetadataRegistryActionTypes.DESELECT_ALL_FIELD; +} + /* tslint:enable:max-classes-per-file */ /** diff --git a/src/app/+admin/admin-registries/metadata-registry/metadata-registry.component.ts b/src/app/+admin/admin-registries/metadata-registry/metadata-registry.component.ts index ef5bec6262..2b1ea9eba8 100644 --- a/src/app/+admin/admin-registries/metadata-registry/metadata-registry.component.ts +++ b/src/app/+admin/admin-registries/metadata-registry/metadata-registry.component.ts @@ -10,6 +10,7 @@ import { hasValue } from '../../../shared/empty.util'; import { RestResponse } from '../../../core/cache/response.models'; import { zip } from 'rxjs/internal/observable/zip'; import { NotificationsService } from '../../../shared/notifications/notifications.service'; +import { Route, Router } from '@angular/router'; @Component({ selector: 'ds-metadata-registry', @@ -26,7 +27,8 @@ export class MetadataRegistryComponent { }); constructor(private registryService: RegistryService, - private notificationsService: NotificationsService) { + private notificationsService: NotificationsService, + private router: Router) { this.updateSchemas(); } @@ -94,6 +96,8 @@ export class MetadataRegistryComponent { if (failedResponses.length > 0) { this.notificationsService.error('Error', `Failed to delete ${failedResponses.length} metadata schemas`); } + this.registryService.deselectAllMetadataSchema(); + this.router.navigate([], { queryParams: { page: 1 }, queryParamsHandling: 'merge'}); this.forceUpdateSchemas(); }); } diff --git a/src/app/+admin/admin-registries/metadata-registry/metadata-registry.reducers.ts b/src/app/+admin/admin-registries/metadata-registry/metadata-registry.reducers.ts index 28f8ba025b..3c68157a3e 100644 --- a/src/app/+admin/admin-registries/metadata-registry/metadata-registry.reducers.ts +++ b/src/app/+admin/admin-registries/metadata-registry/metadata-registry.reducers.ts @@ -62,6 +62,12 @@ export function metadataRegistryReducer(state = initialState, action: MetadataRe }); } + case MetadataRegistryActionTypes.DESELECT_ALL_SCHEMA: { + return Object.assign({}, state, { + selectedSchemas: [] + }); + } + case MetadataRegistryActionTypes.EDIT_FIELD: { return Object.assign({}, state, { editField: (action as MetadataRegistryEditFieldAction).field @@ -88,6 +94,12 @@ export function metadataRegistryReducer(state = initialState, action: MetadataRe }); } + case MetadataRegistryActionTypes.DESELECT_ALL_FIELD: { + return Object.assign({}, state, { + selectedFields: [] + }); + } + default: return state; } diff --git a/src/app/core/registry/registry.service.ts b/src/app/core/registry/registry.service.ts index f80275cb1e..4bd59c3714 100644 --- a/src/app/core/registry/registry.service.ts +++ b/src/app/core/registry/registry.service.ts @@ -39,7 +39,7 @@ import { AppState } from '../../app.reducer'; import { MetadataRegistryState } from '../../+admin/admin-registries/metadata-registry/metadata-registry.reducers'; import { MetadataRegistryCancelFieldAction, - MetadataRegistryCancelSchemaAction, + MetadataRegistryCancelSchemaAction, MetadataRegistryDeselectAllFieldAction, MetadataRegistryDeselectAllSchemaAction, MetadataRegistryDeselectFieldAction, MetadataRegistryDeselectSchemaAction, MetadataRegistryEditFieldAction, @@ -276,6 +276,10 @@ export class RegistryService { this.store.dispatch(new MetadataRegistryDeselectSchemaAction(schema)) } + public deselectAllMetadataSchema() { + this.store.dispatch(new MetadataRegistryDeselectAllSchemaAction()) + } + public getSelectedMetadataSchemas(): Observable { return this.store.pipe(select(selectedMetadataSchemasSelector)); } @@ -300,6 +304,10 @@ export class RegistryService { this.store.dispatch(new MetadataRegistryDeselectFieldAction(field)) } + public deselectAllMetadataField(field: MetadataField) { + this.store.dispatch(new MetadataRegistryDeselectAllFieldAction()) + } + public getSelectedMetadataFields(): Observable { return this.store.pipe(select(selectedMetadataFieldsSelector)); }