Add missing pipeline statuses to UI with Hebrew labels
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 3m26s
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 3m26s
Added analyst_verified, research_complete, analysis_enriched, and ready_for_writing statuses across all UI components: status-badge, workflow-timeline, status-donut, status-changer, status-guide, and kpi-cards. Also changed qa_review label from "QA" to "בדיקת איכות". Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -18,7 +18,7 @@ const TONE_STYLES: Record<Bucket["tone"], string> = {
|
|||||||
function bucketize(cases: Case[] | undefined): Bucket[] {
|
function bucketize(cases: Case[] | undefined): Bucket[] {
|
||||||
const c = cases ?? [];
|
const c = cases ?? [];
|
||||||
const inProgress = c.filter((x) =>
|
const inProgress = c.filter((x) =>
|
||||||
["processing", "documents_ready", "outcome_set", "brainstorming", "direction_approved"].includes(x.status),
|
["processing", "documents_ready", "analyst_verified", "research_complete", "outcome_set", "brainstorming", "direction_approved", "analysis_enriched", "ready_for_writing"].includes(x.status),
|
||||||
).length;
|
).length;
|
||||||
const drafting = c.filter((x) =>
|
const drafting = c.filter((x) =>
|
||||||
["drafting", "qa_review", "drafted"].includes(x.status),
|
["drafting", "qa_review", "drafted"].includes(x.status),
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ import { Badge } from "@/components/ui/badge";
|
|||||||
import {
|
import {
|
||||||
FilePlus2, Upload, Loader2, FileCheck, Target,
|
FilePlus2, Upload, Loader2, FileCheck, Target,
|
||||||
Lightbulb, Compass, PenLine, SearchCheck, FileText,
|
Lightbulb, Compass, PenLine, SearchCheck, FileText,
|
||||||
FileOutput, CheckCircle2, Award,
|
FileOutput, CheckCircle2, Award, ShieldCheck, BookOpen,
|
||||||
|
Microscope, PlayCircle,
|
||||||
} from "lucide-react";
|
} from "lucide-react";
|
||||||
import type { CaseStatus } from "@/lib/api/cases";
|
import type { CaseStatus } from "@/lib/api/cases";
|
||||||
import type { LucideIcon } from "lucide-react";
|
import type { LucideIcon } from "lucide-react";
|
||||||
@@ -12,11 +13,15 @@ const STATUS_LABELS: Record<CaseStatus, string> = {
|
|||||||
uploading: "מעלה",
|
uploading: "מעלה",
|
||||||
processing: "בעיבוד",
|
processing: "בעיבוד",
|
||||||
documents_ready: "מסמכים מוכנים",
|
documents_ready: "מסמכים מוכנים",
|
||||||
|
analyst_verified: "ניתוח אומת",
|
||||||
|
research_complete: "מחקר הושלם",
|
||||||
outcome_set: "תוצאה נקבעה",
|
outcome_set: "תוצאה נקבעה",
|
||||||
brainstorming: "סיעור מוחות",
|
brainstorming: "סיעור מוחות",
|
||||||
direction_approved: "כיוון אושר",
|
direction_approved: "כיוון אושר",
|
||||||
|
analysis_enriched: "ניתוח הועמק",
|
||||||
|
ready_for_writing: "מוכן לכתיבה",
|
||||||
drafting: "בכתיבה",
|
drafting: "בכתיבה",
|
||||||
qa_review: "QA",
|
qa_review: "בדיקת איכות",
|
||||||
drafted: "טיוטה",
|
drafted: "טיוטה",
|
||||||
exported: "יוצא",
|
exported: "יוצא",
|
||||||
reviewed: "נבדק",
|
reviewed: "נבדק",
|
||||||
@@ -28,9 +33,13 @@ const STATUS_ICONS: Record<CaseStatus, LucideIcon> = {
|
|||||||
uploading: Upload,
|
uploading: Upload,
|
||||||
processing: Loader2,
|
processing: Loader2,
|
||||||
documents_ready: FileCheck,
|
documents_ready: FileCheck,
|
||||||
|
analyst_verified: ShieldCheck,
|
||||||
|
research_complete: BookOpen,
|
||||||
outcome_set: Target,
|
outcome_set: Target,
|
||||||
brainstorming: Lightbulb,
|
brainstorming: Lightbulb,
|
||||||
direction_approved: Compass,
|
direction_approved: Compass,
|
||||||
|
analysis_enriched: Microscope,
|
||||||
|
ready_for_writing: PlayCircle,
|
||||||
drafting: PenLine,
|
drafting: PenLine,
|
||||||
qa_review: SearchCheck,
|
qa_review: SearchCheck,
|
||||||
drafted: FileText,
|
drafted: FileText,
|
||||||
@@ -44,9 +53,13 @@ const STATUS_DESCRIPTIONS: Record<CaseStatus, string> = {
|
|||||||
uploading: "מסמכים בתהליך העלאה לשרת",
|
uploading: "מסמכים בתהליך העלאה לשרת",
|
||||||
processing: "המערכת מעבדת ומנתחת את המסמכים",
|
processing: "המערכת מעבדת ומנתחת את המסמכים",
|
||||||
documents_ready: "כל המסמכים עובדו ומוכנים לעבודה",
|
documents_ready: "כל המסמכים עובדו ומוכנים לעבודה",
|
||||||
|
analyst_verified: "ניתוח ראשוני אומת — ממתין למחקר תקדימים",
|
||||||
|
research_complete: "מחקר תקדימים הושלם — ממתין לבחירת תוצאה",
|
||||||
outcome_set: "נקבעה תוצאה צפויה לערר",
|
outcome_set: "נקבעה תוצאה צפויה לערר",
|
||||||
brainstorming: "ניתוח כיוונים אפשריים להחלטה",
|
brainstorming: "ניתוח כיוונים אפשריים להחלטה",
|
||||||
direction_approved: "כיוון ההחלטה אושר — ניתן להתחיל כתיבה",
|
direction_approved: "כיוון ההחלטה אושר — בהעמקת ניתוח",
|
||||||
|
analysis_enriched: "ניתוח הועמק ופסיקה אומתה — מוכן לכתיבה",
|
||||||
|
ready_for_writing: "הכל מוכן — ממתין לכותב ההחלטה",
|
||||||
drafting: "טיוטת ההחלטה בתהליך כתיבה",
|
drafting: "טיוטת ההחלטה בתהליך כתיבה",
|
||||||
qa_review: "הטיוטה בבדיקת איכות אוטומטית",
|
qa_review: "הטיוטה בבדיקת איכות אוטומטית",
|
||||||
drafted: "טיוטה ראשונה מוכנה לעיון",
|
drafted: "טיוטה ראשונה מוכנה לעיון",
|
||||||
@@ -66,9 +79,13 @@ const STATUS_TONE: Record<CaseStatus, string> = {
|
|||||||
uploading: "bg-rule-soft text-ink-muted border-rule",
|
uploading: "bg-rule-soft text-ink-muted border-rule",
|
||||||
processing: "bg-info-bg text-info border-info/30",
|
processing: "bg-info-bg text-info border-info/30",
|
||||||
documents_ready: "bg-info-bg text-info border-info/40",
|
documents_ready: "bg-info-bg text-info border-info/40",
|
||||||
|
analyst_verified: "bg-info-bg text-info border-info/40",
|
||||||
|
research_complete:"bg-info-bg text-info border-info/40",
|
||||||
outcome_set: "bg-info-bg text-info border-info/40",
|
outcome_set: "bg-info-bg text-info border-info/40",
|
||||||
brainstorming: "bg-gold-wash text-gold-deep border-gold/40",
|
brainstorming: "bg-gold-wash text-gold-deep border-gold/40",
|
||||||
direction_approved:"bg-gold-wash text-gold-deep border-gold/50",
|
direction_approved:"bg-gold-wash text-gold-deep border-gold/50",
|
||||||
|
analysis_enriched:"bg-gold-wash text-gold-deep border-gold/50",
|
||||||
|
ready_for_writing:"bg-gold-wash text-gold-deep border-gold/50",
|
||||||
drafting: "bg-warn-bg text-warn border-warn/40",
|
drafting: "bg-warn-bg text-warn border-warn/40",
|
||||||
qa_review: "bg-warn-bg text-warn border-warn/40",
|
qa_review: "bg-warn-bg text-warn border-warn/40",
|
||||||
drafted: "bg-warn-bg text-warn border-warn/50",
|
drafted: "bg-warn-bg text-warn border-warn/50",
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ import { useUpdateCase, type CaseStatus } from "@/lib/api/cases";
|
|||||||
|
|
||||||
const ALL_STATUSES: CaseStatus[] = [
|
const ALL_STATUSES: CaseStatus[] = [
|
||||||
"new", "uploading", "processing",
|
"new", "uploading", "processing",
|
||||||
"documents_ready", "outcome_set",
|
"documents_ready", "analyst_verified", "research_complete", "outcome_set",
|
||||||
"brainstorming", "direction_approved",
|
"brainstorming", "direction_approved", "analysis_enriched", "ready_for_writing",
|
||||||
"drafting", "qa_review", "drafted",
|
"drafting", "qa_review", "drafted",
|
||||||
"exported", "reviewed", "final",
|
"exported", "reviewed", "final",
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ type GroupKey = "intake" | "prep" | "thinking" | "writing" | "done";
|
|||||||
|
|
||||||
const GROUP_OF: Record<CaseStatus, GroupKey> = {
|
const GROUP_OF: Record<CaseStatus, GroupKey> = {
|
||||||
new: "intake", uploading: "intake", processing: "intake",
|
new: "intake", uploading: "intake", processing: "intake",
|
||||||
documents_ready: "prep", outcome_set: "prep",
|
documents_ready: "prep", analyst_verified: "prep", research_complete: "prep", outcome_set: "prep",
|
||||||
brainstorming: "thinking", direction_approved: "thinking",
|
brainstorming: "thinking", direction_approved: "thinking", analysis_enriched: "thinking", ready_for_writing: "thinking",
|
||||||
drafting: "writing", qa_review: "writing", drafted: "writing",
|
drafting: "writing", qa_review: "writing", drafted: "writing",
|
||||||
exported: "done", reviewed: "done", final: "done",
|
exported: "done", reviewed: "done", final: "done",
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ type PhaseGroup = {
|
|||||||
|
|
||||||
const PHASE_GROUPS: PhaseGroup[] = [
|
const PHASE_GROUPS: PhaseGroup[] = [
|
||||||
{ label: "קליטה ועיבוד", statuses: ["new", "uploading", "processing"] },
|
{ label: "קליטה ועיבוד", statuses: ["new", "uploading", "processing"] },
|
||||||
{ label: "הכנת תיק", statuses: ["documents_ready", "outcome_set"] },
|
{ label: "הכנת תיק", statuses: ["documents_ready", "analyst_verified", "research_complete", "outcome_set"] },
|
||||||
{ label: "ניתוח וכיוון", statuses: ["brainstorming", "direction_approved"] },
|
{ label: "ניתוח וכיוון", statuses: ["brainstorming", "direction_approved", "analysis_enriched", "ready_for_writing"] },
|
||||||
{ label: "כתיבת טיוטה", statuses: ["drafting", "qa_review", "drafted"] },
|
{ label: "כתיבת טיוטה", statuses: ["drafting", "qa_review", "drafted"] },
|
||||||
{ label: "סגירה", statuses: ["exported", "reviewed", "final"] },
|
{ label: "סגירה", statuses: ["exported", "reviewed", "final"] },
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ type Phase = {
|
|||||||
|
|
||||||
const PHASES: Phase[] = [
|
const PHASES: Phase[] = [
|
||||||
{ key: "intake", label: "קליטה ועיבוד", icon: FolderInput, statuses: ["new", "uploading", "processing"] },
|
{ key: "intake", label: "קליטה ועיבוד", icon: FolderInput, statuses: ["new", "uploading", "processing"] },
|
||||||
{ key: "prep", label: "הכנת תיק", icon: ClipboardList, statuses: ["documents_ready", "outcome_set"] },
|
{ key: "prep", label: "הכנת תיק", icon: ClipboardList, statuses: ["documents_ready", "analyst_verified", "research_complete", "outcome_set"] },
|
||||||
{ key: "thinking", label: "ניתוח וכיוון", icon: Brain, statuses: ["brainstorming", "direction_approved"] },
|
{ key: "thinking", label: "ניתוח וכיוון", icon: Brain, statuses: ["brainstorming", "direction_approved", "analysis_enriched", "ready_for_writing"] },
|
||||||
{ key: "writing", label: "כתיבת טיוטה", icon: PenLine, statuses: ["drafting", "qa_review", "drafted"] },
|
{ key: "writing", label: "כתיבת טיוטה", icon: PenLine, statuses: ["drafting", "qa_review", "drafted"] },
|
||||||
{ key: "done", label: "סגירה", icon: CheckCircle2, statuses: ["exported", "reviewed", "final"] },
|
{ key: "done", label: "סגירה", icon: CheckCircle2, statuses: ["exported", "reviewed", "final"] },
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -18,9 +18,13 @@ export type CaseStatus =
|
|||||||
| "uploading"
|
| "uploading"
|
||||||
| "processing"
|
| "processing"
|
||||||
| "documents_ready"
|
| "documents_ready"
|
||||||
|
| "analyst_verified"
|
||||||
|
| "research_complete"
|
||||||
| "outcome_set"
|
| "outcome_set"
|
||||||
| "brainstorming"
|
| "brainstorming"
|
||||||
| "direction_approved"
|
| "direction_approved"
|
||||||
|
| "analysis_enriched"
|
||||||
|
| "ready_for_writing"
|
||||||
| "drafting"
|
| "drafting"
|
||||||
| "qa_review"
|
| "qa_review"
|
||||||
| "drafted"
|
| "drafted"
|
||||||
|
|||||||
Reference in New Issue
Block a user