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
6 changes: 0 additions & 6 deletions src/assets/content.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,6 @@ export const RESERVATION_BODY =
"Here are the blocks you can sign up to inventory and the ones you've reserved! Did you know that we take care " +
"of over 500 blocks of trees? We couldn't do it without you! ";

// My Trees
export const MY_TREES_TITLE = 'My Trees';
export const MY_TREES_BODY =
'Here are the trees you have adopted. From here you can select a tree to record stewardship activities or ' +
'you can adopt even more!';

// This dictionary that stores names to be shortHand-ed.
// To add a new area, add the full name and then the shorthand name separated by a colon.
export const SHORT_HAND_NAMES: { [fullName: string]: string } = {
Expand Down
32 changes: 23 additions & 9 deletions src/components/forms/changePrivilegeForm/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ import { ChangePrivilegeRequest } from '../ducks/types';
import { SubmitButton } from '../../themedComponents';
import styled from 'styled-components';
import { PrivilegeLevel } from '../../../auth/ducks/types';
import { useTranslation } from 'react-i18next';
import { n } from '../../../utils/stringFormat';
import { site } from '../../../constants';

const RoleDropdown = styled(Select)`
width: 100%;
Expand All @@ -23,6 +26,10 @@ interface ChangePrivilegeFormProps {
const ChangePrivilegeForm: React.FC<ChangePrivilegeFormProps> = ({
privilegeLevel,
}) => {
const { t } = useTranslation(n(site, ['admin', 'forms']), {
nsMode: 'fallback',
});

const [changePrivilegeForm] = Form.useForm();

const onRoleChange = (role: unknown) => {
Expand All @@ -32,12 +39,12 @@ const ChangePrivilegeForm: React.FC<ChangePrivilegeFormProps> = ({
const onFinishChangePrivilege = (values: ChangePrivilegeRequest) => {
ProtectedApiClient.changePrivilegeLevel(values)
.then(() => {
message.success('Privilege level changed!');
message.success(t('change_privilege.success'));
changePrivilegeForm.resetFields();
})
.catch((err) =>
message.error(
`Privilege level could not be changed: ${err.response.data}`,
t('change_privilege.error', { error: err.response.data }),
),
);
};
Expand All @@ -49,26 +56,33 @@ const ChangePrivilegeForm: React.FC<ChangePrivilegeFormProps> = ({
onFinish={onFinishChangePrivilege}
>
<Form.Item name="targetUserEmail" rules={targetUserEmailRules}>
<Input placeholder="User Email" />
<Input placeholder={t('change_privilege.user_email')} />
</Form.Item>

<Form.Item name="newLevel" rules={newLevelRules}>
<RoleDropdown placeholder="New Role" onChange={onRoleChange}>
<Select.Option value={'ADMIN'}>Admin</Select.Option>
<RoleDropdown
placeholder={t('change_privilege.new_role')}
onChange={onRoleChange}
>
<Select.Option value={'ADMIN'}>{t('roles.admin')}</Select.Option>
{privilegeLevel === PrivilegeLevel.SUPER_ADMIN && (
<>
<Select.Option value={'STANDARD'}>Standard</Select.Option>
<Select.Option value={'SUPER_ADMIN'}>Super Admin</Select.Option>
<Select.Option value={'STANDARD'}>
{t('roles.standard')}
</Select.Option>
<Select.Option value={'SUPER_ADMIN'}>
{t('roles.super_admin')}
</Select.Option>
</>
)}
</RoleDropdown>
</Form.Item>

<Form.Item name="password" rules={loginPasswordRules}>
<Input.Password placeholder="Password" />
<Input.Password placeholder={t('password')} />
</Form.Item>

<SubmitButton htmlType="submit">Confirm</SubmitButton>
<SubmitButton htmlType="submit">{t('confirm')}</SubmitButton>
</Form>
);
};
Expand Down
44 changes: 26 additions & 18 deletions src/components/forms/editSiteForm/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ import { Flex, FullInputNumber } from '../../themedComponents';
import TitleStack from '../../titleStack';
import styled from 'styled-components';
import { SITE_OPTIONS_OWNER } from '../../mapComponents/constants';
import { useTranslation } from 'react-i18next';
import { n } from '../../../utils/stringFormat';
import { site } from '../../../constants';

interface EditSiteFormProps {
readonly formInstance: FormInstance<EditSiteRequest>;
Expand All @@ -22,12 +25,17 @@ const EditSiteForm: React.FC<EditSiteFormProps> = ({
formInstance,
onEdit,
}) => {
const { t } = useTranslation(n(site, ['site', 'forms']), {
nsMode: 'fallback',
});

const onValuesChange = (changedValues: any, allValues: any) => {
if (changedValues.lat || changedValues.lng) {
const values = allValues as EditSiteRequest;
onEdit(new google.maps.LatLng(values.lat, values.lng));
}
};

return (
<>
<EditForm
Expand All @@ -36,69 +44,69 @@ const EditSiteForm: React.FC<EditSiteFormProps> = ({
onValuesChange={onValuesChange}
>
<Flex>
<TitleStack title={'Address'} flexGrow={'1'}>
<TitleStack title={t('edit_site.address')} flexGrow={'1'}>
<Form.Item
name={'address'}
rules={requiredRule('Please enter an address!')}
rules={requiredRule(t('validation.address_required'))}
>
<Input placeholder={'Address'} />
<Input placeholder={t('edit_site.address')} />
</Form.Item>
</TitleStack>
<TitleStack title={'City'} flexGrow={'1'}>
<TitleStack title={t('edit_site.city')} flexGrow={'1'}>
<Form.Item
name={'city'}
rules={requiredRule('Please enter a city!')}
rules={requiredRule(t('validation.city_required'))}
>
<Input placeholder={'City'} />
<Input placeholder={t('edit_site.city')} />
</Form.Item>
</TitleStack>
</Flex>

<Flex>
<TitleStack title={'Zip Code'} flexGrow={'1'}>
<TitleStack title={t('edit_site.zip')} flexGrow={'1'}>
<Form.Item name={'zip'} rules={zipCodeRules}>
<Input placeholder={'Zip Code'} />
<Input placeholder={t('edit_site.zip')} />
</Form.Item>
</TitleStack>
{/* <TitleStack title={'Block Id'} flexGrow={'1'}>
<Form.Item name={'blockId'}>
<FullInputNumber placeholder={'Block ID'} />
</Form.Item>
</TitleStack> */}
<TitleStack title={'Neighborhood'} flexGrow={'1'}>
<TitleStack title={t('edit_site.neighborhood')} flexGrow={'1'}>
<Form.Item
name={'neighborhoodId'}
rules={requiredRule('Please enter a neighborhood!')}
rules={requiredRule(t('validation.neighborhood_required'))}
>
<Select options={NEIGHBORHOOD_OPTS} />
</Form.Item>
</TitleStack>
</Flex>

<Flex>
<TitleStack title={'Latitude'} flexGrow={'1'}>
<TitleStack title={t('edit_site.latitude')} flexGrow={'1'}>
<Form.Item
name={'lat'}
rules={requiredRule('Please enter a latitude!')}
rules={requiredRule(t('validation.latitude_required'))}
>
<FullInputNumber placeholder={'Latitude'} />
<FullInputNumber placeholder={t('edit_site.latitude')} />
</Form.Item>
</TitleStack>
<TitleStack title={'Longitude'} flexGrow={'1'}>
<TitleStack title={t('edit_site.longitude')} flexGrow={'1'}>
<Form.Item
name={'lng'}
rules={requiredRule('Please enter a longitude!')}
rules={requiredRule(t('validation.longitude_required'))}
>
<FullInputNumber placeholder={'Longitude'} />
<FullInputNumber placeholder={t('edit_site.longitude')} />
</Form.Item>
</TitleStack>
</Flex>

<Flex>
<TitleStack title={'Owner'} flexGrow={'1'}>
<TitleStack title={t('edit_site.owner')} flexGrow={'1'}>
<Form.Item
name={'owner'}
rules={requiredRule('Please select an owner!')}
rules={requiredRule(t('validation.owner_required'))}
>
<Select options={SITE_OPTIONS_OWNER} />
</Form.Item>
Expand Down
3 changes: 2 additions & 1 deletion src/components/forms/editTreeNameForm/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ const StyledForm = styled(Form)`
margin-top: ${(props: StyledButtonProps) =>
props.isMobile ? '-20px' : '-30px'};
margin-bottom: 20px;
text-transform: none;
`;

const SubmitButton = styled(GreenButton)`
Expand Down Expand Up @@ -68,7 +69,7 @@ const EditTreeNameForm: React.FC<EditTreeNameFormProps> = ({
{t('name_form.submit')}
</SubmitButton>
<CancelButton isMobile={isMobile} onClick={onCancelNameChange}>
{t('name_form.cancel')}
{t('cancel')}
</CancelButton>
</Form.Item>
</StyledForm>
Expand Down
Loading