1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-18 20:59: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

@ -18,16 +18,42 @@ export default class extends Model {
static reducer({ type, payload }, List) {
switch (type) {
case ActionTypes.BOARD_CREATE_SUCCEEDED:
case ActionTypes.BOARD_CREATE_RECEIVED:
case ActionTypes.BOARD_FETCH_SUCCEEDED:
case ActionTypes.LOCATION_CHANGE_HANDLE:
case ActionTypes.CORE_INITIALIZE:
case ActionTypes.PROJECT_MANAGER_CREATE_HANDLE:
case ActionTypes.BOARD_MEMBERSHIP_CREATE_HANDLE:
if (payload.lists) {
payload.lists.forEach((list) => {
List.upsert(list);
});
}
break;
case ActionTypes.SOCKET_RECONNECT_HANDLE:
List.all().delete();
if (payload.lists) {
payload.lists.forEach((list) => {
List.upsert(list);
});
}
break;
case ActionTypes.BOARD_FETCH__SUCCESS:
payload.lists.forEach((list) => {
List.upsert(list);
});
break;
case ActionTypes.LIST_CREATE:
case ActionTypes.LIST_CREATE_RECEIVED:
case ActionTypes.LIST_CREATE_HANDLE:
case ActionTypes.LIST_UPDATE__SUCCESS:
case ActionTypes.LIST_UPDATE_HANDLE:
List.upsert(payload.list);
break;
case ActionTypes.LIST_CREATE__SUCCESS:
List.withId(payload.localId).delete();
List.upsert(payload.list);
break;
@ -39,19 +65,16 @@ export default class extends Model {
List.withId(payload.id).deleteWithRelated();
break;
case ActionTypes.LIST_CREATE_SUCCEEDED:
List.withId(payload.localId).delete();
List.upsert(payload.list);
break;
case ActionTypes.LIST_UPDATE_RECEIVED:
List.withId(payload.list.id).update(payload.list);
break;
case ActionTypes.LIST_DELETE_RECEIVED:
List.withId(payload.list.id).deleteWithRelated();
case ActionTypes.LIST_DELETE__SUCCESS:
case ActionTypes.LIST_DELETE_HANDLE: {
const listModel = List.withId(payload.list.id);
if (listModel) {
listModel.deleteWithRelated();
}
break;
}
default:
}
}
@ -85,11 +108,14 @@ export default class extends Model {
return cardModels;
}
deleteWithRelated() {
deleteRelated() {
this.cards.toModelArray().forEach((cardModel) => {
cardModel.deleteWithRelated();
});
}
deleteWithRelated() {
this.deleteRelated();
this.delete();
}
}