mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-10 19:43:04 +00:00
58789: Deselect all schemas and set page to 1 after deleting schemas
This commit is contained in:
@@ -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 */
|
||||
|
||||
/**
|
||||
|
@@ -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();
|
||||
});
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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<MetadataSchema[]> {
|
||||
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<MetadataField[]> {
|
||||
return this.store.pipe(select(selectedMetadataFieldsSelector));
|
||||
}
|
||||
|
Reference in New Issue
Block a user