All Downloads are FREE. Search and download functionalities are using the official Maven repository.

theme.keycloak.v2.admin.resources.assets.UserFederationLdapSettings-BZOwKGoF.js.map Maven / Gradle / Ivy

There is a newer version: 26.0.7
Show newest version
{"version":3,"file":"UserFederationLdapSettings-BZOwKGoF.js","sources":["../../src/user-federation/ldap/mappers/LdapMapperList.tsx","../../src/user-federation/UserFederationLdapSettings.tsx"],"sourcesContent":["import type ComponentRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentRepresentation\";\nimport {\n  AlertVariant,\n  Button,\n  ButtonVariant,\n  ToolbarItem,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, To, useNavigate, useParams } from \"react-router-dom\";\nimport { useAdminClient } from \"../../../admin-client\";\nimport { useAlerts } from \"../../../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../../../components/confirm-dialog/ConfirmDialog\";\nimport { ListEmptyState } from \"../../../components/list-empty-state/ListEmptyState\";\nimport {\n  Action,\n  KeycloakDataTable,\n} from \"../../../components/table-toolbar/KeycloakDataTable\";\nimport { useFetch } from \"../../../utils/useFetch\";\nimport useLocaleSort, { mapByKey } from \"../../../utils/useLocaleSort\";\n\nexport type LdapMapperListProps = {\n  toCreate: To;\n  toDetail: (mapperId: string) => To;\n};\n\ntype MapperLinkProps = ComponentRepresentation & {\n  toDetail: (mapperId: string) => To;\n};\n\nconst MapperLink = ({ toDetail, ...mapper }: MapperLinkProps) => (\n  {mapper.name}\n);\n\nexport const LdapMapperList = ({ toCreate, toDetail }: LdapMapperListProps) => {\n  const { adminClient } = useAdminClient();\n\n  const navigate = useNavigate();\n  const { t } = useTranslation();\n  const { addAlert, addError } = useAlerts();\n  const [key, setKey] = useState(0);\n  const refresh = () => setKey(key + 1);\n\n  const [mappers, setMappers] = useState([]);\n  const localeSort = useLocaleSort();\n\n  const { id } = useParams<{ id: string }>();\n\n  const [selectedMapper, setSelectedMapper] =\n    useState();\n\n  useFetch(\n    () =>\n      adminClient.components.find({\n        parent: id,\n        type: \"org.keycloak.storage.ldap.mappers.LDAPStorageMapper\",\n      }),\n    (mapper) => {\n      setMappers(\n        localeSort(\n          mapper.map((mapper) => ({\n            ...mapper,\n            name: mapper.name,\n            type: mapper.providerId,\n          })),\n          mapByKey(\"name\"),\n        ),\n      );\n    },\n    [key],\n  );\n\n  const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n    titleKey: t(\"deleteMappingTitle\", { mapperId: selectedMapper?.id }),\n    messageKey: \"deleteMappingConfirm\",\n    continueButtonLabel: \"delete\",\n    continueButtonVariant: ButtonVariant.danger,\n    onConfirm: async () => {\n      try {\n        await adminClient.components.del({\n          id: selectedMapper!.id!,\n        });\n        refresh();\n        addAlert(t(\"mappingDeletedSuccess\"), AlertVariant.success);\n        setSelectedMapper(undefined);\n      } catch (error) {\n        addError(\"mappingDeletedError\", error);\n      }\n    },\n  });\n\n  return (\n    <>\n      \n      \n             }\n            >\n              {t(\"addMapper\")}\n            \n          \n        }\n        actions={[\n          {\n            title: t(\"delete\"),\n            onRowClick: (mapper) => {\n              setSelectedMapper(mapper);\n              toggleDeleteDialog();\n            },\n          } as Action,\n        ]}\n        columns={[\n          {\n            name: \"name\",\n            cellRenderer: (row) => ,\n          },\n          {\n            name: \"type\",\n          },\n        ]}\n        emptyState={\n           navigate(toCreate)}\n          />\n        }\n      />\n    \n  );\n};\n","import type ComponentRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentRepresentation\";\nimport {\n  AlertVariant,\n  PageSection,\n  Tab,\n  TabTitleText,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useParams } from \"react-router-dom\";\nimport { useAdminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { KeycloakSpinner } from \"../components/keycloak-spinner/KeycloakSpinner\";\nimport {\n  RoutableTabs,\n  useRoutableTab,\n} from \"../components/routable-tabs/RoutableTabs\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { useFetch } from \"../utils/useFetch\";\nimport {\n  LdapComponentRepresentation,\n  UserFederationLdapForm,\n  serializeFormData,\n} from \"./UserFederationLdapForm\";\nimport { LdapMapperList } from \"./ldap/mappers/LdapMapperList\";\nimport {\n  UserFederationLdapParams,\n  UserFederationLdapTab,\n  toUserFederationLdap,\n} from \"./routes/UserFederationLdap\";\nimport { toUserFederationLdapMapper } from \"./routes/UserFederationLdapMapper\";\nimport { ExtendedHeader } from \"./shared/ExtendedHeader\";\n\nexport default function UserFederationLdapSettings() {\n  const { adminClient } = useAdminClient();\n\n  const { t } = useTranslation();\n  const form = useForm({ mode: \"onChange\" });\n  const { realm } = useRealm();\n  const { id } = useParams();\n  const { addAlert, addError } = useAlerts();\n  const [component, setComponent] = useState();\n  const [refreshCount, setRefreshCount] = useState(0);\n\n  const refresh = () => setRefreshCount((count) => count + 1);\n\n  useFetch(\n    () => adminClient.components.findOne({ id: id! }),\n    (component) => {\n      if (!component) {\n        throw new Error(t(\"notFound\"));\n      }\n\n      setComponent(component);\n      setupForm(component);\n    },\n    [id, refreshCount],\n  );\n\n  const useTab = (tab: UserFederationLdapTab) =>\n    useRoutableTab(toUserFederationLdap({ realm, id: id!, tab }));\n\n  const settingsTab = useTab(\"settings\");\n  const mappersTab = useTab(\"mappers\");\n\n  const setupForm = (component: ComponentRepresentation) => {\n    form.reset(component);\n    form.setValue(\n      \"config.periodicChangedUsersSync\",\n      component.config?.[\"changedSyncPeriod\"]?.[0] !== \"-1\",\n    );\n\n    form.setValue(\n      \"config.periodicFullSync\",\n      component.config?.[\"fullSyncPeriod\"]?.[0] !== \"-1\",\n    );\n  };\n\n  const onSubmit = async (formData: LdapComponentRepresentation) => {\n    try {\n      await adminClient.components.update(\n        { id: id! },\n        serializeFormData(formData),\n      );\n      addAlert(t(\"userProviderSaveSuccess\"), AlertVariant.success);\n      refresh();\n    } catch (error) {\n      addError(\"userProviderSaveError\", error);\n    }\n  };\n\n  if (!component) {\n    return ;\n  }\n\n  return (\n    \n       form.handleSubmit(onSubmit)()}\n      />\n      \n        \n          {t(\"settings\")}}\n            {...settingsTab}\n          >\n            \n              \n            \n          \n          {t(\"mappers\")}}\n            data-testid=\"ldap-mappers-tab\"\n            {...mappersTab}\n          >\n            \n                toUserFederationLdapMapper({\n                  realm,\n                  id: id!,\n                  mapperId,\n                })\n              }\n            />\n          \n        \n      \n    \n  );\n}\n"],"names":["MapperLink","toDetail","mapper","jsx","Link","LdapMapperList","toCreate","adminClient","useAdminClient","navigate","useNavigate","t","useTranslation","addAlert","addError","useAlerts","key","setKey","useState","refresh","mappers","setMappers","localeSort","useLocaleSort","id","useParams","selectedMapper","setSelectedMapper","useFetch","mapByKey","toggleDeleteDialog","DeleteConfirm","useConfirmDialog","ButtonVariant","AlertVariant","error","jsxs","Fragment","KeycloakDataTable","ToolbarItem","Button","props","row","ListEmptyState","UserFederationLdapSettings","form","useForm","realm","useRealm","component","setComponent","refreshCount","setRefreshCount","count","setupForm","useTab","tab","useRoutableTab","toUserFederationLdap","settingsTab","mappersTab","onSubmit","formData","serializeFormData","FormProvider","ExtendedHeader","PageSection","RoutableTabs","Tab","TabTitleText","UserFederationLdapForm","toUserFederationLdapMapper","mapperId","KeycloakSpinner"],"mappings":"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"}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy