forked from baron/baron-sso
locales sync 및 포맷 반영
This commit is contained in:
@@ -81,9 +81,14 @@ const CreateIdpModal = ({
|
|||||||
<div className="fixed inset-0 bg-black/60 flex items-center justify-center z-50 backdrop-blur-sm">
|
<div className="fixed inset-0 bg-black/60 flex items-center justify-center z-50 backdrop-blur-sm">
|
||||||
<Card className="w-full max-w-lg shadow-2xl animate-in zoom-in-95 duration-200">
|
<Card className="w-full max-w-lg shadow-2xl animate-in zoom-in-95 duration-200">
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
<CardTitle>{t("ui.dev.clients.federation.add_title", "Add Identity Provider")}</CardTitle>
|
<CardTitle>
|
||||||
|
{t("ui.dev.clients.federation.add_title", "Add Identity Provider")}
|
||||||
|
</CardTitle>
|
||||||
<CardDescription>
|
<CardDescription>
|
||||||
{t("msg.dev.clients.federation.add_subtitle", "Connect an external OIDC provider.")}
|
{t(
|
||||||
|
"msg.dev.clients.federation.add_subtitle",
|
||||||
|
"Connect an external OIDC provider.",
|
||||||
|
)}
|
||||||
</CardDescription>
|
</CardDescription>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent>
|
<CardContent>
|
||||||
@@ -146,16 +151,22 @@ const CreateIdpModal = ({
|
|||||||
<Button type="button" variant="outline" onClick={onClose}>
|
<Button type="button" variant="outline" onClick={onClose}>
|
||||||
{t("ui.common.cancel", "Cancel")}
|
{t("ui.common.cancel", "Cancel")}
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
type="submit"
|
type="submit"
|
||||||
disabled={mutation.isPending || formData.display_name.trim() === "" || formData.issuer_url.trim() === ""}
|
disabled={
|
||||||
|
mutation.isPending ||
|
||||||
|
formData.display_name.trim() === "" ||
|
||||||
|
formData.issuer_url.trim() === ""
|
||||||
|
}
|
||||||
>
|
>
|
||||||
{mutation.isPending ? (
|
{mutation.isPending ? (
|
||||||
<div className="h-4 w-4 border-2 border-white/30 border-t-white rounded-full animate-spin mr-2" />
|
<div className="h-4 w-4 border-2 border-white/30 border-t-white rounded-full animate-spin mr-2" />
|
||||||
) : (
|
) : (
|
||||||
<Save size={16} className="mr-2" />
|
<Save size={16} className="mr-2" />
|
||||||
)}
|
)}
|
||||||
{mutation.isPending ? t("msg.common.saving", "Saving...") : t("ui.common.save", "Save Configuration")}
|
{mutation.isPending
|
||||||
|
? t("msg.common.saving", "Saving...")
|
||||||
|
: t("ui.common.save", "Save Configuration")}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
@@ -170,7 +181,11 @@ export function ClientFederationPage() {
|
|||||||
const [isCreateModalOpen, setCreateModalOpen] = useState(false);
|
const [isCreateModalOpen, setCreateModalOpen] = useState(false);
|
||||||
|
|
||||||
if (!clientId) {
|
if (!clientId) {
|
||||||
return <div className="p-8 text-center text-destructive">Client ID is missing</div>;
|
return (
|
||||||
|
<div className="p-8 text-center text-destructive">
|
||||||
|
Client ID is missing
|
||||||
|
</div>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const { data, isLoading, error } = useQuery({
|
const { data, isLoading, error } = useQuery({
|
||||||
@@ -187,7 +202,10 @@ export function ClientFederationPage() {
|
|||||||
{t("ui.dev.clients.federation.title", "Identity Federation")}
|
{t("ui.dev.clients.federation.title", "Identity Federation")}
|
||||||
</h1>
|
</h1>
|
||||||
<p className="text-muted-foreground">
|
<p className="text-muted-foreground">
|
||||||
{t("msg.dev.clients.federation.subtitle", "Manage external identity providers for this application.")}
|
{t(
|
||||||
|
"msg.dev.clients.federation.subtitle",
|
||||||
|
"Manage external identity providers for this application.",
|
||||||
|
)}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<Button onClick={() => setCreateModalOpen(true)} className="gap-2">
|
<Button onClick={() => setCreateModalOpen(true)} className="gap-2">
|
||||||
@@ -216,20 +234,34 @@ export function ClientFederationPage() {
|
|||||||
</TableRow>
|
</TableRow>
|
||||||
) : error ? (
|
) : error ? (
|
||||||
<TableRow>
|
<TableRow>
|
||||||
<TableCell colSpan={4} className="h-24 text-center text-destructive">
|
<TableCell
|
||||||
|
colSpan={4}
|
||||||
|
className="h-24 text-center text-destructive"
|
||||||
|
>
|
||||||
{(error as Error).message}
|
{(error as Error).message}
|
||||||
</TableCell>
|
</TableCell>
|
||||||
</TableRow>
|
</TableRow>
|
||||||
) : data?.length === 0 ? (
|
) : data?.length === 0 ? (
|
||||||
<TableRow>
|
<TableRow>
|
||||||
<TableCell colSpan={4} className="h-24 text-center text-muted-foreground">
|
<TableCell
|
||||||
{t("msg.dev.clients.federation.empty", "No IdP configurations found.")}
|
colSpan={4}
|
||||||
|
className="h-24 text-center text-muted-foreground"
|
||||||
|
>
|
||||||
|
{t(
|
||||||
|
"msg.dev.clients.federation.empty",
|
||||||
|
"No IdP configurations found.",
|
||||||
|
)}
|
||||||
</TableCell>
|
</TableCell>
|
||||||
</TableRow>
|
</TableRow>
|
||||||
) : (
|
) : (
|
||||||
data?.map((config: IdpConfig) => (
|
data?.map((config: IdpConfig) => (
|
||||||
<tr key={config.id} className="border-b transition-colors hover:bg-muted/50">
|
<tr
|
||||||
<TableCell className="font-medium">{config.display_name}</TableCell>
|
key={config.id}
|
||||||
|
className="border-b transition-colors hover:bg-muted/50"
|
||||||
|
>
|
||||||
|
<TableCell className="font-medium">
|
||||||
|
{config.display_name}
|
||||||
|
</TableCell>
|
||||||
<TableCell>{config.provider_type.toUpperCase()}</TableCell>
|
<TableCell>{config.provider_type.toUpperCase()}</TableCell>
|
||||||
<TableCell>
|
<TableCell>
|
||||||
<span
|
<span
|
||||||
@@ -247,7 +279,11 @@ export function ClientFederationPage() {
|
|||||||
<Button variant="ghost" size="icon" className="h-8 w-8">
|
<Button variant="ghost" size="icon" className="h-8 w-8">
|
||||||
<Edit className="h-4 w-4" />
|
<Edit className="h-4 w-4" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button variant="ghost" size="icon" className="h-8 w-8 text-destructive">
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
size="icon"
|
||||||
|
className="h-8 w-8 text-destructive"
|
||||||
|
>
|
||||||
<Trash2 className="h-4 w-4" />
|
<Trash2 className="h-4 w-4" />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -254,6 +254,11 @@ saved = "Saved"
|
|||||||
save_error = "Failed to save: {{error}}"
|
save_error = "Failed to save: {{error}}"
|
||||||
status_changed = "Status changed to {{status}}."
|
status_changed = "Status changed to {{status}}."
|
||||||
|
|
||||||
|
[msg.dev.clients.federation]
|
||||||
|
subtitle = "Manage external identity providers for this application."
|
||||||
|
add_subtitle = "Connect an external OIDC provider."
|
||||||
|
empty = "No IdP configurations found."
|
||||||
|
|
||||||
[msg.dev.clients.general.identity]
|
[msg.dev.clients.general.identity]
|
||||||
logo_help = "Logo Help"
|
logo_help = "Logo Help"
|
||||||
subtitle = "Subtitle"
|
subtitle = "Subtitle"
|
||||||
@@ -1020,10 +1025,14 @@ settings = "Settings"
|
|||||||
[ui.dev.clients.general]
|
[ui.dev.clients.general]
|
||||||
create = "Create Application"
|
create = "Create Application"
|
||||||
display_new = "Add Connected Application"
|
display_new = "Add Connected Application"
|
||||||
save = "Settings Save"
|
|
||||||
title_create = "Create Client"
|
title_create = "Create Client"
|
||||||
title_edit = "Client Settings"
|
title_edit = "Client Settings"
|
||||||
|
|
||||||
|
[ui.dev.clients.federation]
|
||||||
|
title = "Identity Federation"
|
||||||
|
add_title = "Add Identity Provider"
|
||||||
|
add_btn = "Add Provider"
|
||||||
|
|
||||||
[ui.dev.clients.general.breadcrumb]
|
[ui.dev.clients.general.breadcrumb]
|
||||||
section = "Applications"
|
section = "Applications"
|
||||||
|
|
||||||
|
|||||||
@@ -254,6 +254,11 @@ saved = "설정이 저장되었습니다."
|
|||||||
save_error = "저장 실패: {{error}}"
|
save_error = "저장 실패: {{error}}"
|
||||||
status_changed = "상태가 {{status}}로 변경되었습니다."
|
status_changed = "상태가 {{status}}로 변경되었습니다."
|
||||||
|
|
||||||
|
[msg.dev.clients.federation]
|
||||||
|
subtitle = "이 애플리케이션의 외부 IdP 설정을 관리합니다."
|
||||||
|
add_subtitle = "외부 OIDC 제공자를 연결합니다."
|
||||||
|
empty = "등록된 IdP 설정이 없습니다."
|
||||||
|
|
||||||
[msg.dev.clients.general.identity]
|
[msg.dev.clients.general.identity]
|
||||||
logo_help = "인증 화면에 표시될 PNG/SVG URL입니다."
|
logo_help = "인증 화면에 표시될 PNG/SVG URL입니다."
|
||||||
subtitle = "앱 이름과 설명, 로고를 설정합니다."
|
subtitle = "앱 이름과 설명, 로고를 설정합니다."
|
||||||
@@ -1020,10 +1025,14 @@ settings = "Settings"
|
|||||||
[ui.dev.clients.general]
|
[ui.dev.clients.general]
|
||||||
create = "앱 생성"
|
create = "앱 생성"
|
||||||
display_new = "연동 앱 추가"
|
display_new = "연동 앱 추가"
|
||||||
save = "설정 저장"
|
|
||||||
title_create = "Create Client"
|
title_create = "Create Client"
|
||||||
title_edit = "Client Settings"
|
title_edit = "Client Settings"
|
||||||
|
|
||||||
|
[ui.dev.clients.federation]
|
||||||
|
title = "Identity Federation"
|
||||||
|
add_title = "Add Identity Provider"
|
||||||
|
add_btn = "Add Provider"
|
||||||
|
|
||||||
[ui.dev.clients.general.breadcrumb]
|
[ui.dev.clients.general.breadcrumb]
|
||||||
section = "Applications"
|
section = "Applications"
|
||||||
|
|
||||||
|
|||||||
@@ -254,6 +254,11 @@ saved = ""
|
|||||||
save_error = ""
|
save_error = ""
|
||||||
status_changed = ""
|
status_changed = ""
|
||||||
|
|
||||||
|
[msg.dev.clients.federation]
|
||||||
|
subtitle = ""
|
||||||
|
add_subtitle = ""
|
||||||
|
empty = ""
|
||||||
|
|
||||||
[msg.dev.clients.general.identity]
|
[msg.dev.clients.general.identity]
|
||||||
logo_help = ""
|
logo_help = ""
|
||||||
subtitle = ""
|
subtitle = ""
|
||||||
@@ -1032,10 +1037,14 @@ settings = ""
|
|||||||
[ui.dev.clients.general]
|
[ui.dev.clients.general]
|
||||||
create = ""
|
create = ""
|
||||||
display_new = ""
|
display_new = ""
|
||||||
save = ""
|
|
||||||
title_create = ""
|
title_create = ""
|
||||||
title_edit = ""
|
title_edit = ""
|
||||||
|
|
||||||
|
[ui.dev.clients.federation]
|
||||||
|
title = ""
|
||||||
|
add_title = ""
|
||||||
|
add_btn = ""
|
||||||
|
|
||||||
[ui.dev.clients.general.breadcrumb]
|
[ui.dev.clients.general.breadcrumb]
|
||||||
section = ""
|
section = ""
|
||||||
|
|
||||||
|
|||||||
@@ -309,6 +309,12 @@ load_error = "Error loading client: {{error}}"
|
|||||||
loading = "Loading client..."
|
loading = "Loading client..."
|
||||||
saved = "Saved"
|
saved = "Saved"
|
||||||
save_error = "Failed to save: {{error}}"
|
save_error = "Failed to save: {{error}}"
|
||||||
|
status_changed = "Status changed to {{status}}."
|
||||||
|
|
||||||
|
[msg.dev.clients.federation]
|
||||||
|
subtitle = "Manage external identity providers for this application."
|
||||||
|
add_subtitle = "Connect an external OIDC provider."
|
||||||
|
empty = "No IdP configurations found."
|
||||||
|
|
||||||
[msg.dev.clients.general.identity]
|
[msg.dev.clients.general.identity]
|
||||||
logo_help = "Logo Help"
|
logo_help = "Logo Help"
|
||||||
@@ -1168,10 +1174,14 @@ settings = "Settings"
|
|||||||
[ui.dev.clients.general]
|
[ui.dev.clients.general]
|
||||||
create = "Create Application"
|
create = "Create Application"
|
||||||
display_new = "Add Connected Application"
|
display_new = "Add Connected Application"
|
||||||
save = "Save"
|
|
||||||
title_create = "Create Client"
|
title_create = "Create Client"
|
||||||
title_edit = "Client Settings"
|
title_edit = "Client Settings"
|
||||||
|
|
||||||
|
[ui.dev.clients.federation]
|
||||||
|
title = "Identity Federation"
|
||||||
|
add_title = "Add Identity Provider"
|
||||||
|
add_btn = "Add Provider"
|
||||||
|
|
||||||
[ui.dev.clients.general.breadcrumb]
|
[ui.dev.clients.general.breadcrumb]
|
||||||
section = "Applications"
|
section = "Applications"
|
||||||
|
|
||||||
|
|||||||
@@ -309,6 +309,12 @@ load_error = "Error loading client: {{error}}"
|
|||||||
loading = "Loading client..."
|
loading = "Loading client..."
|
||||||
saved = "설정이 저장되었습니다."
|
saved = "설정이 저장되었습니다."
|
||||||
save_error = "저장 실패: {{error}}"
|
save_error = "저장 실패: {{error}}"
|
||||||
|
status_changed = "상태가 {{status}}로 변경되었습니다."
|
||||||
|
|
||||||
|
[msg.dev.clients.federation]
|
||||||
|
subtitle = "이 애플리케이션의 외부 IdP 설정을 관리합니다."
|
||||||
|
add_subtitle = "외부 OIDC 제공자를 연결합니다."
|
||||||
|
empty = "등록된 IdP 설정이 없습니다."
|
||||||
|
|
||||||
[msg.dev.clients.general.identity]
|
[msg.dev.clients.general.identity]
|
||||||
logo_help = "인증 화면에 표시될 PNG/SVG URL입니다."
|
logo_help = "인증 화면에 표시될 PNG/SVG URL입니다."
|
||||||
@@ -1168,10 +1174,14 @@ settings = "Settings"
|
|||||||
[ui.dev.clients.general]
|
[ui.dev.clients.general]
|
||||||
create = "앱 생성"
|
create = "앱 생성"
|
||||||
display_new = "연동 앱 추가"
|
display_new = "연동 앱 추가"
|
||||||
save = "저장"
|
|
||||||
title_create = "Create Client"
|
title_create = "Create Client"
|
||||||
title_edit = "Client Settings"
|
title_edit = "Client Settings"
|
||||||
|
|
||||||
|
[ui.dev.clients.federation]
|
||||||
|
title = "Identity Federation"
|
||||||
|
add_title = "Add Identity Provider"
|
||||||
|
add_btn = "Add Provider"
|
||||||
|
|
||||||
[ui.dev.clients.general.breadcrumb]
|
[ui.dev.clients.general.breadcrumb]
|
||||||
section = "Applications"
|
section = "Applications"
|
||||||
|
|
||||||
|
|||||||
@@ -250,6 +250,12 @@ load_error = ""
|
|||||||
loading = ""
|
loading = ""
|
||||||
saved = ""
|
saved = ""
|
||||||
save_error = ""
|
save_error = ""
|
||||||
|
status_changed = ""
|
||||||
|
|
||||||
|
[msg.dev.clients.federation]
|
||||||
|
subtitle = ""
|
||||||
|
add_subtitle = ""
|
||||||
|
empty = ""
|
||||||
|
|
||||||
[msg.dev.clients.general.identity]
|
[msg.dev.clients.general.identity]
|
||||||
logo_help = ""
|
logo_help = ""
|
||||||
@@ -1030,10 +1036,14 @@ settings = ""
|
|||||||
[ui.dev.clients.general]
|
[ui.dev.clients.general]
|
||||||
create = ""
|
create = ""
|
||||||
display_new = ""
|
display_new = ""
|
||||||
save = ""
|
|
||||||
title_create = ""
|
title_create = ""
|
||||||
title_edit = ""
|
title_edit = ""
|
||||||
|
|
||||||
|
[ui.dev.clients.federation]
|
||||||
|
title = ""
|
||||||
|
add_title = ""
|
||||||
|
add_btn = ""
|
||||||
|
|
||||||
[ui.dev.clients.general.breadcrumb]
|
[ui.dev.clients.general.breadcrumb]
|
||||||
section = ""
|
section = ""
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user