mirror of
https://github.com/plankanban/planka.git
synced 2025-12-25 17:25:01 +03:00
feat: Add ability to move lists between boards (#1208)
This commit is contained in:
@@ -58,6 +58,7 @@ export default class extends BaseModel {
|
||||
case ActionTypes.PROJECT_UPDATE_HANDLE:
|
||||
case ActionTypes.PROJECT_MANAGER_CREATE_HANDLE:
|
||||
case ActionTypes.BOARD_MEMBERSHIP_CREATE_HANDLE:
|
||||
case ActionTypes.LIST_UPDATE_HANDLE:
|
||||
case ActionTypes.CARD_UPDATE_HANDLE:
|
||||
if (payload.attachments) {
|
||||
payload.attachments.forEach((attachment) => {
|
||||
|
||||
@@ -88,6 +88,7 @@ export default class extends BaseModel {
|
||||
case ActionTypes.PROJECT_UPDATE_HANDLE:
|
||||
case ActionTypes.PROJECT_MANAGER_CREATE_HANDLE:
|
||||
case ActionTypes.BOARD_MEMBERSHIP_CREATE_HANDLE:
|
||||
case ActionTypes.LIST_UPDATE_HANDLE:
|
||||
if (payload.cards) {
|
||||
payload.cards.forEach((card) => {
|
||||
Card.upsert(card);
|
||||
|
||||
@@ -36,6 +36,7 @@ export default class extends BaseModel {
|
||||
case ActionTypes.PROJECT_UPDATE_HANDLE:
|
||||
case ActionTypes.PROJECT_MANAGER_CREATE_HANDLE:
|
||||
case ActionTypes.BOARD_MEMBERSHIP_CREATE_HANDLE:
|
||||
case ActionTypes.LIST_UPDATE_HANDLE:
|
||||
case ActionTypes.CARD_UPDATE_HANDLE:
|
||||
if (payload.customFields) {
|
||||
payload.customFields.forEach((customField) => {
|
||||
|
||||
@@ -40,6 +40,7 @@ export default class extends BaseModel {
|
||||
case ActionTypes.PROJECT_UPDATE_HANDLE:
|
||||
case ActionTypes.PROJECT_MANAGER_CREATE_HANDLE:
|
||||
case ActionTypes.BOARD_MEMBERSHIP_CREATE_HANDLE:
|
||||
case ActionTypes.LIST_UPDATE_HANDLE:
|
||||
case ActionTypes.CARD_UPDATE_HANDLE:
|
||||
if (payload.customFieldGroups) {
|
||||
payload.customFieldGroups.forEach((customFieldGroup) => {
|
||||
|
||||
@@ -51,6 +51,7 @@ export default class extends BaseModel {
|
||||
case ActionTypes.PROJECT_UPDATE_HANDLE:
|
||||
case ActionTypes.PROJECT_MANAGER_CREATE_HANDLE:
|
||||
case ActionTypes.BOARD_MEMBERSHIP_CREATE_HANDLE:
|
||||
case ActionTypes.LIST_UPDATE_HANDLE:
|
||||
case ActionTypes.CARD_UPDATE_HANDLE:
|
||||
if (payload.customFieldValues) {
|
||||
payload.customFieldValues.forEach((customFieldValue) => {
|
||||
|
||||
@@ -135,47 +135,21 @@ export default class extends BaseModel {
|
||||
case ActionTypes.LIST_UPDATE: {
|
||||
const listModel = List.withId(payload.id);
|
||||
|
||||
let isClosed;
|
||||
if (payload.data.type) {
|
||||
const changedTypeState = getChangedTypeState(listModel, payload.data);
|
||||
|
||||
if (changedTypeState === ListTypeStates.OPENED) {
|
||||
isClosed = false;
|
||||
} else if (changedTypeState === ListTypeStates.CLOSED) {
|
||||
isClosed = true;
|
||||
}
|
||||
}
|
||||
|
||||
listModel.update(payload.data);
|
||||
|
||||
if (isClosed !== undefined) {
|
||||
listModel.cards.toModelArray().forEach((cardModel) => {
|
||||
cardModel.update({
|
||||
isClosed,
|
||||
});
|
||||
|
||||
cardModel.linkedTasks.update({
|
||||
isCompleted: isClosed,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case ActionTypes.LIST_UPDATE_HANDLE: {
|
||||
const listModel = List.withId(payload.list.id);
|
||||
|
||||
if (listModel) {
|
||||
const changedTypeState = getChangedTypeState(listModel, payload.list);
|
||||
|
||||
if (payload.data.boardId && payload.data.boardId !== listModel.boardId) {
|
||||
listModel.deleteWithRelated();
|
||||
} else {
|
||||
let isClosed;
|
||||
if (changedTypeState === ListTypeStates.OPENED) {
|
||||
isClosed = false;
|
||||
} else if (changedTypeState === ListTypeStates.CLOSED) {
|
||||
isClosed = true;
|
||||
if (payload.data.type) {
|
||||
const changedTypeState = getChangedTypeState(listModel, payload.data);
|
||||
|
||||
if (changedTypeState === ListTypeStates.OPENED) {
|
||||
isClosed = false;
|
||||
} else if (changedTypeState === ListTypeStates.CLOSED) {
|
||||
isClosed = true;
|
||||
}
|
||||
}
|
||||
|
||||
listModel.update(prepareList(payload.list));
|
||||
listModel.update(payload.data);
|
||||
|
||||
if (isClosed !== undefined) {
|
||||
listModel.cards.toModelArray().forEach((cardModel) => {
|
||||
@@ -188,7 +162,44 @@ export default class extends BaseModel {
|
||||
});
|
||||
});
|
||||
}
|
||||
} else {
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
// TODO: refactor
|
||||
case ActionTypes.LIST_UPDATE_HANDLE: {
|
||||
const listModel = List.withId(payload.list.id);
|
||||
|
||||
if (listModel) {
|
||||
if (payload.list.boardId === null || payload.isFetched) {
|
||||
listModel.deleteWithRelated();
|
||||
}
|
||||
|
||||
if (payload.list.boardId !== null) {
|
||||
const changedTypeState = getChangedTypeState(listModel, payload.list);
|
||||
|
||||
let isClosed;
|
||||
if (changedTypeState === ListTypeStates.OPENED) {
|
||||
isClosed = false;
|
||||
} else if (changedTypeState === ListTypeStates.CLOSED) {
|
||||
isClosed = true;
|
||||
}
|
||||
|
||||
listModel.update(prepareList(payload.list));
|
||||
|
||||
if (isClosed !== undefined) {
|
||||
listModel.cards.toModelArray().forEach((cardModel) => {
|
||||
cardModel.update({
|
||||
isClosed,
|
||||
});
|
||||
|
||||
cardModel.linkedTasks.update({
|
||||
isCompleted: isClosed,
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
} else if (payload.list.boardId !== null) {
|
||||
List.upsert(prepareList(payload.list));
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ export default class extends BaseModel {
|
||||
case ActionTypes.PROJECT_UPDATE_HANDLE:
|
||||
case ActionTypes.PROJECT_MANAGER_CREATE_HANDLE:
|
||||
case ActionTypes.BOARD_MEMBERSHIP_CREATE_HANDLE:
|
||||
case ActionTypes.LIST_UPDATE_HANDLE:
|
||||
case ActionTypes.CARD_UPDATE_HANDLE:
|
||||
if (payload.tasks) {
|
||||
payload.tasks.forEach((task) => {
|
||||
|
||||
@@ -32,6 +32,7 @@ export default class extends BaseModel {
|
||||
case ActionTypes.PROJECT_UPDATE_HANDLE:
|
||||
case ActionTypes.PROJECT_MANAGER_CREATE_HANDLE:
|
||||
case ActionTypes.BOARD_MEMBERSHIP_CREATE_HANDLE:
|
||||
case ActionTypes.LIST_UPDATE_HANDLE:
|
||||
case ActionTypes.CARD_UPDATE_HANDLE:
|
||||
if (payload.taskLists) {
|
||||
payload.taskLists.forEach((taskList) => {
|
||||
|
||||
@@ -93,6 +93,7 @@ export default class extends BaseModel {
|
||||
case ActionTypes.LOCATION_CHANGE_HANDLE:
|
||||
case ActionTypes.PROJECT_UPDATE_HANDLE:
|
||||
case ActionTypes.BOARD_MEMBERSHIP_CREATE_HANDLE:
|
||||
case ActionTypes.LIST_UPDATE_HANDLE:
|
||||
case ActionTypes.CARD_UPDATE_HANDLE:
|
||||
if (payload.users) {
|
||||
payload.users.forEach((user) => {
|
||||
|
||||
Reference in New Issue
Block a user