2020-12-15 22:50:09 +00:00
import {
Button ,
Wizard ,
WizardContextConsumer ,
WizardFooter ,
} from "@patternfly/react-core" ;
import React from "react" ;
2021-01-04 21:33:18 +00:00
import { LdapSettingsGeneral } from "./ldap/LdapSettingsGeneral" ;
import { LdapSettingsConnection } from "./ldap/LdapSettingsConnection" ;
import { LdapSettingsSearching } from "./ldap/LdapSettingsSearching" ;
import { LdapSettingsSynchronization } from "./ldap/LdapSettingsSynchronization" ;
import { LdapSettingsKerberosIntegration } from "./ldap/LdapSettingsKerberosIntegration" ;
import { LdapSettingsCache } from "./ldap/LdapSettingsCache" ;
import { LdapSettingsAdvanced } from "./ldap/LdapSettingsAdvanced" ;
import { useTranslation } from "react-i18next" ;
2020-12-15 22:50:09 +00:00
export const UserFederationLdapWizard = ( ) = > {
const { t } = useTranslation ( "user-federation" ) ;
const steps = [
{
2021-01-04 21:33:18 +00:00
name : t ( "requiredSettings" ) ,
2020-12-15 22:50:09 +00:00
id : "ldapRequiredSettingsStep" ,
2021-01-04 21:33:18 +00:00
component : (
< LdapSettingsGeneral showSectionHeading showSectionDescription / >
) ,
2020-12-15 22:50:09 +00:00
} ,
{
2021-01-04 21:33:18 +00:00
name : t ( "connectionAndAuthenticationSettings" ) ,
2020-12-15 22:50:09 +00:00
id : "ldapConnectionSettingsStep" ,
2021-01-04 21:33:18 +00:00
component : (
< LdapSettingsConnection showSectionHeading showSectionDescription / >
) ,
2020-12-15 22:50:09 +00:00
} ,
{
2021-01-04 21:33:18 +00:00
name : t ( "ldapSearchingAndUpdatingSettings" ) ,
2020-12-15 22:50:09 +00:00
id : "ldapSearchingSettingsStep" ,
2021-01-04 21:33:18 +00:00
component : (
< LdapSettingsSearching showSectionHeading showSectionDescription / >
) ,
2020-12-15 22:50:09 +00:00
} ,
{
2021-01-04 21:33:18 +00:00
name : t ( "synchronizationSettings" ) ,
2020-12-15 22:50:09 +00:00
id : "ldapSynchronizationSettingsStep" ,
2021-01-04 21:33:18 +00:00
component : (
< LdapSettingsSynchronization
showSectionHeading
showSectionDescription
/ >
) ,
2020-12-15 22:50:09 +00:00
} ,
{
2021-01-04 21:33:18 +00:00
name : t ( "kerberosIntegration" ) ,
2020-12-15 22:50:09 +00:00
id : "ldapKerberosIntegrationSettingsStep" ,
2021-01-04 21:33:18 +00:00
component : (
< LdapSettingsKerberosIntegration
showSectionHeading
showSectionDescription
/ >
) ,
2020-12-15 22:50:09 +00:00
} ,
{
2021-01-04 21:33:18 +00:00
name : t ( "cacheSettings" ) ,
2020-12-15 22:50:09 +00:00
id : "ldapCacheSettingsStep" ,
2021-01-04 21:33:18 +00:00
component : (
< LdapSettingsCache showSectionHeading showSectionDescription / >
) ,
2020-12-15 22:50:09 +00:00
} ,
{
2021-01-04 21:33:18 +00:00
name : t ( "advancedSettings" ) ,
2020-12-15 22:50:09 +00:00
id : "ldapAdvancedSettingsStep" ,
2021-01-04 21:33:18 +00:00
component : (
< LdapSettingsAdvanced showSectionHeading showSectionDescription / >
) ,
2020-12-15 22:50:09 +00:00
} ,
] ;
const footer = (
< WizardFooter >
< WizardContextConsumer >
2021-01-04 21:33:18 +00:00
{ ( { activeStep , onNext , onBack , onClose } ) = > {
2020-12-15 22:50:09 +00:00
// First step buttons
if ( activeStep . id == "ldapRequiredSettingsStep" ) {
return (
< >
< Button variant = "primary" type = "submit" onClick = { onNext } >
2021-01-04 21:33:18 +00:00
{ t ( "common:next" ) }
2020-12-15 22:50:09 +00:00
< / Button >
< Button
variant = "secondary"
onClick = { onBack }
className = "pf-m-disabled"
>
2021-01-04 21:33:18 +00:00
{ t ( "common:back" ) }
2020-12-15 22:50:09 +00:00
< / Button >
< Button variant = "link" onClick = { onClose } >
2021-01-04 21:33:18 +00:00
{ t ( "common:cancel" ) }
2020-12-15 22:50:09 +00:00
< / Button >
< / >
) ;
}
// Other required step buttons
else if (
activeStep . id == "ldapConnectionSettingsStep" ||
activeStep . id == "ldapSearchingSettingsStep"
) {
return (
< >
< Button variant = "primary" type = "submit" onClick = { onNext } >
2021-01-04 21:33:18 +00:00
{ t ( "common:next" ) }
2020-12-15 22:50:09 +00:00
< / Button >
< Button variant = "secondary" onClick = { onBack } >
2021-01-04 21:33:18 +00:00
{ t ( "common:back" ) }
2020-12-15 22:50:09 +00:00
< / Button >
< Button variant = "link" onClick = { onClose } >
2021-01-04 21:33:18 +00:00
{ t ( "common:cancel" ) }
2020-12-15 22:50:09 +00:00
< / Button >
< / >
) ;
}
// Last step buttons
else if ( activeStep . id == "ldapAdvancedSettingsStep" ) {
return (
< >
2021-01-05 14:43:01 +00:00
< Button
onClick = { ( ) = > { } } //TODO: close the wizard and finish
>
2021-01-04 21:33:18 +00:00
{ t ( "common:finish" ) }
< / Button >
2020-12-15 22:50:09 +00:00
< Button variant = "secondary" onClick = { onBack } >
2021-01-04 21:33:18 +00:00
{ t ( "common:back" ) }
2020-12-15 22:50:09 +00:00
< / Button >
< Button variant = "link" onClick = { onClose } >
2021-01-04 21:33:18 +00:00
{ t ( "common:cancel" ) }
2020-12-15 22:50:09 +00:00
< / Button >
< / >
) ;
}
// All the other steps buttons
return (
< >
< Button onClick = { onNext } > Next < / Button >
< Button variant = "secondary" onClick = { onBack } >
Back
< / Button >
< Button
variant = "link"
2021-01-04 21:33:18 +00:00
onClick = { ( ) = > { } } //TODO: validate last step and finish
2020-12-15 22:50:09 +00:00
>
2021-01-04 21:33:18 +00:00
{ t ( "common:skipCustomizationAndFinish" ) }
2020-12-15 22:50:09 +00:00
< / Button >
< Button variant = "link" onClick = { onClose } >
2021-01-04 21:33:18 +00:00
{ t ( "common:cancel" ) }
2020-12-15 22:50:09 +00:00
< / Button >
< / >
) ;
} }
< / WizardContextConsumer >
< / WizardFooter >
) ;
return (
< Wizard
2021-01-05 16:08:43 +00:00
// Because this is an inline wizard, this title and description should be put into the page. Specifying them here causes the wizard component to make a header that would be used on a modal.
// title={t("addLdapWizardTitle")}
// description={helpText("addLdapWizardDescription")}
2020-12-15 22:50:09 +00:00
height = "100%"
steps = { steps }
footer = { footer }
/ >
) ;
} ;