Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@ export const loadDomainConnectionsByOrgId =
showArchivedDomains = aql``
}
let showHiddenDomains = aql`FILTER e.hidden != true`
if (permission === 'super_admin') {
if (['super_admin'].includes(permission)) {
showHiddenDomains = aql``
}

Expand Down
65 changes: 18 additions & 47 deletions frontend/src/admin/AdminDomainCard.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,16 @@
import React from 'react'
import { Trans } from '@lingui/macro'
import { array, bool, string } from 'prop-types'
import {
Flex,
Grid,
Link,
ListItem,
Stack,
Tag,
TagLabel,
Text,
} from '@chakra-ui/react'
import { Flex, Grid, Link, ListItem, Stack, Tag, TagLabel, Text } from '@chakra-ui/react'
import { ExternalLinkIcon } from '@chakra-ui/icons'
import { ABTestVariant, ABTestingWrapper } from '../app/ABTestWrapper'

import { sanitizeUrl } from '../utilities/sanitizeUrl'
import { ABTestingWrapper } from '../app/ABTestWrapper'
import { ABTestVariant } from '../app/ABTestVariant'

export function AdminDomainCard({ url, tags, isHidden, isArchived, ...rest }) {
return (
<ListItem {...rest}>
<Grid
templateColumns={{ base: 'auto', md: '40% 60%' }}
columnGap="1.5rem"
>
<Grid templateColumns={{ base: 'auto', md: '40% 60%' }} columnGap="1.5rem">
<Stack isInline align="center">
<Text fontWeight="bold">
<Trans>Domain:</Trans>
Expand All @@ -41,49 +28,33 @@ export function AdminDomainCard({ url, tags, isHidden, isArchived, ...rest }) {
<ExternalLinkIcon mx="2px" aria-hidden="true" />
</Link>
</Stack>
<ABTestingWrapper insiderVariantName="B">
<ABTestVariant name="B">
<Flex>
{tags?.map((tag, idx) => {
return (
<Tag
key={idx}
m="1"
borderRadius="full"
borderWidth="1px"
borderColor="gray.900"
>
<TagLabel mx="auto">{tag}</TagLabel>
</Tag>
)
})}
<Flex>
{tags?.map((tag, idx) => {
return (
<Tag key={idx} m="1" borderRadius="full" borderWidth="1px" borderColor="gray.900">
<TagLabel mx="auto">{tag}</TagLabel>
</Tag>
)
})}
<ABTestingWrapper insiderVariantName="B">
<ABTestVariant name="B">
{isHidden && (
<Tag
m="1"
borderRadius="full"
borderWidth="1px"
borderColor="gray.900"
>
<Tag m="1" borderRadius="full" borderWidth="1px" borderColor="gray.900">
<TagLabel mx="auto">
<Trans>Hidden</Trans>
</TagLabel>
</Tag>
)}
{isArchived && (
<Tag
m="1"
borderRadius="full"
borderWidth="1px"
borderColor="gray.900"
>
<Tag m="1" borderRadius="full" borderWidth="1px" borderColor="gray.900">
<TagLabel mx="auto">
<Trans>Archived</Trans>
</TagLabel>
</Tag>
)}
</Flex>
</ABTestVariant>
</ABTestingWrapper>
</ABTestVariant>
</ABTestingWrapper>
</Flex>
</Grid>
</ListItem>
)
Expand Down
154 changes: 43 additions & 111 deletions frontend/src/admin/AdminDomainModal.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,28 +30,16 @@ import {
Tooltip,
useToast,
} from '@chakra-ui/react'
import {
AddIcon,
MinusIcon,
QuestionOutlineIcon,
SmallAddIcon,
} from '@chakra-ui/icons'
import { AddIcon, MinusIcon, QuestionOutlineIcon, SmallAddIcon } from '@chakra-ui/icons'
import { array, bool, func, number, object, string } from 'prop-types'
import { Field, FieldArray, Formik } from 'formik'
import { useMutation } from '@apollo/client'

import { DomainField } from '../components/fields/DomainField'
import { CREATE_DOMAIN, UPDATE_DOMAIN } from '../graphql/mutations'
import { ABTestingWrapper } from '../app/ABTestWrapper'
import { ABTestVariant } from '../app/ABTestVariant'
import { ABTestVariant, ABTestingWrapper } from '../app/ABTestWrapper'

export function AdminDomainModal({
isOpen,
onClose,
validationSchema,
orgId,
...props
}) {
export function AdminDomainModal({ isOpen, onClose, validationSchema, orgId, ...props }) {
const {
editingDomainId,
editingDomainUrl,
Expand Down Expand Up @@ -84,9 +72,7 @@ export function AdminDomainModal({
if (createDomain.result.__typename === 'Domain') {
toast({
title: i18n._(t`Domain added`),
description: i18n._(
t`${createDomain.result.domain} was added to ${orgSlug}`,
),
description: i18n._(t`${createDomain.result.domain} was added to ${orgSlug}`),
status: 'success',
duration: 9000,
isClosable: true,
Expand Down Expand Up @@ -178,9 +164,7 @@ export function AdminDomainModal({
const stringValues = values?.map((label) => {
return label[i18n.locale]
})
const difference = tagOptions.filter(
(label) => !stringValues?.includes(label[i18n.locale]),
)
const difference = tagOptions.filter((label) => !stringValues?.includes(label[i18n.locale]))
return difference?.map((label, idx) => {
return (
<Tag
Expand All @@ -202,12 +186,7 @@ export function AdminDomainModal({
}

return (
<Modal
isOpen={isOpen}
onClose={onClose}
initialFocusRef={initialFocusRef}
motionPreset="slideInBottom"
>
<Modal isOpen={isOpen} onClose={onClose} initialFocusRef={initialFocusRef} motionPreset="slideInBottom">
<ModalOverlay />
<ModalContent pb={4}>
<Formik
Expand Down Expand Up @@ -255,30 +234,15 @@ export function AdminDomainModal({
}
}}
>
{({
handleSubmit,
handleChange,
isSubmitting,
values,
errors,
touched,
}) => (
{({ handleSubmit, handleChange, isSubmitting, values, errors, touched }) => (
<form id="form" onSubmit={handleSubmit}>
<ModalHeader>
{mutation === 'update' ? (
<Trans>Edit Domain Details</Trans>
) : (
<Trans>Add Domain Details</Trans>
)}
{mutation === 'update' ? <Trans>Edit Domain Details</Trans> : <Trans>Add Domain Details</Trans>}
</ModalHeader>
<ModalCloseButton />
<ModalBody>
<Stack spacing={4} p={25}>
<DomainField
name="domainUrl"
label={t`New Domain URL:`}
placeholder={t`New Domain URL`}
/>
<DomainField name="domainUrl" label={t`New Domain URL:`} placeholder={t`New Domain URL`} />

<FieldArray
name="selectors"
Expand All @@ -297,12 +261,7 @@ export function AdminDomainModal({
touched.selectors[index]
}
>
<Grid
gridTemplateColumns="auto 1fr"
gap="0.5em"
alignItems="center"
mb="0.5em"
>
<Grid gridTemplateColumns="auto 1fr" gap="0.5em" alignItems="center" mb="0.5em">
<IconButton
variant="danger"
icon={<MinusIcon size="icons.xs" />}
Expand All @@ -312,11 +271,7 @@ export function AdminDomainModal({
onClick={() => arrayHelpers.remove(index)}
aria-label="remove-dkim-selector"
/>
<Field
id={`selectors.${index}`}
name={`selectors.${index}`}
h="1.5rem"
>
<Field id={`selectors.${index}`} name={`selectors.${index}`} h="1.5rem">
{({ field }) => (
<Input
{...field}
Expand All @@ -329,9 +284,7 @@ export function AdminDomainModal({
</Field>

<FormErrorMessage gridColumn="2 / 3" mt={0}>
{errors &&
errors.selectors &&
errors.selectors[index]}
{errors && errors.selectors && errors.selectors[index]}
</FormErrorMessage>
</Grid>
</FormControl>
Expand All @@ -348,41 +301,36 @@ export function AdminDomainModal({
</Box>
)}
/>
<FieldArray
name="tags"
render={(arrayHelpers) => (
<Box>
<Text fontWeight="bold">Tags:</Text>
<SimpleGrid columns={3} spacing={2}>
{values.tags?.map((label, idx) => {
return (
<Tag key={idx} borderRadius="full">
<TagLabel>{label[i18n.locale]}</TagLabel>
<TagCloseButton
ml="auto"
onClick={() => arrayHelpers.remove(idx)}
aria-label={`remove-tag-${label[i18n.locale]}`}
/>
</Tag>
)
})}
</SimpleGrid>
<Divider borderBottomColor="gray.900" />
<SimpleGrid columns={3} spacing={2}>
{addableTags(values.tags, arrayHelpers)}
</SimpleGrid>
</Box>
)}
/>
<ABTestingWrapper insiderVariantName="B">
<ABTestVariant name="B">
<FieldArray
name="tags"
render={(arrayHelpers) => (
<Box>
<Text fontWeight="bold">Tags:</Text>
<SimpleGrid columns={3} spacing={2}>
{values.tags?.map((label, idx) => {
return (
<Tag key={idx} borderRadius="full">
<TagLabel>{label[i18n.locale]}</TagLabel>
<TagCloseButton
ml="auto"
onClick={() => arrayHelpers.remove(idx)}
aria-label={`remove-tag-${
label[i18n.locale]
}`}
/>
</Tag>
)
})}
</SimpleGrid>
<Divider borderBottomColor="gray.900" />
<SimpleGrid columns={3} spacing={2}>
{addableTags(values.tags, arrayHelpers)}
</SimpleGrid>
</Box>
)}
/>

<Flex align="center">
<Tooltip
label={t`Prevent this domain from being counted in your organization's summaries.`}
>
<Tooltip label={t`Prevent this domain from being counted in your organization's summaries.`}>
<QuestionOutlineIcon tabIndex={0} />
</Tooltip>
<label>
Expand All @@ -398,7 +346,6 @@ export function AdminDomainModal({
<Trans>Hide domain</Trans>
</Badge>
</Flex>

{permission === 'SUPER_ADMIN' && (
<Box>
<Flex align="center">
Expand All @@ -424,38 +371,23 @@ export function AdminDomainModal({

<Text fontSize="sm">
{orgCount > 0 ? (
<Trans>
Note: This will affect results for {orgCount}{' '}
organizations
</Trans>
<Trans>Note: This will affect results for {orgCount} organizations</Trans>
) : (
<Trans>
Note: This could affect results for multiple
organizations
</Trans>
<Trans>Note: This could affect results for multiple organizations</Trans>
)}
</Text>
</Box>
)}

<Text>
<Trans>
Please allow up to 24 hours for summaries to reflect
any changes.
</Trans>
<Trans>Please allow up to 24 hours for summaries to reflect any changes.</Trans>
</Text>
</ABTestVariant>
</ABTestingWrapper>
</Stack>
</ModalBody>

<ModalFooter>
<Button
variant="primary"
isLoading={isSubmitting}
type="submit"
mr="4"
>
<Button variant="primary" isLoading={isSubmitting} type="submit" mr="4">
<Trans>Confirm</Trans>
</Button>
</ModalFooter>
Expand Down
Loading