fix: Prevent clearing linked tasks when soft deleting
This commit is contained in:
@@ -115,7 +115,7 @@ export default class extends BaseModel {
|
|||||||
isFetching: null,
|
isFetching: null,
|
||||||
});
|
});
|
||||||
|
|
||||||
boardModel.deleteRelated(payload.currentUserId);
|
boardModel.deleteRelated(payload.currentUserId, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -135,7 +135,7 @@ export default class extends BaseModel {
|
|||||||
.toModelArray()
|
.toModelArray()
|
||||||
.forEach((boardModel) => {
|
.forEach((boardModel) => {
|
||||||
if (!payload.boardIds.includes(boardModel.id)) {
|
if (!payload.boardIds.includes(boardModel.id)) {
|
||||||
boardModel.deleteWithRelated();
|
boardModel.deleteWithRelated(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -434,9 +434,9 @@ export default class extends BaseModel {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteListsWithRelated() {
|
deleteListsWithRelated(soft) {
|
||||||
this.lists.toModelArray().forEach((listModel) => {
|
this.lists.toModelArray().forEach((listModel) => {
|
||||||
listModel.deleteWithRelated();
|
listModel.deleteWithRelated(soft);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -445,7 +445,7 @@ export default class extends BaseModel {
|
|||||||
this.filterLabels.clear();
|
this.filterLabels.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteRelated(exceptMemberUserId) {
|
deleteRelated(exceptMemberUserId, soft) {
|
||||||
this.deleteClearable();
|
this.deleteClearable();
|
||||||
|
|
||||||
this.memberships.toModelArray().forEach((boardMembershipModel) => {
|
this.memberships.toModelArray().forEach((boardMembershipModel) => {
|
||||||
@@ -458,7 +458,7 @@ export default class extends BaseModel {
|
|||||||
labelModel.deleteWithRelated();
|
labelModel.deleteWithRelated();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.deleteListsWithRelated();
|
this.deleteListsWithRelated(soft);
|
||||||
this.notificationServices.delete();
|
this.notificationServices.delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -467,8 +467,8 @@ export default class extends BaseModel {
|
|||||||
this.delete();
|
this.delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteWithRelated() {
|
deleteWithRelated(soft) {
|
||||||
this.deleteRelated();
|
this.deleteRelated(undefined, soft);
|
||||||
this.delete();
|
this.delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-11
@@ -273,7 +273,7 @@ export default class extends BaseModel {
|
|||||||
const cardModel = Card.withId(card.id);
|
const cardModel = Card.withId(card.id);
|
||||||
|
|
||||||
if (cardModel) {
|
if (cardModel) {
|
||||||
cardModel.deleteWithRelated();
|
cardModel.deleteWithRelated(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Card.upsert(card);
|
Card.upsert(card);
|
||||||
@@ -346,7 +346,7 @@ export default class extends BaseModel {
|
|||||||
|
|
||||||
if (payload.card.boardId === null || payload.isFetched) {
|
if (payload.card.boardId === null || payload.isFetched) {
|
||||||
if (cardModel) {
|
if (cardModel) {
|
||||||
cardModel.deleteWithRelated();
|
cardModel.deleteWithRelated(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -388,7 +388,7 @@ export default class extends BaseModel {
|
|||||||
const cardModel = Card.withId(payload.card.id);
|
const cardModel = Card.withId(payload.card.id);
|
||||||
|
|
||||||
if (cardModel) {
|
if (cardModel) {
|
||||||
cardModel.deleteWithRelated();
|
cardModel.deleteWithRelated(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Card.upsert(payload.card);
|
Card.upsert(payload.card);
|
||||||
@@ -411,7 +411,7 @@ export default class extends BaseModel {
|
|||||||
const cardModel = Card.withId(payload.id);
|
const cardModel = Card.withId(payload.id);
|
||||||
|
|
||||||
if (cardModel) {
|
if (cardModel) {
|
||||||
cardModel.deleteWithRelated();
|
cardModel.deleteWithRelated(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (payload.card) {
|
if (payload.card) {
|
||||||
@@ -756,18 +756,20 @@ export default class extends BaseModel {
|
|||||||
this.labels.clear();
|
this.labels.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteRelated() {
|
deleteRelated(soft = false) {
|
||||||
this.deleteClearable();
|
this.deleteClearable();
|
||||||
|
|
||||||
this.taskLists.toModelArray().forEach((taskListModel) => {
|
this.taskLists.toModelArray().forEach((taskListModel) => {
|
||||||
taskListModel.deleteWithRelated();
|
taskListModel.deleteWithRelated();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.linkedTasks.toModelArray().forEach((taskModel) => {
|
if (!soft) {
|
||||||
taskModel.update({
|
this.linkedTasks.toModelArray().forEach((taskModel) => {
|
||||||
linkedCardId: null,
|
taskModel.update({
|
||||||
|
linkedCardId: null,
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
|
||||||
this.attachments.delete();
|
this.attachments.delete();
|
||||||
|
|
||||||
@@ -784,8 +786,8 @@ export default class extends BaseModel {
|
|||||||
this.delete();
|
this.delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteWithRelated() {
|
deleteWithRelated(soft) {
|
||||||
this.deleteRelated();
|
this.deleteRelated(soft);
|
||||||
this.delete();
|
this.delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ export default class extends BaseModel {
|
|||||||
const listModel = List.withId(payload.id);
|
const listModel = List.withId(payload.id);
|
||||||
|
|
||||||
if (payload.data.boardId && payload.data.boardId !== listModel.boardId) {
|
if (payload.data.boardId && payload.data.boardId !== listModel.boardId) {
|
||||||
listModel.deleteWithRelated();
|
listModel.deleteWithRelated(true);
|
||||||
} else {
|
} else {
|
||||||
let isClosed;
|
let isClosed;
|
||||||
if (payload.data.type) {
|
if (payload.data.type) {
|
||||||
@@ -171,7 +171,7 @@ export default class extends BaseModel {
|
|||||||
|
|
||||||
if (listModel) {
|
if (listModel) {
|
||||||
if (payload.list.boardId === null || payload.isFetched) {
|
if (payload.list.boardId === null || payload.isFetched) {
|
||||||
listModel.deleteWithRelated();
|
listModel.deleteWithRelated(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (payload.list.boardId !== null) {
|
if (payload.list.boardId !== null) {
|
||||||
@@ -435,14 +435,14 @@ export default class extends BaseModel {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteRelated() {
|
deleteRelated(soft) {
|
||||||
this.cards.toModelArray().forEach((cardModel) => {
|
this.cards.toModelArray().forEach((cardModel) => {
|
||||||
cardModel.deleteWithRelated();
|
cardModel.deleteWithRelated(soft);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteWithRelated() {
|
deleteWithRelated(soft) {
|
||||||
this.deleteRelated();
|
this.deleteRelated(soft);
|
||||||
this.delete();
|
this.delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ export default class extends BaseModel {
|
|||||||
.toModelArray()
|
.toModelArray()
|
||||||
.forEach((projectModel) => {
|
.forEach((projectModel) => {
|
||||||
if (!payload.projectIds.includes(projectModel.id)) {
|
if (!payload.projectIds.includes(projectModel.id)) {
|
||||||
projectModel.deleteWithRelated();
|
projectModel.deleteWithRelated(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -97,11 +97,11 @@ export default class extends BaseModel {
|
|||||||
if (payload.isAvailable) {
|
if (payload.isAvailable) {
|
||||||
projectModel.boards.toModelArray().forEach((boardModel) => {
|
projectModel.boards.toModelArray().forEach((boardModel) => {
|
||||||
if (!payload.boardIds.includes(boardModel.id)) {
|
if (!payload.boardIds.includes(boardModel.id)) {
|
||||||
boardModel.deleteWithRelated();
|
boardModel.deleteWithRelated(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
projectModel.deleteWithRelated();
|
projectModel.deleteWithRelated(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,11 +134,11 @@ export default class extends BaseModel {
|
|||||||
boardModel.notificationServices.delete();
|
boardModel.notificationServices.delete();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
boardModel.deleteWithRelated();
|
boardModel.deleteWithRelated(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
projectModel.deleteWithRelated();
|
projectModel.deleteWithRelated(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,7 +153,7 @@ export default class extends BaseModel {
|
|||||||
const projectModel = Project.withId(payload.boardMembership.projectId);
|
const projectModel = Project.withId(payload.boardMembership.projectId);
|
||||||
|
|
||||||
if (projectModel) {
|
if (projectModel) {
|
||||||
projectModel.deleteWithRelated();
|
projectModel.deleteWithRelated(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -231,7 +231,7 @@ export default class extends BaseModel {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteRelated() {
|
deleteRelated(soft) {
|
||||||
this.managers.delete();
|
this.managers.delete();
|
||||||
|
|
||||||
this.backgroundImages.toModelArray().forEach((backgroundImageModel) => {
|
this.backgroundImages.toModelArray().forEach((backgroundImageModel) => {
|
||||||
@@ -243,12 +243,12 @@ export default class extends BaseModel {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.boards.toModelArray().forEach((boardModel) => {
|
this.boards.toModelArray().forEach((boardModel) => {
|
||||||
boardModel.deleteWithRelated();
|
boardModel.deleteWithRelated(soft);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteWithRelated() {
|
deleteWithRelated(soft) {
|
||||||
this.deleteRelated();
|
this.deleteRelated(soft);
|
||||||
this.delete();
|
this.delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user