import { unionize, ofType, UnionOf } from '~/common/unionize';
import { SnackbarKind } from '~/store/snackbar/snackbar-actions';
import { navigateTo } from '~/store/navigation/navigation-action';
-import { FilterBuilder } from "~/services/api/filter-builder";
import { loadDetailsPanel } from '~/store/details-panel/details-panel-action';
export const collectionPanelActions = unionize({
SET_COLLECTION: ofType<CollectionResource>(),
- SET_NUMBER_OF_COLLECTIONS_WITH_SAME_PDH: ofType<number>(),
LOAD_COLLECTION: ofType<{ uuid: string }>(),
LOAD_COLLECTION_SUCCESS: ofType<{ item: CollectionResource }>()
});
dispatch(collectionPanelActions.LOAD_COLLECTION({ uuid }));
dispatch(collectionPanelFilesAction.SET_COLLECTION_FILES({ files: createTree() }));
const collection = await services.collectionService.get(uuid);
- const collectionsByPDH = await services.collectionService.list({
- filters: new FilterBuilder()
- .addEqual('portableDataHash', collection.portableDataHash)
- .getFilters()
- });
- dispatch(collectionPanelActions.SET_NUMBER_OF_COLLECTIONS_WITH_SAME_PDH(collectionsByPDH.itemsAvailable));
dispatch(loadDetailsPanel(collection.uuid));
dispatch(collectionPanelActions.LOAD_COLLECTION_SUCCESS({ item: collection }));
dispatch(resourcesActions.SET_RESOURCES([collection]));
const uuid = item ? item.uuid : '';
try {
if (item) {
+ const d: Partial<CollectionResource> = {
+ properties: JSON.parse(JSON.stringify(item.properties))
+ };
+ d.properties[data.key] = data.value;
+ const updatedCollection = await services.collectionService.update(uuid, d);
item.properties[data.key] = data.value;
- const version = 'version';
- delete item[version];
- const updatedCollection = await services.collectionService.update(uuid, item);
dispatch(resourcesActions.SET_RESOURCES([updatedCollection]));
dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Tag has been successfully added.", hideDuration: 2000, kind: SnackbarKind.SUCCESS }));
return updatedCollection;
}
return;
} catch (e) {
+ dispatch(snackbarActions.OPEN_SNACKBAR({ message: e.errors[0], hideDuration: 2000, kind: SnackbarKind.ERROR }));
return;
}
};
await services.containerRequestService.get(uuid);
dispatch<any>(navigateTo(uuid));
} catch {
- dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'This process does not exists!', hideDuration: 2000, kind: SnackbarKind.ERROR }));
+ dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'This process does not exist!', hideDuration: 2000, kind: SnackbarKind.ERROR }));
}
};
const uuid = item ? item.uuid : '';
try {
if (item) {
+ const data: Partial<CollectionResource> = {
+ properties: JSON.parse(JSON.stringify(item.properties))
+ };
+ delete data.properties[key];
+ const updatedCollection = await services.collectionService.update(uuid, data);
delete item.properties[key];
- const updatedCollection = await services.collectionService.update(uuid, item);
dispatch(resourcesActions.SET_RESOURCES([updatedCollection]));
dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Tag has been successfully deleted.", hideDuration: 2000, kind: SnackbarKind.SUCCESS }));
return updatedCollection;
}
return;
} catch (e) {
+ dispatch(snackbarActions.OPEN_SNACKBAR({ message: e.errors[0], hideDuration: 2000, kind: SnackbarKind.ERROR }));
return;
}
};