Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions frontend/messages/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Quelle:",
"containers_no_mounts_configured": "Keine Volumes oder Mounts konfiguriert",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Container",
"container_name_required": "Containername ist erforderlich",
"container_image_required": "Image ist erforderlich",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Bearbeitung von {file} für das Projekt {project}",
"compose_editor_viewing_info": "Anzeige von {file} für das Projekt {project}",
"tabs_compose": "Komponieren Sie",
"tabs_inspect": "Inspect",
"tabs_environment": "Umgebung",
"tabs_volumes": "Volumes",
"tabs_network_security": "Netzwerk & Sicherheit",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/el.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Πηγή:",
"containers_no_mounts_configured": "Δεν έχουν ρυθμιστεί τόμοι ή προσαρτήσεις",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Container",
"container_name_required": "Απαιτείται όνομα container",
"container_image_required": "Απαιτείται image",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Επεξεργασία {file} για το έργο {project}",
"compose_editor_viewing_info": "Προβολή {file} για το έργο {project}",
"tabs_compose": "Σύνθεση",
"tabs_inspect": "Inspect",
"tabs_environment": "Περιβάλλον",
"tabs_volumes": "Τόμοι",
"tabs_network_security": "Δίκτυο & Ασφάλεια",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Source:",
"containers_no_mounts_configured": "No volumes or mounts configured",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Container",
"container_name_required": "Container name is required",
"container_image_required": "Image is required",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Editing {file} for project {project}",
"compose_editor_viewing_info": "Viewing {file} for project {project}",
"tabs_compose": "Compose",
"tabs_inspect": "Inspect",
"tabs_environment": "Environment",
"tabs_volumes": "Volumes",
"tabs_network_security": "Network & Security",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/eo.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Gastiganto:",
"containers_mount_label_source": "Fonto:",
"containers_no_mounts_configured": "Neniuj portiloj aŭ muntadoj agorditaj",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Ujo",
"container_name_required": "Uj-nomo estas postulata",
"container_image_required": "Prakopio estas postulata",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Editing {file} for project {project}",
"compose_editor_viewing_info": "Viewing {file} for project {project}",
"tabs_compose": "Compose",
"tabs_inspect": "Inspect",
"tabs_environment": "Medio",
"tabs_volumes": "Portiloj",
"tabs_network_security": "Reto kaj sekureco",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Anfitrión:",
"containers_mount_label_source": "Fuente:",
"containers_no_mounts_configured": "Ningún volumen o montajes configurados",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Contenedor",
"container_name_required": "El nombre del contenedor es obligatorio",
"container_image_required": "Imagen requerida",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Edición de {file} para el proyecto {project}",
"compose_editor_viewing_info": "Visualización de {file} para el proyecto {project}",
"tabs_compose": "Componga",
"tabs_inspect": "Inspect",
"tabs_environment": "Entorno",
"tabs_volumes": "Volúmenes",
"tabs_network_security": "Redes y seguridad",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Source:",
"containers_no_mounts_configured": "No volumes or mounts configured",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Conteneur",
"container_name_required": "Container name is required",
"container_image_required": "Image is required",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Modification de {file} pour le projet {project}",
"compose_editor_viewing_info": "Visualisation de {file} pour le projet {project}",
"tabs_compose": "Composer",
"tabs_inspect": "Inspect",
"tabs_environment": "Environment",
"tabs_volumes": "Volumes",
"tabs_network_security": "Network & Security",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Origine:",
"containers_no_mounts_configured": "Nessun volume o mount configurato",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Container",
"container_name_required": "Il nome del container è obbligatorio",
"container_image_required": "L'immagine è obbligatoria",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Modifica di {file} per il progetto {project}",
"compose_editor_viewing_info": "Visualizzazione di {file} per il progetto {project}",
"tabs_compose": "Comporre",
"tabs_inspect": "Inspect",
"tabs_environment": "Ambiente",
"tabs_volumes": "Volumi",
"tabs_network_security": "Rete & sicurezza",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Source:",
"containers_no_mounts_configured": "No volumes or mounts configured",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Container",
"container_name_required": "Container name is required",
"container_image_required": "Image is required",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "{file} を編集中 {project}",
"compose_editor_viewing_info": "プロジェクト {project} の {file} を見る",
"tabs_compose": "作曲する",
"tabs_inspect": "Inspect",
"tabs_environment": "Environment",
"tabs_volumes": "Volumes",
"tabs_network_security": "Network & Security",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "호스트:",
"containers_mount_label_source": "소스:",
"containers_no_mounts_configured": "구성된 볼륨 또는 마운트 없음",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "컨테이너",
"container_name_required": "컨테이너 이름은 필수입니다",
"container_image_required": "이미지는 필수입니다",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "프로젝트 {project} 편집 {file}",
"compose_editor_viewing_info": "프로젝트 {project} 보기 {file}",
"tabs_compose": "작성",
"tabs_inspect": "Inspect",
"tabs_environment": "환경",
"tabs_volumes": "볼륨",
"tabs_network_security": "네트워크 & 보안",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/nl.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Bron:",
"containers_no_mounts_configured": "Geen volumes of koppelingen geconfigureerd",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Container",
"container_name_required": "Container naam is vereist",
"container_image_required": "Afbeelding is vereist",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Bewerken van {file} voor project {project}",
"compose_editor_viewing_info": "{file} bekijken voor project {project}",
"tabs_compose": "Samenstellen",
"tabs_inspect": "Inspect",
"tabs_environment": "Milieu",
"tabs_volumes": "Volumes",
"tabs_network_security": "Netwerk & beveiliging",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/pt-BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Origem:",
"containers_no_mounts_configured": "Sem volumes ou montagens configuradas",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Container",
"container_name_required": "Nome do contêiner é obrigatório",
"container_image_required": "Requer imagem",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Processando {file} para o projeto {project}",
"compose_editor_viewing_info": "Visualizando {file} para o projeto {project}",
"tabs_compose": "Compor",
"tabs_inspect": "Inspect",
"tabs_environment": "Ambiente",
"tabs_volumes": "Volumes",
"tabs_network_security": "Rede e Segurança",
Expand Down
2 changes: 2 additions & 0 deletions frontend/messages/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Origem:",
"containers_no_mounts_configured": "Sem volumes ou montagens configuradas",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Contêiner",
"container_name_required": "Nome do contêiner é obrigatório",
"container_image_required": "Requer imagem",
Comment on lines 389 to 394
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Missing tabs_inspect key

pt.json is the only locale file that does not include the new tabs_inspect key. All 17 other locales in this PR add it. Without this key the Portuguese locale will either render a broken/empty tab label or fall back to the English value depending on how paraglide handles missing keys.

Add "tabs_inspect": "Inspect", near the other tabs_* entries in pt.json (mirroring every other locale file).

Prompt To Fix With AI
This is a comment left during a code review.
Path: frontend/messages/pt.json
Line: 389-396

Comment:
**Missing `tabs_inspect` key**

`pt.json` is the only locale file that does not include the new `tabs_inspect` key. All 17 other locales in this PR add it. Without this key the Portuguese locale will either render a broken/empty tab label or fall back to the English value depending on how paraglide handles missing keys.

Add `"tabs_inspect": "Inspect",` near the other `tabs_*` entries in `pt.json` (mirroring every other locale file).

How can I resolve this? If you propose a fix, please make it concise.

Fix in Codex

Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Хост:",
"containers_mount_label_source": "Источник:",
"containers_no_mounts_configured": "Нет настроенных томов или смонтированных",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Контейнер",
"container_name_required": "Необходимо указать имя контейнера",
"container_image_required": "Изображение обязательно",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Редактирование {file} для проекта {project}",
"compose_editor_viewing_info": "Просмотр {file} для проекта {project}",
"tabs_compose": "Составьте",
"tabs_inspect": "Inspect",
"tabs_environment": "Переменные среды",
"tabs_volumes": "Тома",
"tabs_network_security": "Сеть и безопасность",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/sv.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Source:",
"containers_no_mounts_configured": "No volumes or mounts configured",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Container",
"container_name_required": "Container name is required",
"container_image_required": "Image is required",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Redigering av {file} för projekt {project}",
"compose_editor_viewing_info": "Visning av {file} för projekt {project}",
"tabs_compose": "Komponera",
"tabs_inspect": "Inspect",
"tabs_environment": "Environment",
"tabs_volumes": "Volumes",
"tabs_network_security": "Network & Security",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/uk.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Source:",
"containers_no_mounts_configured": "No volumes or mounts configured",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Container",
"container_name_required": "Container name is required",
"container_image_required": "Image is required",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Редагування {file} для проекту {project}",
"compose_editor_viewing_info": "Перегляд {file} для проекту {project}",
"tabs_compose": "Скласти",
"tabs_inspect": "Inspect",
"tabs_environment": "Environment",
"tabs_volumes": "Volumes",
"tabs_network_security": "Network & Security",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/vi.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Nguồn:",
"containers_no_mounts_configured": "Không có Volume hoặc Mount nào được cấu hình",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Container",
"container_name_required": "Yêu cầu tên Container",
"container_image_required": "Yêu cầu Image",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "Chỉnh sửa {file} cho dự án {project}",
"compose_editor_viewing_info": "Xem {file} cho dự án {project}",
"tabs_compose": "Soạn thảo",
"tabs_inspect": "Inspect",
"tabs_environment": "Môi trường",
"tabs_volumes": "Volumes",
"tabs_network_security": "Mạng & Bảo mật",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "源:",
"containers_no_mounts_configured": "未配置数据卷或挂载",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "容器",
"container_name_required": "请输入容器名",
"container_image_required": "必须提供镜像",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "为项目 {project} 编辑 {file}",
"compose_editor_viewing_info": "查看 {file} 的项目 {project}",
"tabs_compose": "编曲",
"tabs_inspect": "Inspect",
"tabs_environment": "环境",
"tabs_volumes": "数据卷",
"tabs_network_security": "网络与安全",
Expand Down
3 changes: 3 additions & 0 deletions frontend/messages/zh-TW.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@
"containers_mount_label_host": "主機位址:",
"containers_mount_label_source": "來源:",
"containers_no_mounts_configured": "沒有設定資料卷或掛載",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "容器",
"container_name_required": "容器名稱為必填欄位",
"container_image_required": "映像檔為必填欄位",
Expand Down Expand Up @@ -564,6 +566,7 @@
"compose_editor_editing_info": "編輯 {project} 專案中的 {file}",
"compose_editor_viewing_info": "檢視 {project} 專案中的 {file}",
"tabs_compose": "Compose",
"tabs_inspect": "Inspect",
"tabs_environment": "環境",
"tabs_volumes": "資料卷",
"tabs_network_security": "網路與安全",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import ContainerLogsPanel from '../components/ContainerLogsPanel.svelte';
import ContainerShell from '../components/ContainerShell.svelte';
import ContainerComposePanel from '../components/ContainerComposePanel.svelte';
import ContainerInspect from '../components/ContainerInspect.svelte';
import ContainerDetailStatsSync from '../components/container-detail-stats-sync.svelte';
import IconImage from '$lib/components/icon-image.svelte';
import { getArcaneIconUrlFromLabels } from '$lib/utils/arcane-labels';
Expand Down Expand Up @@ -211,7 +212,8 @@
...(showConfiguration ? [{ value: 'config', label: m.common_configuration(), icon: SettingsIcon }] : []),
...(showNetworkTab ? [{ value: 'network', label: m.containers_nav_networks(), icon: NetworksIcon }] : []),
...(hasMounts ? [{ value: 'storage', label: m.containers_nav_storage(), icon: VolumesIcon }] : []),
...(showComposeTab ? [{ value: 'compose', label: m.tabs_compose(), icon: CodeIcon }] : [])
...(showComposeTab ? [{ value: 'compose', label: m.tabs_compose(), icon: CodeIcon }] : []),
{ value: 'inspect', label: m.tabs_inspect(), icon: CodeIcon }
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Duplicate icon for Inspect and Compose tabs

Both the Compose tab (line 215) and the new Inspect tab use CodeIcon. Consider using a distinct icon (e.g. a magnifying glass / search icon) to help users visually distinguish the two tabs at a glance.

Prompt To Fix With AI
This is a comment left during a code review.
Path: frontend/src/routes/(app)/containers/[containerId]/+page.svelte
Line: 216

Comment:
**Duplicate icon for Inspect and Compose tabs**

Both the Compose tab (line 215) and the new Inspect tab use `CodeIcon`. Consider using a distinct icon (e.g. a magnifying glass / search icon) to help users visually distinguish the two tabs at a glance.

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Codex

]);

const activeTab = $derived.by(() => {
Expand Down Expand Up @@ -373,6 +375,10 @@
</Tabs.Content>
{/if}
{/await}

<Tabs.Content value="inspect" class="h-full">
<ContainerInspect {container} />
</Tabs.Content>
{/snippet}
</TabbedPageLayout>
{:else}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<script lang="ts">
import * as Card from '$lib/components/ui/card';
import { CopyButton } from '$lib/components/ui/copy-button';
import { m } from '$lib/paraglide/messages';
import type { ContainerDetailsDto } from '$lib/types/container.type';
import { CodeIcon } from '$lib/icons';

interface Props {
container: ContainerDetailsDto;
}

let { container }: Props = $props();

const json = $derived(JSON.stringify(container, null, 2));
</script>

<Card.Root>
<Card.Header icon={CodeIcon}>
<div class="flex flex-col space-y-1.5">
<Card.Title>
<h2>{m.containers_inspect_title()}</h2>
</Card.Title>
<Card.Description>{m.containers_inspect_description()}</Card.Description>
</div>
<div class="ml-auto">
<CopyButton text={json} variant="outline" size="default">
{m.common_copy_json()}
</CopyButton>
</div>
</Card.Header>
<Card.Content class="p-0">
<pre class="bg-muted/40 overflow-auto rounded-b-lg p-4 font-mono text-xs leading-relaxed"><code>{json}</code></pre>
</Card.Content>
</Card.Root>
Loading