mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-29 02:52:27 +08:00
feat(tasks): mark tasks as completed
This commit is contained in:
parent
d4ef15212f
commit
7c0b43db85
@ -75,6 +75,7 @@ export default class BTask extends AbstractBeccaEntity<BOption> {
|
|||||||
parentNoteId: this.parentNoteId,
|
parentNoteId: this.parentNoteId,
|
||||||
title: this.title,
|
title: this.title,
|
||||||
dueDate: this.dueDate,
|
dueDate: this.dueDate,
|
||||||
|
isDone: this.isDone,
|
||||||
isDeleted: this.isDeleted,
|
isDeleted: this.isDeleted,
|
||||||
utcDateModified: this.utcDateModified
|
utcDateModified: this.utcDateModified
|
||||||
};
|
};
|
||||||
|
@ -5,3 +5,7 @@ export async function createNewTask(title: string) {
|
|||||||
title
|
title
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function toggleTaskDone(taskId: string) {
|
||||||
|
await server.post(`tasks/${taskId}/toggle`);
|
||||||
|
}
|
||||||
|
@ -48,12 +48,19 @@ const TPL = `
|
|||||||
border-bottom: 1px solid var(--main-background-color);
|
border-bottom: 1px solid var(--main-background-color);
|
||||||
padding: 0.5em 1em;
|
padding: 0.5em 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.note-detail-task-list .task-container li .check {
|
||||||
|
margin-right: 0.5em;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
function buildTask(task: FTask) {
|
function buildTask(task: FTask) {
|
||||||
return `<li class="task">${task.title}</li>`;
|
return `\
|
||||||
|
<li class="task">
|
||||||
|
<input type="checkbox" class="check" data-task-id="${task.taskId}" /> ${task.title}
|
||||||
|
</li>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class TaskListWidget extends TypeWidget {
|
export default class TaskListWidget extends TypeWidget {
|
||||||
@ -73,6 +80,17 @@ export default class TaskListWidget extends TypeWidget {
|
|||||||
this.#createNewTask(String(this.$addNewTask.val()));
|
this.#createNewTask(String(this.$addNewTask.val()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.$taskContainer.on("change", "input", (e) => {
|
||||||
|
const target = e.target as HTMLInputElement;
|
||||||
|
const taskId = target.dataset.taskId;
|
||||||
|
|
||||||
|
if (!taskId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
taskService.toggleTaskDone(taskId);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async #createNewTask(title: string) {
|
async #createNewTask(title: string) {
|
||||||
|
@ -8,3 +8,12 @@ export function getTasks() {
|
|||||||
export function createNewTask(req: Request) {
|
export function createNewTask(req: Request) {
|
||||||
return tasksService.createNewTask(req.body);
|
return tasksService.createNewTask(req.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function toggleTaskDone(req: Request) {
|
||||||
|
const { taskId } = req.params;
|
||||||
|
if (!taskId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return tasksService.toggleTaskDone(taskId);
|
||||||
|
}
|
||||||
|
@ -282,6 +282,7 @@ function register(app: express.Application) {
|
|||||||
|
|
||||||
apiRoute(GET, "/api/tasks", tasksRoute.getTasks);
|
apiRoute(GET, "/api/tasks", tasksRoute.getTasks);
|
||||||
apiRoute(PST, "/api/tasks", tasksRoute.createNewTask);
|
apiRoute(PST, "/api/tasks", tasksRoute.createNewTask);
|
||||||
|
apiRoute(PST, "/api/tasks/:taskId/toggle", tasksRoute.toggleTaskDone);
|
||||||
|
|
||||||
// in case of local electron, local calls are allowed unauthenticated, for server they need auth
|
// in case of local electron, local calls are allowed unauthenticated, for server they need auth
|
||||||
const clipperMiddleware = isElectron ? [] : [auth.checkEtapiToken];
|
const clipperMiddleware = isElectron ? [] : [auth.checkEtapiToken];
|
||||||
|
@ -19,3 +19,9 @@ export function createNewTask(params: CreateTaskParams) {
|
|||||||
task
|
task
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function toggleTaskDone(taskId: string) {
|
||||||
|
const task = becca.tasks[taskId];
|
||||||
|
task.isDone = !task.isDone;
|
||||||
|
task.save();
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user