Phase2.5: Skill SetUp Process
All checks were successful
Build and Push / build (push) Successful in 1m39s
All checks were successful
Build and Push / build (push) Successful in 1m39s
This commit is contained in:
@@ -2,6 +2,7 @@ import { getSessionUser } from "@/lib/session";
|
||||
import { getTranslations } from "next-intl/server";
|
||||
import { redirect } from "next/navigation";
|
||||
import { listTenants } from "@/lib/k8s";
|
||||
import { countPendingSkillActivationRequests } from "@/lib/db";
|
||||
import { AdminPanel } from "@/components/admin/admin-panel";
|
||||
|
||||
export default async function AdminPage() {
|
||||
@@ -19,6 +20,12 @@ export default async function AdminPage() {
|
||||
}
|
||||
|
||||
const tenants = await listTenants();
|
||||
// Phase 2.5: badge counter for the skill-activation admin queue.
|
||||
// Cheap COUNT(*) on a partial-indexed status='pending' column —
|
||||
// bounded by request volume and never expected to be high.
|
||||
const pendingSkillCount = await countPendingSkillActivationRequests().catch(
|
||||
() => 0
|
||||
);
|
||||
|
||||
return (
|
||||
<div>
|
||||
@@ -33,6 +40,21 @@ export default async function AdminPage() {
|
||||
than nav-shell entries — these are platform-team utilities,
|
||||
not main navigation. */}
|
||||
<div className="flex items-center gap-2">
|
||||
<a
|
||||
href="/admin/skills/pending"
|
||||
className={`text-sm px-4 py-2 rounded-lg border transition-colors flex items-center gap-2 ${
|
||||
pendingSkillCount > 0
|
||||
? "border-warning text-warning hover:bg-warning/10"
|
||||
: "border-border text-text-secondary hover:text-text-primary hover:border-text-secondary"
|
||||
}`}
|
||||
>
|
||||
<span>{t("skillsQueueTool")}</span>
|
||||
{pendingSkillCount > 0 && (
|
||||
<span className="text-xs px-1.5 py-0.5 rounded bg-warning text-surface-0 font-semibold">
|
||||
{pendingSkillCount}
|
||||
</span>
|
||||
)}
|
||||
</a>
|
||||
<a
|
||||
href="/admin/billing"
|
||||
className="text-sm px-4 py-2 rounded-lg border border-border text-text-secondary hover:text-text-primary hover:border-text-secondary transition-colors"
|
||||
|
||||
Reference in New Issue
Block a user