diff --git a/src/core/client/admin/routes/Configure/sections/Organization/OrganizationConfig.tsx b/src/core/client/admin/routes/Configure/sections/Organization/OrganizationConfig.tsx index 139abf642..b83300077 100644 --- a/src/core/client/admin/routes/Configure/sections/Organization/OrganizationConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/Organization/OrganizationConfig.tsx @@ -5,11 +5,13 @@ import { HorizontalGutter } from "coral-ui/components"; import OrganizationContactEmailConfigContainer from "./OrganizationContactEmailConfigContainer"; import OrganizationNameConfigContainer from "./OrganizationNameConfigContainer"; +import OrganizationURLConfigContainer from "./OrganizationURLConfigContainer"; interface Props { disabled: boolean; settings: PropTypesOf["settings"] & - PropTypesOf["settings"]; + PropTypesOf["settings"] & + PropTypesOf["settings"]; onInitValues: (values: any) => void; } @@ -29,6 +31,11 @@ const OrganizationConfig: FunctionComponent = ({ settings={settings} onInitValues={onInitValues} /> + ); diff --git a/src/core/client/admin/routes/Configure/sections/Organization/OrganizationConfigContainer.tsx b/src/core/client/admin/routes/Configure/sections/Organization/OrganizationConfigContainer.tsx index 518df3274..bfbc2a3e2 100644 --- a/src/core/client/admin/routes/Configure/sections/Organization/OrganizationConfigContainer.tsx +++ b/src/core/client/admin/routes/Configure/sections/Organization/OrganizationConfigContainer.tsx @@ -47,6 +47,7 @@ const enhanced = withFragmentContainer({ fragment OrganizationConfigContainer_settings on Settings { ...OrganizationNameConfigContainer_settings ...OrganizationContactEmailConfigContainer_settings + ...OrganizationURLConfigContainer_settings } `, })(OrganizationConfigContainer); diff --git a/src/core/client/admin/routes/Configure/sections/Organization/OrganizationURLConfig.tsx b/src/core/client/admin/routes/Configure/sections/Organization/OrganizationURLConfig.tsx new file mode 100644 index 000000000..74ee40140 --- /dev/null +++ b/src/core/client/admin/routes/Configure/sections/Organization/OrganizationURLConfig.tsx @@ -0,0 +1,63 @@ +import { Localized } from "fluent-react/compat"; +import React, { FunctionComponent } from "react"; +import { Field } from "react-final-form"; + +import { + composeValidators, + required, + validateURL, +} from "coral-framework/lib/validation"; +import { + FormField, + HorizontalGutter, + TextField, + Typography, +} from "coral-ui/components"; + +import Header from "../../Header"; +import ValidationMessage from "../../ValidationMessage"; + +interface Props { + disabled: boolean; +} + +const OrganizationURLConfig: FunctionComponent = ({ disabled }) => ( + + + +
+ } + > + Organization URL +
+
+ }> + This URL will be used + + + {({ input, meta }) => ( + <> + + + + )} + +
+
+); + +export default OrganizationURLConfig; diff --git a/src/core/client/admin/routes/Configure/sections/Organization/OrganizationURLConfigContainer.tsx b/src/core/client/admin/routes/Configure/sections/Organization/OrganizationURLConfigContainer.tsx new file mode 100644 index 000000000..96b379423 --- /dev/null +++ b/src/core/client/admin/routes/Configure/sections/Organization/OrganizationURLConfigContainer.tsx @@ -0,0 +1,37 @@ +import React from "react"; +import { graphql } from "react-relay"; + +import { OrganizationURLConfigContainer_settings as SettingsData } from "coral-admin/__generated__/OrganizationURLConfigContainer_settings.graphql"; +import { withFragmentContainer } from "coral-framework/lib/relay"; + +import OrganizationURLConfig from "./OrganizationURLConfig"; + +interface Props { + settings: SettingsData; + onInitValues: (values: SettingsData) => void; + disabled: boolean; +} + +class OrganizationURLConfigContainer extends React.Component { + constructor(props: Props) { + super(props); + props.onInitValues(props.settings); + } + + public render() { + const { disabled } = this.props; + return ; + } +} + +const enhanced = withFragmentContainer({ + settings: graphql` + fragment OrganizationURLConfigContainer_settings on Settings { + organization { + url + } + } + `, +})(OrganizationURLConfigContainer); + +export default enhanced; diff --git a/src/core/client/admin/test/configure/__snapshots__/organization.spec.tsx.snap b/src/core/client/admin/test/configure/__snapshots__/organization.spec.tsx.snap index c9f003cc7..a662b1352 100644 --- a/src/core/client/admin/test/configure/__snapshots__/organization.spec.tsx.snap +++ b/src/core/client/admin/test/configure/__snapshots__/organization.spec.tsx.snap @@ -199,6 +199,45 @@ status of their accounts or moderation questions. +
+
+ +

+ Your organization url will appear on emails sent by Coral to your community and organization members. +

+
+ +
+
+
diff --git a/src/locales/en-US/admin.ftl b/src/locales/en-US/admin.ftl index efa2ef560..f4c3dce07 100644 --- a/src/locales/en-US/admin.ftl +++ b/src/locales/en-US/admin.ftl @@ -155,6 +155,9 @@ configure-organization-emailExplanation = the platform for community members to get in touch with the organization should they have any questions about the status of their accounts or moderation questions. +configure-organization-url = Organization URL +configure-organization-urlExplanation = + Your organization url will appear on emails sent by { -product-name } to your community and organization members. ### Email