diff --git a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx new file mode 100644 index 00000000..36719bb0 --- /dev/null +++ b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx @@ -0,0 +1,58 @@ +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, + DialogTrigger, +} from "@/components/ui/dialog"; +import { DropdownMenuItem } from "@/components/ui/dropdown-menu"; +import dynamic from "next/dynamic"; +import type React from "react"; +export const DockerLogsId = dynamic( + () => + import("@/components/dashboard/docker/logs/docker-logs-id").then( + (e) => e.DockerLogsId, + ), + { + ssr: false, + }, +); + +interface Props { + containerId: string; + children?: React.ReactNode; + serverId?: string | null; +} + +export const ShowDockerModalStackLogs = ({ + containerId, + children, + serverId, +}: Props) => { + return ( + + + e.preventDefault()} + > + {children} + + + + + View Logs + View the logs for {containerId} + +
+ +
+
+
+ ); +}; diff --git a/apps/dokploy/components/dashboard/swarm/applications/columns.tsx b/apps/dokploy/components/dashboard/swarm/applications/columns.tsx index 362cb29b..69ccc41d 100644 --- a/apps/dokploy/components/dashboard/swarm/applications/columns.tsx +++ b/apps/dokploy/components/dashboard/swarm/applications/columns.tsx @@ -1,9 +1,17 @@ import type { ColumnDef } from "@tanstack/react-table"; -import { ArrowUpDown } from "lucide-react"; +import { ArrowUpDown, MoreHorizontal } from "lucide-react"; import * as React from "react"; import { Button } from "@/components/ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuLabel, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; + import { Badge } from "@/components/ui/badge"; +import { ShowDockerModalStackLogs } from "../../docker/logs/show-docker-modal-stack-logs"; export interface ApplicationList { ID: string; @@ -16,6 +24,7 @@ export interface ApplicationList { DesiredState: string; Error: string; Node: string; + serverId: string; } export const columns: ColumnDef[] = [ @@ -203,4 +212,34 @@ export const columns: ColumnDef[] = [ return
{row.getValue("Errors")}
; }, }, + { + accessorKey: "Logs", + accessorFn: (row) => row.Error, + header: ({ column }) => { + return Logs; + }, + cell: ({ row }) => { + return ( + + + + + + + Actions + + View Logs + + + + + ); + }, + }, ]; diff --git a/apps/dokploy/components/dashboard/swarm/applications/show-applications.tsx b/apps/dokploy/components/dashboard/swarm/applications/show-applications.tsx index 132cb008..df764225 100644 --- a/apps/dokploy/components/dashboard/swarm/applications/show-applications.tsx +++ b/apps/dokploy/components/dashboard/swarm/applications/show-applications.tsx @@ -89,6 +89,7 @@ export const ShowNodeApplications = ({ serverId }: Props) => { Error: detail.Error, Node: detail.Node, Ports: detail.Ports || app.Ports, + serverId: serverId || "", })); }); diff --git a/packages/server/src/services/docker.ts b/packages/server/src/services/docker.ts index 8835835d..9a40893e 100644 --- a/packages/server/src/services/docker.ts +++ b/packages/server/src/services/docker.ts @@ -460,8 +460,6 @@ export const getApplicationInfo = async ( .split("\n") .map((line) => JSON.parse(line)); - console.log(appArray); - return appArray; } catch (error) {} };