feat: replace subtasks with task commenting system and update task view UI
This commit is contained in:
26
index.php
26
index.php
@@ -18,7 +18,7 @@ if ($action === 'api') {
|
||||
try { $pdo->exec("ALTER TABLE tasks ADD COLUMN completed_by INTEGER DEFAULT NULL"); } catch(Exception $e) {}
|
||||
try { $pdo->exec("ALTER TABLE tasks ADD COLUMN archived_by INTEGER DEFAULT NULL"); } catch(Exception $e) {}
|
||||
try { $pdo->exec("CREATE TABLE IF NOT EXISTS task_attachments (id INTEGER PRIMARY KEY AUTOINCREMENT, task_id INTEGER, file_name TEXT, file_path TEXT, owner_id INTEGER, created_at DATETIME DEFAULT CURRENT_TIMESTAMP)"); } catch(Exception $e) {}
|
||||
try { $pdo->exec("CREATE TABLE IF NOT EXISTS task_subtasks (id INTEGER PRIMARY KEY AUTOINCREMENT, task_id INTEGER, title TEXT NOT NULL, is_completed INTEGER DEFAULT 0, created_by INTEGER, completed_by INTEGER, created_at DATETIME DEFAULT CURRENT_TIMESTAMP)"); } catch(Exception $e) {}
|
||||
try { $pdo->exec("CREATE TABLE IF NOT EXISTS task_comments (id INTEGER PRIMARY KEY AUTOINCREMENT, task_id INTEGER, comment TEXT NOT NULL, created_by INTEGER, created_at DATETIME DEFAULT CURRENT_TIMESTAMP)"); } catch(Exception $e) {}
|
||||
|
||||
$format_dt = function($value) {
|
||||
$value = is_string($value) ? trim($value) : $value;
|
||||
@@ -62,27 +62,27 @@ if ($action === 'api') {
|
||||
exit;
|
||||
}
|
||||
|
||||
if($api_action === 'add_subtask') {
|
||||
if($api_action === 'add_comment') {
|
||||
if(!isset($_SESSION['user_id'])) die(json_encode(['status'=>'error','msg'=>'unauthorized']));
|
||||
$task_id = $_POST['task_id'] ?? null;
|
||||
$title = $_POST['title'] ?? null;
|
||||
$comment = $_POST['comment'] ?? null;
|
||||
$user_id = $_SESSION['user_id'];
|
||||
if($task_id && $title) {
|
||||
$stmt = $pdo->prepare("INSERT INTO task_subtasks (task_id, title, created_by) VALUES (?, ?, ?)");
|
||||
$stmt->execute([$task_id, $title, $user_id]);
|
||||
if($task_id && $comment) {
|
||||
$stmt = $pdo->prepare("INSERT INTO task_comments (task_id, comment, created_by) VALUES (?, ?, ?)");
|
||||
$stmt->execute([$task_id, $comment, $user_id]);
|
||||
$t = query("SELECT title FROM tasks WHERE id=?", [$task_id])->fetch();
|
||||
if($t) notify_waha('Commented on', 'Task', $t['title']);
|
||||
}
|
||||
echo json_encode(['status'=>'ok']);
|
||||
exit;
|
||||
}
|
||||
|
||||
if($api_action === 'toggle_subtask') {
|
||||
if($api_action === 'delete_comment') {
|
||||
if(!isset($_SESSION['user_id'])) die(json_encode(['status'=>'error','msg'=>'unauthorized']));
|
||||
$subtask_id = $_POST['subtask_id'] ?? null;
|
||||
$is_completed = (int)($_POST['is_completed'] ?? 0);
|
||||
$user_id = $_SESSION['user_id'];
|
||||
if($subtask_id) {
|
||||
$stmt = $pdo->prepare("UPDATE task_subtasks SET is_completed = ?, completed_by = ? WHERE id = ?");
|
||||
$stmt->execute([$is_completed, $is_completed ? $user_id : null, $subtask_id]);
|
||||
$comment_id = $_POST['comment_id'] ?? null;
|
||||
if($comment_id) {
|
||||
$stmt = $pdo->prepare("DELETE FROM task_comments WHERE id = ?");
|
||||
$stmt->execute([$comment_id]);
|
||||
}
|
||||
echo json_encode(['status'=>'ok']);
|
||||
exit;
|
||||
|
||||
Reference in New Issue
Block a user