feat: finish the docker plugin (B15)

This commit is contained in:
LukeGus committed 2026-09-24 11:58:20 -05:00
1 parent 0a3f05d99d
commit 993a91c899
167 files changed
+26299 -5136

No files matched your search

+2 -14
View File
@@ -163,23 +163,13 @@ export function createHostEditorForm(
host?.enableCommandHistory ?? d?.enableCommandHistory ?? true,
enableFileManager: host?.enableFileManager ?? false,
scpLegacy: host?.scpLegacy ?? false,
enableDocker: host?.enableDocker ?? false,
dockerConfig: host?.dockerConfig ?? { runtime: "docker" as const },
enableTmuxMonitor: host?.enableTmuxMonitor ?? false,
enableTerminalToolbar: host?.enableTerminalToolbar ?? true,
enableAiAssistant: host?.enableAiAssistant ?? false,
enableProxmox: (proxmoxSettings.enableProxmox as boolean) ?? false,
// The proxmox tab fills in its own defaults when this is unset.
proxmoxConfig:
((proxmoxSettings.proxmoxConfig as Host["proxmoxConfig"]) ?? {
defaultCredentialId: null,
defaultAuthType: "password",
windowsPatterns: "win, windows",
dockerPatterns: "docker",
preferredPrefixes: "10., 192.168.",
autoSyncEnabled: false,
syncIntervalMinutes: 15,
markMissingGuests: true,
}) as Host["proxmoxConfig"],
(proxmoxSettings.proxmoxConfig as Host["proxmoxConfig"]) ?? null,
enableProxmoxStats:
(proxmoxSettings.enableProxmoxStats as boolean) ?? false,
proxmoxStatsConfig:
@@ -436,8 +426,6 @@ export function buildHostEditorPayload(
enableCommandHistory: form.enableCommandHistory,
enableFileManager: form.enableFileManager,
scpLegacy: form.scpLegacy,
enableDocker: form.enableDocker,
dockerConfig: form.enableDocker ? form.dockerConfig : null,
enableTmuxMonitor: form.enableTmuxMonitor,
enableTerminalToolbar: form.enableTerminalToolbar,
enableAiAssistant: form.enableAiAssistant,
-2
View File
@@ -95,8 +95,6 @@ export function sshHostToHost(h: SSHHostWithStatus): Host {
enableCommandHistory: h.enableCommandHistory ?? true,
enableTunnel: h.enableTunnel ?? false,
enableFileManager: h.enableFileManager ?? true,
enableDocker: h.enableDocker ?? false,
dockerConfig: h.dockerConfig ?? null,
enableWebUi: h.enableWebUi ?? false,
enableProxmox: (proxmoxSettings.enableProxmox as boolean) ?? false,
enableProxmoxStats:
+15 -21
View File
@@ -152,8 +152,7 @@ function hostPassesFilters(host: Host, filters: FilterState): boolean {
}
if (filters.features.length > 0) {
const ok =
(filters.features.includes("fileManager") && host.enableFileManager) ||
(filters.features.includes("docker") && host.enableDocker);
filters.features.includes("fileManager") && host.enableFileManager;
if (!ok) return false;
}
if (filters.tags.length > 0) {
@@ -355,7 +354,6 @@ export function HostsPanel({
enableTerminal: true,
enableTunnel: false,
enableFileManager: true,
enableDocker: false,
defaultPath: "/var/www",
},
{
@@ -373,7 +371,6 @@ export function HostsPanel({
enableTerminal: true,
enableTunnel: true,
enableFileManager: false,
enableDocker: false,
},
],
},
@@ -780,23 +777,20 @@ export function HostsPanel({
<DropdownMenuLabel>
{t("hosts.filterFeaturesGroup")}
</DropdownMenuLabel>
{(
[
["fileManager", "FileManager"],
["docker", "Docker"],
] as const
).map(([val, key]) => (
<DropdownMenuCheckboxItem
key={val}
checked={filterState.features.includes(val)}
onCheckedChange={() =>
handleFilterToggle("features", val)
}
onSelect={(e) => e.preventDefault()}
>
{t(`hosts.filterFeature${key}`)}
</DropdownMenuCheckboxItem>
))}
{([["fileManager", "FileManager"]] as const).map(
([val, key]) => (
<DropdownMenuCheckboxItem
key={val}
checked={filterState.features.includes(val)}
onCheckedChange={() =>
handleFilterToggle("features", val)
}
onSelect={(e) => e.preventDefault()}
>
{t(`hosts.filterFeature${key}`)}
</DropdownMenuCheckboxItem>
),
)}
{allTags.length > 0 && (
<>
<DropdownMenuSeparator />
-2
View File
@@ -44,7 +44,6 @@ export const FIELD_GROUP_KEYS: Record<FieldGroup, string[]> = {
"enableTerminalToolbar",
"enableAiAssistant",
"enableFileManager",
"enableDocker",
"enableWebUi",
"enableProxmox",
"enableTmuxMonitor",
@@ -59,7 +58,6 @@ export const FIELD_GROUP_KEYS: Record<FieldGroup, string[]> = {
advanced: [
"statusCheckEnabled",
"statusCheckInterval",
"dockerConfig",
"webUiConfig",
"proxmoxConfig",
"terminalConfig",
-3
View File
@@ -34,7 +34,6 @@ export function createQuickConnectHost(input: QuickConnectInput): Host {
enableCommandHistory: false,
enableFileManager: false,
enableTunnel: false,
enableDocker: false,
enableTerminalToolbar: false,
enableAiAssistant: false,
enableSsh: false,
@@ -71,7 +70,6 @@ export function createQuickConnectHost(input: QuickConnectInput): Host {
enableCommandHistory: true,
enableFileManager: true,
enableTunnel: true,
enableDocker: true,
enableProxmox: false,
enableProxmoxStats: false,
enableTmuxMonitor: false,
@@ -102,7 +100,6 @@ export function quickConnectHostToPayload(host: Host): SSHHostData {
enableCommandHistory: host.enableCommandHistory,
enableFileManager: host.enableFileManager,
enableTunnel: host.enableTunnel,
enableDocker: host.enableDocker,
enableProxmox: host.enableProxmox,
enableTmuxMonitor: host.enableTmuxMonitor,
enableTerminalToolbar: host.enableTerminalToolbar,
-14
View File
@@ -11,7 +11,6 @@ import { useTranslation } from "react-i18next";
import { useVirtualizer } from "@tanstack/react-virtual";
import { useAreaPreferences } from "@/contexts/UiPreferencesContext";
import {
Box,
Boxes,
ChevronDown,
Download,
@@ -612,7 +611,6 @@ export function SidebarTree({
enableTerminal: host.enableTerminal,
enableTunnel: host.enableTunnel,
enableFileManager: host.enableFileManager,
enableDocker: host.enableDocker,
sshPort: host.sshPort,
rdpUser: host.rdpUser ?? null,
rdpPassword: host.rdpPassword ?? null,
@@ -1173,18 +1171,6 @@ export function SidebarTree({
value: false,
icon: FolderSearch,
},
{
labelKey: "hosts.enableDockerFeature",
field: "enableDocker",
value: true,
icon: Box,
},
{
labelKey: "hosts.disableDockerFeature",
field: "enableDocker",
value: false,
icon: Box,
},
{
labelKey: "hosts.enableProxmoxFeature",
field: "enableProxmox",