tasks can be marked as finished
This commit is contained in:
parent
5e63fc1e38
commit
3bf957ee30
3 changed files with 44 additions and 7 deletions
|
@ -45,8 +45,22 @@ func (db *Database) CreateTask(username string, description string) Task {
|
||||||
return task
|
return task
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db *Database) DeleteTask(id string) {
|
func (db *Database) DeleteTask(id string) bool {
|
||||||
db.ORM.Delete(&Task{}, id)
|
result := db.ORM.Delete(&Task{}, id)
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (db *Database) UpdateTask(id string, done string) bool {
|
||||||
|
task := Task{}
|
||||||
|
db.ORM.First(&task, id)
|
||||||
|
result := db.ORM.Model(&task).Update("done", done)
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db *Database) CreateUser(username string, password string) error {
|
func (db *Database) CreateUser(username string, password string) error {
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteTask(id) {
|
function deleteTask(id) {
|
||||||
axios.delete("/tasks/" + id, axiosConfig)
|
axios.delete("/tasks", {params: {id: id}, headers: {username: username}})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
getAllTasks();
|
getAllTasks();
|
||||||
})
|
})
|
||||||
|
@ -59,6 +59,13 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateTask(id, done) {
|
||||||
|
axios.put("/tasks", null, {params: {id: id, done: done}, headers: {username: username}})
|
||||||
|
.catch((err) => {
|
||||||
|
showErrorToast(err.response.data.message);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function addTaskToTasks(task, number) {
|
function addTaskToTasks(task, number) {
|
||||||
tasks.push(task);
|
tasks.push(task);
|
||||||
const newTask = document.createElement('div');
|
const newTask = document.createElement('div');
|
||||||
|
@ -68,7 +75,7 @@
|
||||||
<div class="col-1 text-center">${number}</div>
|
<div class="col-1 text-center">${number}</div>
|
||||||
<div class="col-8">${task.Description}</div>
|
<div class="col-8">${task.Description}</div>
|
||||||
<div class="col-2 form-check form-switch d-flex justify-content-center">
|
<div class="col-2 form-check form-switch d-flex justify-content-center">
|
||||||
<input class="text-center form-check-input" type="checkbox" ${task.Done && "checked"} role="switch" id="flexSwitchCheckDefault">
|
<input onchange="updateTask(${task.ID},this.checked)" class="text-center form-check-input" type="checkbox" ${task.Done && "checked"} role="switch" id="flexSwitchCheckDefault">
|
||||||
</div>
|
</div>
|
||||||
<button onclick="deleteTask(${task.ID})" class="col-1 btn btn-danger"><i class="bi bi-trash"></i></button>
|
<button onclick="deleteTask(${task.ID})" class="col-1 btn btn-danger"><i class="bi bi-trash"></i></button>
|
||||||
`;
|
`;
|
||||||
|
|
|
@ -55,10 +55,26 @@ func (wp *Webpage) defineRoutes() {
|
||||||
c.JSON(200, gin.H{"task": task})
|
c.JSON(200, gin.H{"task": task})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
tasks.DELETE(":id", func(c *gin.Context) {
|
tasks.DELETE("", func(c *gin.Context) {
|
||||||
if wp.isLoggedInMiddleware(c) {
|
if wp.isLoggedInMiddleware(c) {
|
||||||
id := c.Param("id")
|
id := c.Query("id")
|
||||||
wp.Database.DeleteTask(id)
|
ok := wp.Database.DeleteTask(id)
|
||||||
|
if !ok {
|
||||||
|
c.JSON(500, gin.H{"message": "cannot delete task"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
c.JSON(200, gin.H{"message": "success"})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
tasks.PUT("", func(c *gin.Context) {
|
||||||
|
if wp.isLoggedInMiddleware(c) {
|
||||||
|
id := c.Query("id")
|
||||||
|
done := c.Query("done")
|
||||||
|
ok := wp.Database.UpdateTask(id, done)
|
||||||
|
if !ok {
|
||||||
|
c.JSON(500, gin.H{"message": "cannot update task"})
|
||||||
|
return
|
||||||
|
}
|
||||||
c.JSON(200, gin.H{"message": "success"})
|
c.JSON(200, gin.H{"message": "success"})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
Reference in a new issue