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,
|
||||
title: this.title,
|
||||
dueDate: this.dueDate,
|
||||
isDone: this.isDone,
|
||||
isDeleted: this.isDeleted,
|
||||
utcDateModified: this.utcDateModified
|
||||
};
|
||||
|
@ -5,3 +5,7 @@ export async function createNewTask(title: string) {
|
||||
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);
|
||||
padding: 0.5em 1em;
|
||||
}
|
||||
|
||||
.note-detail-task-list .task-container li .check {
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
</style>
|
||||
</div>
|
||||
`;
|
||||
|
||||
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 {
|
||||
@ -73,6 +80,17 @@ export default class TaskListWidget extends TypeWidget {
|
||||
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) {
|
||||
|
@ -8,3 +8,12 @@ export function getTasks() {
|
||||
export function createNewTask(req: Request) {
|
||||
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(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
|
||||
const clipperMiddleware = isElectron ? [] : [auth.checkEtapiToken];
|
||||
|
@ -19,3 +19,9 @@ export function createNewTask(params: CreateTaskParams) {
|
||||
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