260228:1446 20260228:14:30 workflow update #2
All checks were successful
Build and Deploy / deploy (push) Successful in 2m29s
All checks were successful
Build and Deploy / deploy (push) Successful in 2m29s
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
|||||||
drawingMasterDataService,
|
drawingMasterDataService,
|
||||||
ContractCategory,
|
ContractCategory,
|
||||||
ContractSubCategory,
|
ContractSubCategory,
|
||||||
|
CreateContractCategoryDto,
|
||||||
} from '@/lib/services/drawing-master-data.service';
|
} from '@/lib/services/drawing-master-data.service';
|
||||||
import { Badge } from '@/components/ui/badge';
|
import { Badge } from '@/components/ui/badge';
|
||||||
import { Button } from '@/components/ui/button';
|
import { Button } from '@/components/ui/button';
|
||||||
@@ -107,7 +108,7 @@ export default function ContractCategoriesPage() {
|
|||||||
console.log('Contract Categories Data:', data);
|
console.log('Contract Categories Data:', data);
|
||||||
return data;
|
return data;
|
||||||
}}
|
}}
|
||||||
createFn={(data) => drawingMasterDataService.createContractCategory({ ...data, projectId: selectedProjectId })}
|
createFn={(data: Record<string, unknown>) => drawingMasterDataService.createContractCategory({ ...(data as unknown as CreateContractCategoryDto), projectId: selectedProjectId })}
|
||||||
updateFn={(id, data) => drawingMasterDataService.updateContractCategory(id, data)}
|
updateFn={(id, data) => drawingMasterDataService.updateContractCategory(id, data)}
|
||||||
deleteFn={(id) => drawingMasterDataService.deleteContractCategory(id)}
|
deleteFn={(id) => drawingMasterDataService.deleteContractCategory(id)}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { ColumnDef } from '@tanstack/react-table';
|
|||||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
||||||
import { Loader2 } from 'lucide-react';
|
import { Loader2 } from 'lucide-react';
|
||||||
import { useProjects } from '@/hooks/use-master-data';
|
import { useProjects } from '@/hooks/use-master-data';
|
||||||
import { drawingMasterDataService } from '@/lib/services/drawing-master-data.service';
|
import { drawingMasterDataService, CreateContractSubCategoryDto } from '@/lib/services/drawing-master-data.service';
|
||||||
import { Badge } from '@/components/ui/badge';
|
import { Badge } from '@/components/ui/badge';
|
||||||
|
|
||||||
interface SubCategory {
|
interface SubCategory {
|
||||||
@@ -100,8 +100,8 @@ export default function ContractSubCategoriesPage() {
|
|||||||
console.log('Contract Sub-Categories Data:', data);
|
console.log('Contract Sub-Categories Data:', data);
|
||||||
return data;
|
return data;
|
||||||
}}
|
}}
|
||||||
createFn={(data) =>
|
createFn={(data: Record<string, unknown>) =>
|
||||||
drawingMasterDataService.createContractSubCategory({ ...data, projectId: selectedProjectId })
|
drawingMasterDataService.createContractSubCategory({ ...(data as unknown as CreateContractSubCategoryDto), projectId: selectedProjectId })
|
||||||
}
|
}
|
||||||
updateFn={(id, data) => drawingMasterDataService.updateContractSubCategory(id, data)}
|
updateFn={(id, data) => drawingMasterDataService.updateContractSubCategory(id, data)}
|
||||||
deleteFn={(id) => drawingMasterDataService.deleteContractSubCategory(id)}
|
deleteFn={(id) => drawingMasterDataService.deleteContractSubCategory(id)}
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ export default function ContractVolumesPage() {
|
|||||||
description="Manage drawing volumes (เล่ม) for contract drawings"
|
description="Manage drawing volumes (เล่ม) for contract drawings"
|
||||||
queryKey={["contract-drawing-volumes", String(selectedProjectId)]}
|
queryKey={["contract-drawing-volumes", String(selectedProjectId)]}
|
||||||
fetchFn={() => drawingMasterDataService.getContractVolumes(selectedProjectId)}
|
fetchFn={() => drawingMasterDataService.getContractVolumes(selectedProjectId)}
|
||||||
createFn={(data) => drawingMasterDataService.createContractVolume({ ...data, projectId: selectedProjectId })}
|
createFn={(data: Record<string, unknown>) => drawingMasterDataService.createContractVolume({ ...(data as unknown as Parameters<typeof drawingMasterDataService.createContractVolume>[0]), projectId: selectedProjectId })}
|
||||||
updateFn={(id, data) => drawingMasterDataService.updateContractVolume(id, data)}
|
updateFn={(id, data) => drawingMasterDataService.updateContractVolume(id, data)}
|
||||||
deleteFn={(id) => drawingMasterDataService.deleteContractVolume(id)}
|
deleteFn={(id) => drawingMasterDataService.deleteContractVolume(id)}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { ColumnDef } from '@tanstack/react-table';
|
|||||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
||||||
import { Loader2, CheckCircle, XCircle } from 'lucide-react';
|
import { Loader2, CheckCircle, XCircle } from 'lucide-react';
|
||||||
import { useProjects } from '@/hooks/use-master-data';
|
import { useProjects } from '@/hooks/use-master-data';
|
||||||
import { drawingMasterDataService } from '@/lib/services/drawing-master-data.service';
|
import { drawingMasterDataService, CreateShopMainCategoryDto } from '@/lib/services/drawing-master-data.service';
|
||||||
import { Badge } from '@/components/ui/badge';
|
import { Badge } from '@/components/ui/badge';
|
||||||
|
|
||||||
interface MainCategory {
|
interface MainCategory {
|
||||||
@@ -111,9 +111,9 @@ export default function ShopMainCategoriesPage() {
|
|||||||
console.log('Shop Main Categories Data:', data);
|
console.log('Shop Main Categories Data:', data);
|
||||||
return data;
|
return data;
|
||||||
}}
|
}}
|
||||||
createFn={(data) =>
|
createFn={(data: Record<string, unknown>) =>
|
||||||
drawingMasterDataService.createShopMainCategory({
|
drawingMasterDataService.createShopMainCategory({
|
||||||
...data,
|
...(data as unknown as CreateShopMainCategoryDto),
|
||||||
projectId: selectedProjectId,
|
projectId: selectedProjectId,
|
||||||
isActive: data.isActive === 'true' || data.isActive === true,
|
isActive: data.isActive === 'true' || data.isActive === true,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { ColumnDef } from '@tanstack/react-table';
|
|||||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
||||||
import { Loader2, CheckCircle, XCircle } from 'lucide-react';
|
import { Loader2, CheckCircle, XCircle } from 'lucide-react';
|
||||||
import { useProjects } from '@/hooks/use-master-data';
|
import { useProjects } from '@/hooks/use-master-data';
|
||||||
import { drawingMasterDataService } from '@/lib/services/drawing-master-data.service';
|
import { drawingMasterDataService, CreateShopSubCategoryDto } from '@/lib/services/drawing-master-data.service';
|
||||||
import { Badge } from '@/components/ui/badge';
|
import { Badge } from '@/components/ui/badge';
|
||||||
|
|
||||||
interface SubCategory {
|
interface SubCategory {
|
||||||
@@ -113,9 +113,9 @@ export default function ShopSubCategoriesPage() {
|
|||||||
console.log('Shop Sub-Categories Data:', data);
|
console.log('Shop Sub-Categories Data:', data);
|
||||||
return data;
|
return data;
|
||||||
}}
|
}}
|
||||||
createFn={(data) =>
|
createFn={(data: Record<string, unknown>) =>
|
||||||
drawingMasterDataService.createShopSubCategory({
|
drawingMasterDataService.createShopSubCategory({
|
||||||
...data,
|
...(data as unknown as CreateShopSubCategoryDto),
|
||||||
projectId: selectedProjectId,
|
projectId: selectedProjectId,
|
||||||
isActive: data.isActive === 'true' || data.isActive === true,
|
isActive: data.isActive === 'true' || data.isActive === true,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ export default function CorrespondenceTypesPage() {
|
|||||||
description="Manage global correspondence types (e.g., LETTER, TRANSMITTAL)"
|
description="Manage global correspondence types (e.g., LETTER, TRANSMITTAL)"
|
||||||
queryKey={["correspondence-types"]}
|
queryKey={["correspondence-types"]}
|
||||||
fetchFn={() => masterDataService.getCorrespondenceTypes()}
|
fetchFn={() => masterDataService.getCorrespondenceTypes()}
|
||||||
createFn={(data) => masterDataService.createCorrespondenceType(data)}
|
createFn={(data: Record<string, unknown>) => masterDataService.createCorrespondenceType(data as unknown as Parameters<typeof masterDataService.createCorrespondenceType>[0])}
|
||||||
updateFn={(id, data) => masterDataService.updateCorrespondenceType(id, data)}
|
updateFn={(id, data) => masterDataService.updateCorrespondenceType(id, data)}
|
||||||
deleteFn={(id) => masterDataService.deleteCorrespondenceType(id)}
|
deleteFn={(id) => masterDataService.deleteCorrespondenceType(id)}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ export default function DisciplinesPage() {
|
|||||||
description="Manage system disciplines (e.g., ARCH, STR, MEC)"
|
description="Manage system disciplines (e.g., ARCH, STR, MEC)"
|
||||||
queryKey={['disciplines', selectedContractId ?? 'all']}
|
queryKey={['disciplines', selectedContractId ?? 'all']}
|
||||||
fetchFn={() => masterDataService.getDisciplines(selectedContractId ? parseInt(selectedContractId) : undefined)}
|
fetchFn={() => masterDataService.getDisciplines(selectedContractId ? parseInt(selectedContractId) : undefined)}
|
||||||
createFn={(data) => masterDataService.createDiscipline(data)}
|
createFn={(data: Record<string, unknown>) => masterDataService.createDiscipline(data as unknown as Parameters<typeof masterDataService.createDiscipline>[0])}
|
||||||
updateFn={(id, data) => Promise.reject('Not implemented yet')} // Update endpoint needs to be verified/added if missing
|
updateFn={(id, data) => Promise.reject('Not implemented yet')} // Update endpoint needs to be verified/added if missing
|
||||||
deleteFn={(id) => masterDataService.deleteDiscipline(id)}
|
deleteFn={(id) => masterDataService.deleteDiscipline(id)}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export default function DrawingCategoriesPage() {
|
|||||||
description="Manage drawing sub-types and categories"
|
description="Manage drawing sub-types and categories"
|
||||||
queryKey={["drawing-categories"]}
|
queryKey={["drawing-categories"]}
|
||||||
fetchFn={() => masterDataService.getSubTypes(1)} // Default contract ID 1
|
fetchFn={() => masterDataService.getSubTypes(1)} // Default contract ID 1
|
||||||
createFn={(data) => masterDataService.createSubType({ ...data, contractId: 1, correspondenceTypeId: 3 })} // Assuming 3 is Drawings, hardcoded for now to prevent error
|
createFn={(data: Record<string, unknown>) => masterDataService.createSubType({ ...(data as unknown as Parameters<typeof masterDataService.createSubType>[0]), contractId: 1, correspondenceTypeId: 3 })} // Assuming 3 is Drawings, hardcoded for now to prevent error
|
||||||
updateFn={() => Promise.reject("Not implemented yet")}
|
updateFn={() => Promise.reject("Not implemented yet")}
|
||||||
deleteFn={() => Promise.reject("Not implemented yet")} // Delete might be restricted
|
deleteFn={() => Promise.reject("Not implemented yet")} // Delete might be restricted
|
||||||
columns={columns}
|
columns={columns}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ export default function RfaTypesPage() {
|
|||||||
title="RFA Types Management"
|
title="RFA Types Management"
|
||||||
queryKey={['rfa-types', selectedContractId ?? 'all']}
|
queryKey={['rfa-types', selectedContractId ?? 'all']}
|
||||||
fetchFn={() => masterDataService.getRfaTypes(selectedContractId ? parseInt(selectedContractId) : undefined)}
|
fetchFn={() => masterDataService.getRfaTypes(selectedContractId ? parseInt(selectedContractId) : undefined)}
|
||||||
createFn={(data) => masterDataService.createRfaType(data)}
|
createFn={(data: Record<string, unknown>) => masterDataService.createRfaType(data as unknown as any)}
|
||||||
updateFn={(id, data) => masterDataService.updateRfaType(id, data)}
|
updateFn={(id, data) => masterDataService.updateRfaType(id, data)}
|
||||||
deleteFn={(id) => masterDataService.deleteRfaType(id)}
|
deleteFn={(id) => masterDataService.deleteRfaType(id)}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export default function TagsPage() {
|
|||||||
entityName="Tag"
|
entityName="Tag"
|
||||||
queryKey={["tags"]}
|
queryKey={["tags"]}
|
||||||
fetchFn={() => masterDataService.getTags()}
|
fetchFn={() => masterDataService.getTags()}
|
||||||
createFn={(data: CreateTagDto) => masterDataService.createTag(data)}
|
createFn={(data: Record<string, unknown>) => masterDataService.createTag(data as unknown as CreateTagDto)}
|
||||||
updateFn={(id, data) => masterDataService.updateTag(id, data)}
|
updateFn={(id, data) => masterDataService.updateTag(id, data)}
|
||||||
deleteFn={(id) => masterDataService.deleteTag(id)}
|
deleteFn={(id) => masterDataService.deleteTag(id)}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
|
|||||||
@@ -299,8 +299,8 @@ export function UserDialog({ open, onOpenChange, user }: UserDialogProps) {
|
|||||||
<div>
|
<div>
|
||||||
<Label className="mb-3 block">Roles</Label>
|
<Label className="mb-3 block">Roles</Label>
|
||||||
<div className="space-y-2 border p-3 rounded-md max-h-[200px] overflow-y-auto">
|
<div className="space-y-2 border p-3 rounded-md max-h-[200px] overflow-y-auto">
|
||||||
{roles.length === 0 && <p className="text-sm text-muted-foreground">Loading roles...</p>}
|
{Array.isArray(roles) && roles.length === 0 && <p className="text-sm text-muted-foreground">Loading roles...</p>}
|
||||||
{roles.map((role: any) => (
|
{Array.isArray(roles) && roles.map((role: any) => (
|
||||||
<div key={role.roleId} className="flex items-start space-x-2">
|
<div key={role.roleId} className="flex items-start space-x-2">
|
||||||
<Checkbox
|
<Checkbox
|
||||||
id={`role-${role.roleId}`}
|
id={`role-${role.roleId}`}
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ export function CorrespondenceDetail({ data }: CorrespondenceDetailProps) {
|
|||||||
${importance === 'URGENT' ? 'bg-red-100 text-red-800' :
|
${importance === 'URGENT' ? 'bg-red-100 text-red-800' :
|
||||||
importance === 'HIGH' ? 'bg-orange-100 text-orange-800' :
|
importance === 'HIGH' ? 'bg-orange-100 text-orange-800' :
|
||||||
'bg-blue-100 text-blue-800'}`}>
|
'bg-blue-100 text-blue-800'}`}>
|
||||||
{importance}
|
{String(importance)}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ export const workflowApi = {
|
|||||||
createWorkflow: async (data: CreateWorkflowDto): Promise<Workflow> => {
|
createWorkflow: async (data: CreateWorkflowDto): Promise<Workflow> => {
|
||||||
await new Promise((resolve) => setTimeout(resolve, 800));
|
await new Promise((resolve) => setTimeout(resolve, 800));
|
||||||
const newWorkflow: Workflow = {
|
const newWorkflow: Workflow = {
|
||||||
workflowId: Math.max(...mockWorkflows.map((w) => w.workflowId)) + 1,
|
workflowId: Math.max(...mockWorkflows.map((w) => Number(w.workflowId))) + 1,
|
||||||
...data,
|
...data,
|
||||||
version: 1,
|
version: 1,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
|
|||||||
316
specs/deploy-deploy-34.txt
Normal file
316
specs/deploy-deploy-34.txt
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user