change metadata version to version

This commit is contained in:
Graham McIntire 2026-02-09 17:39:33 -06:00
parent 95eafd0c47
commit 144e04b998
No known key found for this signature in database
3 changed files with 35 additions and 19 deletions

View file

@ -116,4 +116,20 @@ defmodule ToweropsWeb.AgentLive.Helpers do
full = format_datetime(datetime, timezone)
"#{relative} (#{full})"
end
@doc """
Formats agent version for display.
Handles both legacy semver ("1.2.3") and RFC 3339 timestamp ("2026-02-09T14:30:00Z") formats.
Timestamps are displayed as date only (e.g., "2026-02-09").
"""
def format_agent_version(version) when is_binary(version) do
if String.match?(version, ~r/^\d{4}-\d{2}-\d{2}T/) do
String.slice(version, 0, 10)
else
"v#{version}"
end
end
def format_agent_version(_), do: nil
end

View file

@ -126,16 +126,16 @@
<% end %>
</:col>
<:col :let={{_id, agent}} label="Metadata">
<%= if agent.metadata["hostname"] do %>
<div class="text-sm text-gray-600 dark:text-gray-400">
<.icon name="hero-computer-desktop" class="h-4 w-4 inline" />
{agent.metadata["hostname"]}
<:col :let={{_id, agent}} label="Version">
<%= if agent.metadata["version"] do %>
<div class="text-sm text-gray-600 dark:text-gray-400 font-mono">
{format_agent_version(agent.metadata["version"])}
</div>
<% end %>
<%= if agent.metadata["version"] do %>
<div class="text-xs text-gray-500 dark:text-gray-400 mt-0.5 font-mono">
v{agent.metadata["version"]}
<%= if agent.metadata["hostname"] do %>
<div class="text-xs text-gray-500 dark:text-gray-400 mt-0.5">
<.icon name="hero-computer-desktop" class="h-3.5 w-3.5 inline" />
{agent.metadata["hostname"]}
</div>
<% end %>
</:col>
@ -243,16 +243,16 @@
<% end %>
</:col>
<:col :let={{_id, agent}} label="Metadata">
<%= if agent.metadata["hostname"] do %>
<div class="text-sm text-gray-600 dark:text-gray-400">
<.icon name="hero-computer-desktop" class="h-4 w-4 inline" />
{agent.metadata["hostname"]}
<:col :let={{_id, agent}} label="Version">
<%= if agent.metadata["version"] do %>
<div class="text-sm text-gray-600 dark:text-gray-400 font-mono">
{format_agent_version(agent.metadata["version"])}
</div>
<% end %>
<%= if agent.metadata["version"] do %>
<div class="text-xs text-gray-500 dark:text-gray-400 mt-0.5 font-mono">
v{agent.metadata["version"]}
<%= if agent.metadata["hostname"] do %>
<div class="text-xs text-gray-500 dark:text-gray-400 mt-0.5">
<.icon name="hero-computer-desktop" class="h-3.5 w-3.5 inline" />
{agent.metadata["hostname"]}
</div>
<% end %>
</:col>

View file

@ -204,18 +204,18 @@
</div>
</div>
<!-- Agent Metadata -->
<!-- Agent Details -->
<%= if @agent_token.metadata && map_size(@agent_token.metadata) > 0 do %>
<div class="mt-6 bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-white/10 rounded-lg p-6">
<h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-4">
Agent Metadata
Agent Details
</h3>
<dl class="grid grid-cols-1 gap-4 sm:grid-cols-2">
<%= if @agent_token.metadata["version"] do %>
<div>
<dt class="text-sm font-medium text-gray-600 dark:text-gray-400">Version</dt>
<dd class="mt-1 text-sm text-gray-900 dark:text-white font-mono">
{@agent_token.metadata["version"]}
{format_agent_version(@agent_token.metadata["version"])}
</dd>
</div>
<% end %>