1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-25 08:09:44 +02:00

Project managers, board members, auto-update after reconnection, refactoring

This commit is contained in:
Maksim Eltyshev 2021-06-24 01:05:22 +05:00
parent 7956503a46
commit fe91b5241e
478 changed files with 21226 additions and 19495 deletions

View file

@ -19,16 +19,53 @@ export default class extends Model {
static reducer({ type, payload }, Attachment) {
switch (type) {
case ActionTypes.BOARD_FETCH_SUCCEEDED:
case ActionTypes.CARD_CREATE_SUCCEEDED:
case ActionTypes.CARD_CREATE_RECEIVED:
case ActionTypes.LOCATION_CHANGE_HANDLE:
case ActionTypes.CORE_INITIALIZE:
case ActionTypes.PROJECT_MANAGER_CREATE_HANDLE:
case ActionTypes.BOARD_MEMBERSHIP_CREATE_HANDLE:
if (payload.attachments) {
payload.attachments.forEach((attachment) => {
Attachment.upsert(attachment);
});
}
break;
case ActionTypes.SOCKET_RECONNECT_HANDLE:
if (payload.attachments) {
// FIXME: bug with oneToOne relation in Redux-ORM
const attachmentIds = payload.attachments.map((attachment) => attachment.id);
Attachment.all()
.toModelArray()
.forEach((attachmentModel) => {
if (!attachmentIds.includes(attachmentModel.id)) {
attachmentModel.delete();
}
});
payload.attachments.forEach((attachment) => {
Attachment.upsert(attachment);
});
} else {
Attachment.all().delete();
}
break;
case ActionTypes.BOARD_FETCH__SUCCESS:
payload.attachments.forEach((attachment) => {
Attachment.upsert(attachment);
});
break;
case ActionTypes.ATTACHMENT_CREATE:
case ActionTypes.ATTACHMENT_CREATE_RECEIVED:
case ActionTypes.ATTACHMENT_CREATE_HANDLE:
case ActionTypes.ATTACHMENT_UPDATE__SUCCESS:
case ActionTypes.ATTACHMENT_UPDATE_HANDLE:
Attachment.upsert(payload.attachment);
break;
case ActionTypes.ATTACHMENT_CREATE__SUCCESS:
Attachment.withId(payload.localId).delete();
Attachment.upsert(payload.attachment);
break;
@ -40,19 +77,16 @@ export default class extends Model {
Attachment.withId(payload.id).delete();
break;
case ActionTypes.ATTACHMENT_CREATE_SUCCEEDED:
Attachment.withId(payload.localId).delete();
Attachment.upsert(payload.attachment);
break;
case ActionTypes.ATTACHMENT_UPDATE_RECEIVED:
Attachment.withId(payload.attachment.id).update(payload.attachment);
break;
case ActionTypes.ATTACHMENT_DELETE_RECEIVED:
Attachment.withId(payload.attachment.id).delete();
case ActionTypes.ATTACHMENT_DELETE__SUCCESS:
case ActionTypes.ATTACHMENT_DELETE_HANDLE: {
const attachmentModel = Attachment.withId(payload.attachment.id);
if (attachmentModel) {
attachmentModel.delete();
}
break;
}
default:
}
}