58789: Deselect all schemas and set page to 1 after deleting schemas

This commit is contained in:
Kristof De Langhe
2019-01-22 15:49:09 +01:00
parent eb198383fe
commit 09eb01c545
4 changed files with 37 additions and 3 deletions

View File

@@ -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 */
/**

View 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();
});
}

View File

@@ -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;
}

View File

@@ -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));
}