feature: add/edit/delete tasks
This commit is contained in:
parent
876fe85f08
commit
ac57825452
7 changed files with 75 additions and 48 deletions
|
|
@ -1,9 +1,10 @@
|
|||
import * as React from "react";
|
||||
import { Notice } from "obsidian";
|
||||
import { getStats, scoreTask, makeCronReq, costReward, addTask, deleteTask } from "./habiticaAPI"
|
||||
import { getStats, scoreTask, makeCronReq, costReward, addTask, deleteTask, updateTask } from "./habiticaAPI"
|
||||
import Statsview from "./Components/Statsview"
|
||||
import Taskview from "./Components/Taskview"
|
||||
import "../i18n"
|
||||
import { exit } from "process";
|
||||
|
||||
class App extends React.Component<any, any> {
|
||||
private _username = "";
|
||||
|
|
@ -40,7 +41,6 @@ class App extends React.Component<any, any> {
|
|||
todos: [],
|
||||
dailys: [],
|
||||
habits: [],
|
||||
input_task: "",
|
||||
}
|
||||
this.handleChangeTodos = this.handleChangeTodos.bind(this);
|
||||
this.handleChangeDailys = this.handleChangeDailys.bind(this);
|
||||
|
|
@ -167,9 +167,22 @@ class App extends React.Component<any, any> {
|
|||
}
|
||||
}
|
||||
|
||||
async sendEditTask(id: string, type: string) {
|
||||
console.log(id, type)
|
||||
return (<div className="loading">Loading....</div>)
|
||||
async sendUpdateTask(id: string, type: string,message: string, title: string, notes: string) {
|
||||
try {
|
||||
let response = await updateTask(this.username, this.credentials, id, type, title, notes);
|
||||
let result = await response.json();
|
||||
if (result.success === true) {
|
||||
new Notice(message);
|
||||
this.reloadData();
|
||||
} else {
|
||||
new Notice("Resyncing, please try again");
|
||||
this.reloadData();
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
new Notice("API Error: Please check credentials")
|
||||
}
|
||||
// console.log(id, type,title,notes)
|
||||
}
|
||||
|
||||
handleChangeTodos(event: any) {
|
||||
|
|
@ -205,9 +218,11 @@ class App extends React.Component<any, any> {
|
|||
this.state.tasks.dailys.forEach((element: any) => {
|
||||
if (element.id == event.target.id) {
|
||||
if (element.id == event.target.id) {
|
||||
if ( event.target.innerText == 'create' ) {
|
||||
this.sendEditTask(event.target.id, "daily")
|
||||
} else if (event.target.innerText == 'clear') {
|
||||
if ( event.target.attributes.title.value == 'submit' ) {
|
||||
const task_title = event.target.attributes['data-title'].value ? event.target.attributes['data-title'].value:element.text
|
||||
const task_notes = event.target.attributes['data-notes'].value ? event.target.attributes['data-notes'].value:element.notes
|
||||
this.sendUpdateTask(event.target.id,'daily',"Update!",task_title,task_notes)
|
||||
} else if (event.target.attributes.title.value == 'delete') {
|
||||
this.sendDeleteTask(event.target.id, "Deleted!")
|
||||
} else if ( !element.completed) {
|
||||
this.sendScore(event.target.id, "up", "Checked!")
|
||||
|
|
@ -259,7 +274,7 @@ class App extends React.Component<any, any> {
|
|||
if (event.target.innerText == 'clear') {
|
||||
this.sendDeleteTask(event.target.id, "Deleted!")
|
||||
} else if (event.target.innerText == 'create') {
|
||||
this.sendEditTask(event.target.id, "Edit!")
|
||||
this.sendUpdateTask(event.target.id,'reward',"Edit!","1","1")
|
||||
} else {
|
||||
this.sendReward(target_id, "down", "Cost!")
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue