Watch
1
0
Fork
You've already forked pkg-proxy
1
mirror of https://github.com/git-pkgs/proxy.git synced 2026-11-11 16:49:17 -05:00
pkg-proxy/internal/server/templates/pages/project_show.html
Simon Chrzanowski b5eec9c696 Drop vulnerability markers from the project inventory
The vulnerabilities table is only written by tests: nothing in the proxy
calls UpsertVulnerability, so the dashboard card, the per-project count
and the per-component markers were always empty. Remove them along with
GetComponentVulnerabilities and inventory.Affected, and keep the
outdated marker, which uses the latest version the handlers record.
2026-10-27 20:15:50 +01:00

59 lines
3.8 KiB
HTML

{{define "title"}}{{.Project.Name}} - git-pkgs proxy{{end}}
{{define "content"}}
<div class="mb-8">
<a href="/ui/projects" class="text-sm text-blue-600 dark:text-blue-400 hover:underline">← Projects</a>
<h1 class="text-3xl font-bold mt-2 mb-2 break-all">{{.Project.Name}}</h1>
<p class="text-gray-600 dark:text-gray-400">
{{.Project.Components}} packages, uploaded {{.Project.UploadedAt}}{{if .Project.Branch}} from <span class="font-mono">{{.Project.Branch}}</span>{{end}}{{if .Project.Ref}} at <span class="font-mono">{{.Project.Ref}}</span>{{end}}
</p>
{{if .Outdated}}
<div class="flex gap-2 mt-3">
<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-amber-100 text-amber-700 dark:bg-amber-900 dark:text-amber-300">{{.Outdated}} outdated</span>
</div>
{{end}}
<div id="project-delete" class="mt-4" data-project="{{.Project.Name}}">
<button type="button" id="project-delete-start" class="text-sm px-3 py-1.5 rounded-lg border border-red-300 text-red-700 hover:bg-red-50 dark:border-red-800 dark:text-red-400 dark:hover:bg-red-950">Delete project</button>
<form id="project-delete-form" class="hidden flex-wrap items-center gap-2">
<label for="project-delete-token" class="text-sm text-gray-600 dark:text-gray-400">Upload token</label>
<input type="password" id="project-delete-token" autocomplete="off" required class="text-sm px-2 py-1.5 rounded-lg border border-gray-300 bg-white dark:border-gray-700 dark:bg-gray-900">
<button type="submit" class="text-sm px-3 py-1.5 rounded-lg bg-red-600 text-white hover:bg-red-700">Delete {{.Project.Name}}</button>
<button type="button" id="project-delete-cancel" class="text-sm px-3 py-1.5 rounded-lg border border-gray-300 hover:bg-gray-50 dark:border-gray-700 dark:hover:bg-gray-800">Cancel</button>
</form>
<p id="project-delete-error" class="hidden mt-2 text-sm text-red-700 dark:text-red-400"></p>
</div>
</div>
<script src="/ui/static/project-delete.js" defer></script>
{{if .Components}}
<div class="bg-white dark:bg-gray-900 rounded-xl shadow-sm border border-gray-200 dark:border-gray-800">
<div class="divide-y divide-gray-200 dark:divide-gray-800">
{{range .Components}}
<div class="px-6 py-3 flex flex-col sm:flex-row sm:items-center justify-between gap-2">
<div class="min-w-0 flex items-center gap-2">
{{template "ecosystem_badge" .Ecosystem}}
{{if .Cached}}
<a href="/ui/package/{{.CachedEcosystem}}/{{.CachedName}}" class="font-medium truncate hover:text-blue-600 dark:hover:text-blue-400">{{.Name}}</a>
{{else}}
<span class="font-medium truncate">{{.Name}}</span>
{{end}}
<span class="shrink-0 font-mono text-sm text-gray-500 dark:text-gray-400">{{.Version}}</span>
</div>
<div class="flex items-center gap-2 shrink-0">
{{if .Outdated}}
<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-amber-100 text-amber-700 dark:bg-amber-900 dark:text-amber-300" title="latest is {{.LatestVersion}}">outdated, latest {{.LatestVersion}}</span>
{{end}}
{{if not .Cached}}
<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400">not cached</span>
{{end}}
</div>
</div>
{{end}}
</div>
</div>
{{else}}
<div class="bg-white dark:bg-gray-900 rounded-xl shadow-sm border border-gray-200 dark:border-gray-800 p-12 text-center">
<p class="text-gray-500 dark:text-gray-400">The latest SBOM lists no packages the proxy serves</p>
</div>
{{end}}
{{end}}