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

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

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"UserFederationLdapSettings-b4d07d84.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\";\n\nimport { adminClient } 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 navigate = useNavigate();\n  const { t } = useTranslation(\"user-federation\");\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(\"common:deleteMappingTitle\", { mapperId: selectedMapper?.id }),\n    messageKey: \"common:deleteMappingConfirm\",\n    continueButtonLabel: \"common: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(\"common:mappingDeletedSuccess\"), AlertVariant.success);\n        setSelectedMapper(undefined);\n      } catch (error) {\n        addError(\"common:mappingDeletedError\", error);\n      }\n    },\n  });\n\n  return (\n    <>\n      \n      \n             }\n            >\n              {t(\"common:addMapper\")}\n            \n          \n        }\n        actions={[\n          {\n            title: t(\"common: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\";\n\nimport { adminClient } 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 { t } = useTranslation(\"user-federation\");\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(\"common: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(\"saveSuccess\"), AlertVariant.success);\n      refresh();\n    } catch (error) {\n      addError(\"user-federation:saveError\", error);\n    }\n  };\n\n  if (!component) {\n    return ;\n  }\n\n  return (\n    \n       form.handleSubmit(onSubmit)()}\n      />\n      \n        \n          {t(\"common:settings\")}}\n            {...settingsTab}\n          >\n            \n              \n            \n          \n          {t(\"common: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","navigate","useNavigate","t","useTranslation","addAlert","addError","useAlerts","key","setKey","useState","refresh","mappers","setMappers","localeSort","useLocaleSort","id","useParams","selectedMapper","setSelectedMapper","useFetch","adminClient","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 - 2024 Weber Informatics LLC | Privacy Policy