feat: Enhance task filtering, smart scheduling, audit logs and translations
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-12-17 14:26:54 +01:00
parent 9819d8db0b
commit 2579df0b89
32 changed files with 2219 additions and 456 deletions
+17 -2
View File
@@ -45,6 +45,7 @@ interface TaskCardProps {
onDelete?: () => void;
onStatusChange?: (status: Task['status']) => void;
onUpdate?: (updates: Partial<Task>) => void;
onAutoSchedule?: () => void;
isDragging?: boolean;
}
@@ -119,7 +120,7 @@ function SharedMenuItem({ task, onShare }: { task: Task, onShare: () => void })
);
}
export default function TaskCard({ task, onStartTimer, onStopTimer, onEdit, onDelete, onStatusChange, onUpdate, isDragging }: TaskCardProps) {
export default function TaskCard({ task, onStartTimer, onStopTimer, onEdit, onDelete, onStatusChange, onUpdate, onAutoSchedule, isDragging }: TaskCardProps) {
const { t } = useTranslation();
const { toast } = useToast();
const [isAnalyzing, setIsAnalyzing] = useState(false);
@@ -332,7 +333,7 @@ export default function TaskCard({ task, onStartTimer, onStopTimer, onEdit, onDe
<TooltipContent>
{isBlocked ? (
<p className="text-destructive font-medium">
Blocked by: {blockingTasks.map(t => t?.title).join(", ")}
{t('taskCard.blockedBy', { tasks: blockingTasks.map(t => t?.title).join(", ") })}
</p>
) : (
<p>{t('taskCard.toggleComplete')}</p>
@@ -490,6 +491,20 @@ export default function TaskCard({ task, onStartTimer, onStopTimer, onEdit, onDe
{t('taskCard.editTask')}
</DropdownMenuItem>
{onAutoSchedule && !task.dueDate && (
<DropdownMenuItem
onClick={(e) => {
e.stopPropagation();
onAutoSchedule();
}}
className="text-indigo-600 dark:text-indigo-400"
data-testid={`menu-schedule-${task.id}`}
>
<Wand2 className="w-4 h-4 mr-2" />
{t('taskDetails.autoSchedule', 'Auto-Schedule')}
</DropdownMenuItem>
)}
<DropdownMenuItem
onClick={(e) => {
e.stopPropagation();