feat: associated task status with task list not space
All checks were successful
Build and Push App Image / build-and-push (push) Successful in 1m52s
All checks were successful
Build and Push App Image / build-and-push (push) Successful in 1m52s
This commit is contained in:
@@ -202,7 +202,6 @@
|
||||
:tasks="tasks"
|
||||
:task-statuses="taskStatuses"
|
||||
:selected-task-list="selectedTaskList"
|
||||
:can-delete-tasks="canDeleteTasks"
|
||||
:is-search-route="isSearchRoute"
|
||||
:search-items="searchItems"
|
||||
:search-query="searchQuery"
|
||||
@@ -220,12 +219,8 @@
|
||||
:is-loading-more-main-notes="spaceStore.notesLoading"
|
||||
@select-task="openTaskDetail"
|
||||
@filter-change="applyTaskFilters"
|
||||
@reorder-status="reorderTaskStatuses"
|
||||
@create-status="createTaskStatus"
|
||||
@rename-status="renameTaskStatus"
|
||||
@delete-status="requestDeleteTaskStatus"
|
||||
@update-task-status="updateTaskStatusFromBoard"
|
||||
@delete-task-list="requestRemoveTaskList"
|
||||
@edit-task-list="showEditTaskListModal = true"
|
||||
@select-note="selectSearchResultNote"
|
||||
@select-task-list="selectTaskList"
|
||||
@page-change="setSearchPage"
|
||||
@@ -319,6 +314,21 @@
|
||||
<div v-if="showUnlockModal" class="modal-backdrop fade show"></div>
|
||||
</teleport>
|
||||
|
||||
<EditTaskListModal
|
||||
v-if="showEditTaskListModal && selectedTaskList"
|
||||
:task-list="selectedTaskList"
|
||||
:statuses="taskStatuses"
|
||||
:category-options="categoryOptions"
|
||||
:can-delete-task-list="canDeleteTasks"
|
||||
@close="showEditTaskListModal = false"
|
||||
@update-task-list="updateTaskListFromModal"
|
||||
@reorder-status="reorderTaskStatuses"
|
||||
@create-status="createTaskStatus"
|
||||
@rename-status="renameTaskStatus"
|
||||
@delete-status="requestDeleteTaskStatus"
|
||||
@delete-task-list="requestRemoveTaskList"
|
||||
/>
|
||||
|
||||
<ConfirmActionModal
|
||||
:visible="showTaskDeleteConfirmModal"
|
||||
:title="taskDeleteConfirmTitle"
|
||||
@@ -339,6 +349,7 @@ import CategoryTree from "../components/CategoryTree.vue";
|
||||
import AppWorkspaceContent from "../components/app/AppWorkspaceContent.vue";
|
||||
import AppModalHost from "../components/app/AppModalHost.vue";
|
||||
import ConfirmActionModal from "../components/ConfirmActionModal.vue";
|
||||
import EditTaskListModal from "../components/EditTaskListModal.vue";
|
||||
import { sortNotesByPriority } from "../utils/noteSort";
|
||||
import apiClient from "../services/apiClient";
|
||||
|
||||
@@ -354,6 +365,7 @@ const showCreateSpaceModal = ref(false);
|
||||
const showCreateCategoryModal = ref(false);
|
||||
const showCreateNoteModal = ref(false);
|
||||
const showCreateTaskListModal = ref(false);
|
||||
const showEditTaskListModal = ref(false);
|
||||
const showSidebar = ref(false);
|
||||
const navbarRef = ref(null);
|
||||
const navbarHeight = ref(56);
|
||||
@@ -819,6 +831,7 @@ watch(
|
||||
isEditingNote.value = false;
|
||||
selectedCategory.value = null;
|
||||
selectedTaskList.value = taskLists.value.find((list) => list.id === taskListId) || null;
|
||||
await spaceStore.fetchTaskStatuses(currentSpace.value?.id, taskListId);
|
||||
await applyTaskFilters({ taskListId });
|
||||
return;
|
||||
}
|
||||
@@ -1056,6 +1069,7 @@ const selectTaskList = async (taskList) => {
|
||||
showSidebar.value = false;
|
||||
if (currentSpace.value?.id && taskList?.id) {
|
||||
await router.push(dashboardTaskRoute(currentSpace.value.id, taskList.id));
|
||||
await spaceStore.fetchTaskStatuses(currentSpace.value.id, taskList.id);
|
||||
}
|
||||
|
||||
await applyTaskFilters({
|
||||
@@ -1253,22 +1267,22 @@ const createSubtask = (parentTask) => {
|
||||
};
|
||||
|
||||
const createTaskStatus = async (payload) => {
|
||||
if (!currentSpace.value?.id) {
|
||||
if (!currentSpace.value?.id || !selectedTaskList.value?.id) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await spaceStore.createTaskStatus(currentSpace.value.id, payload);
|
||||
await spaceStore.createTaskStatus(currentSpace.value.id, selectedTaskList.value.id, payload);
|
||||
} catch (error) {
|
||||
alert(error?.response?.data || "Unable to create status.");
|
||||
}
|
||||
};
|
||||
|
||||
const renameTaskStatus = async (status) => {
|
||||
if (!currentSpace.value?.id || !status?.id) {
|
||||
if (!currentSpace.value?.id || !selectedTaskList.value?.id || !status?.id) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await spaceStore.updateTaskStatus(currentSpace.value.id, status.id, {
|
||||
await spaceStore.updateTaskStatus(currentSpace.value.id, selectedTaskList.value.id, status.id, {
|
||||
name: status.name,
|
||||
color: status.color,
|
||||
});
|
||||
@@ -1300,12 +1314,12 @@ const requestDeleteTaskStatus = (status) => {
|
||||
};
|
||||
|
||||
const deleteTaskStatus = async (status) => {
|
||||
if (!currentSpace.value?.id || !status?.id) {
|
||||
if (!currentSpace.value?.id || !selectedTaskList.value?.id || !status?.id) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await spaceStore.deleteTaskStatus(currentSpace.value.id, status.id);
|
||||
await spaceStore.deleteTaskStatus(currentSpace.value.id, selectedTaskList.value.id, status.id);
|
||||
} catch (error) {
|
||||
alert(error?.response?.data || "Unable to delete status.");
|
||||
throw error;
|
||||
@@ -1313,11 +1327,11 @@ const deleteTaskStatus = async (status) => {
|
||||
};
|
||||
|
||||
const reorderTaskStatuses = async (orderedIds) => {
|
||||
if (!currentSpace.value?.id) {
|
||||
if (!currentSpace.value?.id || !selectedTaskList.value?.id) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await spaceStore.reorderTaskStatuses(currentSpace.value.id, orderedIds);
|
||||
await spaceStore.reorderTaskStatuses(currentSpace.value.id, selectedTaskList.value.id, orderedIds);
|
||||
} catch (error) {
|
||||
alert(error?.response?.data || "Unable to reorder statuses.");
|
||||
}
|
||||
@@ -1390,10 +1404,25 @@ const createTaskList = async (taskListData) => {
|
||||
}
|
||||
};
|
||||
|
||||
const updateTaskListFromModal = async (payload) => {
|
||||
if (!currentSpace.value?.id || !selectedTaskList.value?.id) return;
|
||||
try {
|
||||
await spaceStore.updateTaskList(currentSpace.value.id, selectedTaskList.value.id, {
|
||||
name: payload.name,
|
||||
description: payload.description,
|
||||
category_id: payload.category_id,
|
||||
});
|
||||
selectedTaskList.value = { ...selectedTaskList.value, name: payload.name, category_id: payload.category_id };
|
||||
} catch (error) {
|
||||
alert(error?.response?.data || "Unable to update task list.");
|
||||
}
|
||||
};
|
||||
|
||||
const requestRemoveTaskList = (taskList) => {
|
||||
if (!currentSpace.value?.id || !taskList?.id || !canDeleteTasks.value) {
|
||||
return;
|
||||
}
|
||||
showEditTaskListModal.value = false;
|
||||
taskDeleteIntent.value = {
|
||||
type: "task-list",
|
||||
payload: taskList,
|
||||
|
||||
Reference in New Issue
Block a user