{new Date(cert.valid_from).toLocaleDateString()}
@@ -140,7 +155,7 @@ export default function ArchiveManagementTable({
))}
{filteredCertificates.length === 0 && (
-
+
No versions found.
diff --git a/src/components/admin/RootCaTable.tsx b/src/components/admin/RootCaTable.tsx
index 81e1807..841ae04 100644
--- a/src/components/admin/RootCaTable.tsx
+++ b/src/components/admin/RootCaTable.tsx
@@ -21,6 +21,7 @@ interface CaCertificate {
valid_from: string;
valid_to: string;
status: string;
+ issuer_name?: string;
}
interface RootCaTableProps {
@@ -79,6 +80,9 @@ export default function RootCaTable({
{t("common_name_th")}
+
+ {t("issuer_th")}
+
{t("serial_th")}
@@ -103,6 +107,17 @@ export default function RootCaTable({
{cert.common_name}
+
+ {cert.issuer_name === "Self-Signed" ? (
+
+ {t("self_signed")}
+
+ ) : (
+
+ {cert.issuer_name || "-"}
+
+ )}
+
{cert.serial_number}
@@ -127,7 +142,7 @@ export default function RootCaTable({
))}
{filteredCertificates.length === 0 && (
-
+
{searchTerm ? t("no_ca_search", { term: searchTerm }) : t("no_ca_found")}
diff --git a/src/components/ui/badge/Badge.tsx b/src/components/ui/badge/Badge.tsx
index 9c60553..a99982d 100644
--- a/src/components/ui/badge/Badge.tsx
+++ b/src/components/ui/badge/Badge.tsx
@@ -1,6 +1,6 @@
import React from "react";
-type BadgeVariant = "light" | "solid";
+type BadgeVariant = "light" | "solid" | "outline";
type BadgeSize = "sm" | "md";
type BadgeColor =
| "primary"
@@ -18,6 +18,7 @@ interface BadgeProps {
startIcon?: React.ReactNode; // Icon at the start
endIcon?: React.ReactNode; // Icon at the end
children: React.ReactNode; // Badge content
+ className?: string; // Additional classes
}
const Badge: React.FC
= ({
@@ -27,6 +28,7 @@ const Badge: React.FC = ({
startIcon,
endIcon,
children,
+ className = "",
}) => {
const baseStyles =
"inline-flex items-center px-2.5 py-0.5 justify-center gap-1 rounded-full font-medium";
@@ -61,6 +63,16 @@ const Badge: React.FC = ({
light: "bg-gray-400 dark:bg-white/5 text-white dark:text-white/80",
dark: "bg-gray-700 text-white dark:text-white",
},
+ outline: {
+ primary: "border border-brand-500 text-brand-500 dark:text-brand-400",
+ success:
+ "border border-success-500 text-success-600 dark:text-success-500",
+ error: "border border-error-500 text-error-600 dark:text-error-500",
+ warning: "border border-warning-500 text-warning-600 dark:text-orange-400",
+ info: "border border-blue-light-500 text-blue-light-500 dark:text-blue-light-500",
+ light: "border border-gray-200 text-gray-700 dark:border-white/10 dark:text-white/80",
+ dark: "border border-gray-700 text-white dark:border-white/20 dark:text-white",
+ },
};
// Get styles based on size and color variant
@@ -68,7 +80,7 @@ const Badge: React.FC = ({
const colorStyles = variants[variant][color];
return (
-
+
{startIcon && {startIcon}}
{children}
{endIcon && {endIcon}}
diff --git a/src/messages/en.json b/src/messages/en.json
index a0e9f7b..36c9991 100644
--- a/src/messages/en.json
+++ b/src/messages/en.json
@@ -664,6 +664,7 @@
"search_placeholder": "Search CAs...",
"type_th": "Type",
"common_name_th": "Common Name",
+ "issuer_th": "Issued By",
"serial_th": "Serial Number",
"validity_th": "Validity Period",
"status_th": "Status",
@@ -671,6 +672,7 @@
"validity_to_label": "to",
"status_valid": "Valid",
"status_expired": "Expired",
+ "self_signed": "Self-Signed",
"renew_button": "Renew Now",
"no_ca_search": "No CAs matched \"{term}\"",
"no_ca_found": "No Root CA certificates found. Run CA Setup from Certificates page."
diff --git a/src/messages/id.json b/src/messages/id.json
index c0511ac..9cb76f3 100644
--- a/src/messages/id.json
+++ b/src/messages/id.json
@@ -664,6 +664,7 @@
"search_placeholder": "Cari CA...",
"type_th": "Tipe",
"common_name_th": "Common Name",
+ "issuer_th": "Diterbitkan Oleh",
"serial_th": "Nomor Seri",
"validity_th": "Masa Berlaku",
"status_th": "Status",
@@ -671,6 +672,7 @@
"validity_to_label": "ke",
"status_valid": "Valid",
"status_expired": "Kedaluwarsa",
+ "self_signed": "Self-Signed",
"renew_button": "Perbarui",
"no_ca_search": "Tidak ada CA yang cocok dengan \"{term}\"",
"no_ca_found": "Sertifikat Root CA tidak ditemukan. Jalankan Pengaturan CA dari halaman Sertifikat."