| Server IP : 72.60.21.38 / Your IP : 216.73.216.25 Web Server : LiteSpeed System : Linux uk-fast-web1372.main-hosting.eu 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64 User : u390967363 ( 390967363) PHP Version : 8.2.30 Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail MySQL : OFF | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/u390967363/domains/aibenproperties.com/public_html/app/ |
Upload File : |
<?php
require_once 'includes/db.php';
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
if (!isset($_SESSION['user_id']) || !isset($_GET['id'])) {
echo '<div class="alert alert-danger m-3">Invalid Request</div>';
exit;
}
$task_id = intval($_GET['id']);
$companyId = getCurrentCompanyId();
// Fetch Task Details
$query = "
SELECT t.*,
p.title as property_title, p.address as property_address,
c.name as client_name, c.email as client_email,
a.name as assigned_name, a.email as assigned_email,
creator.name as creator_name
FROM tasks t
LEFT JOIN properties p ON t.property_id = p.id
LEFT JOIN users c ON t.client_id = c.id
LEFT JOIN users a ON t.assigned_to = a.id
LEFT JOIN users creator ON t.created_by = creator.id
WHERE t.id = ?
";
$params = [$task_id];
if ($companyId) {
$query .= " AND t.company_id = ?";
$params[] = $companyId;
}
$stmt = $pdo->prepare($query);
$stmt->execute($params);
$task = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$task) {
echo '<div class="alert alert-danger m-3">Task not found</div>';
exit;
}
// Fetch Staff for Assignment Dropdown
if ($companyId) {
$staff_stmt = $pdo->prepare("SELECT id, name FROM users WHERE role IN ('admin', 'super_admin', 'operations', 'operations_manager', 'estate_manager', 'sales_agent') AND company_id = ? ORDER BY name");
$staff_stmt->execute([$companyId]);
} else {
$staff_stmt = $pdo->query("SELECT id, name FROM users WHERE role IN ('admin', 'super_admin', 'operations', 'operations_manager', 'estate_manager', 'sales_agent') ORDER BY name");
}
$staff_members = $staff_stmt->fetchAll(PDO::FETCH_ASSOC);
$statusClass = match($task['status']) {
'pending' => 'bg-secondary bg-opacity-10 text-secondary',
'in_progress' => 'bg-primary bg-opacity-10 text-primary',
'completed' => 'bg-success bg-opacity-10 text-success',
'cancelled' => 'bg-danger bg-opacity-10 text-danger',
default => 'bg-light text-dark'
};
$priorityClass = match($task['priority']) {
'urgent' => 'text-danger fw-bold',
'high' => 'text-danger',
'medium' => 'text-warning',
'low' => 'text-success',
default => 'text-muted'
};
?>
<div class="p-4">
<!-- Header Info -->
<div class="d-flex justify-content-between align-items-start mb-4">
<div>
<span class="badge <?= $statusClass ?> mb-2"><?= ucfirst(str_replace('_', ' ', $task['status'])) ?></span>
<h4 class="mb-1 text-navy fw-bold"><?= htmlspecialchars($task['title']) ?></h4>
<div class="text-muted small">
Created by <?= htmlspecialchars($task['creator_name']) ?> on <?= date('M d, Y @ h:i A', strtotime($task['created_at'])) ?>
</div>
</div>
<div class="text-end">
<div class="<?= $priorityClass ?> text-uppercase fw-bold small mb-1">
<i class="fas fa-flag me-1"></i><?= $task['priority'] ?> Priority
</div>
</div>
</div>
<!-- Main Details Grid -->
<div class="row g-4 mb-4">
<!-- Related Context -->
<?php if($task['property_title'] || $task['client_name']): ?>
<div class="col-12">
<div class="card bg-light border-0">
<div class="card-body">
<div class="row">
<?php if($task['property_title']): ?>
<div class="col-md-6 mb-3 mb-md-0">
<h6 class="text-uppercase text-muted small fw-bold mb-2">Related Property</h6>
<div class="d-flex align-items-center">
<div class="avatar-sm bg-white rounded text-primary d-flex align-items-center justify-content-center me-2 shadow-sm">
<i class="fas fa-building"></i>
</div>
<div>
<div class="fw-bold text-dark"><?= htmlspecialchars($task['property_title']) ?></div>
<div class="small text-muted"><?= htmlspecialchars($task['property_address']) ?></div>
</div>
</div>
</div>
<?php endif; ?>
<?php if($task['client_name']): ?>
<div class="col-md-6">
<h6 class="text-uppercase text-muted small fw-bold mb-2">Related Client</h6>
<div class="d-flex align-items-center">
<div class="avatar-sm bg-white rounded text-success d-flex align-items-center justify-content-center me-2 shadow-sm">
<i class="fas fa-user"></i>
</div>
<div>
<div class="fw-bold text-dark"><?= htmlspecialchars($task['client_name']) ?></div>
<div class="small text-muted"><?= htmlspecialchars($task['client_email']) ?></div>
</div>
</div>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php endif; ?>
<!-- Description -->
<div class="col-12">
<h6 class="text-uppercase text-muted small fw-bold mb-2">Description</h6>
<div class="p-3 bg-white border rounded">
<?= nl2br(htmlspecialchars($task['description'] ?: 'No description provided.')) ?>
</div>
</div>
</div>
<hr class="my-4 opacity-25">
<!-- Management Actions -->
<h5 class="fw-bold text-navy mb-3"><i class="fas fa-tasks me-2"></i>Update Task</h5>
<form action="tasks.php" method="POST">
<input type="hidden" name="action" value="update_status">
<input type="hidden" name="task_id" value="<?= $task['id'] ?>">
<div class="row g-3">
<!-- Status -->
<div class="col-md-6">
<label class="form-label small fw-bold text-muted">Status</label>
<select name="status" class="form-select">
<option value="pending" <?= $task['status'] == 'pending' ? 'selected' : '' ?>>Pending</option>
<option value="in_progress" <?= $task['status'] == 'in_progress' ? 'selected' : '' ?>>In Progress</option>
<option value="completed" <?= $task['status'] == 'completed' ? 'selected' : '' ?>>Completed</option>
<option value="cancelled" <?= $task['status'] == 'cancelled' ? 'selected' : '' ?>>Cancelled</option>
</select>
</div>
<!-- Priority -->
<div class="col-md-6">
<label class="form-label small fw-bold text-muted">Priority</label>
<select name="priority" class="form-select">
<option value="low" <?= $task['priority'] == 'low' ? 'selected' : '' ?>>Low</option>
<option value="medium" <?= $task['priority'] == 'medium' ? 'selected' : '' ?>>Medium</option>
<option value="high" <?= $task['priority'] == 'high' ? 'selected' : '' ?>>High</option>
<option value="urgent" <?= $task['priority'] == 'urgent' ? 'selected' : '' ?>>Urgent</option>
</select>
</div>
<!-- Assignment -->
<div class="col-md-6">
<label class="form-label small fw-bold text-muted">Assigned To</label>
<select name="assigned_to" class="form-select">
<option value="">-- Unassigned --</option>
<?php foreach ($staff_members as $staff): ?>
<option value="<?= $staff['id'] ?>" <?= $task['assigned_to'] == $staff['id'] ? 'selected' : '' ?>>
<?= htmlspecialchars($staff['name']) ?>
</option>
<?php endforeach; ?>
</select>
</div>
<!-- Due Date -->
<div class="col-md-6">
<label class="form-label small fw-bold text-muted">Due Date</label>
<input type="datetime-local" name="due_date" class="form-control"
value="<?= $task['due_date'] ? date('Y-m-d\TH:i', strtotime($task['due_date'])) : '' ?>">
</div>
<!-- Edit Description -->
<div class="col-12">
<label class="form-label small fw-bold text-muted">Edit Description</label>
<textarea name="description" class="form-control" rows="3"><?= htmlspecialchars($task['description']) ?></textarea>
</div>
</div>
<div class="d-grid mt-4">
<button type="submit" class="btn btn-primary">
<i class="fas fa-save me-2"></i>Save Changes
</button>
</div>
</form>
</div>