mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 12:50:38 +00:00
WIP feature/ Dashboard_breadcrumbs & fix_localize
This commit is contained in:
@@ -63,8 +63,8 @@ function MakeJournalEntriesForm({
|
||||
}, [changePageTitle, changePageSubtitle, manualJournal]);
|
||||
|
||||
const validationSchema = Yup.object().shape({
|
||||
journal_number: Yup.string().required(),
|
||||
date: Yup.date().required(),
|
||||
journal_number: Yup.string().required().label(formatMessage({id:'journal_number_'})),
|
||||
date: Yup.date().required().label(formatMessage({id:'date'})),
|
||||
reference: Yup.string(),
|
||||
description: Yup.string(),
|
||||
entries: Yup.array().of(
|
||||
@@ -147,7 +147,7 @@ function MakeJournalEntriesForm({
|
||||
// Validate the total credit should be eqials total debit.
|
||||
if (totalCredit !== totalDebit) {
|
||||
AppToaster.show({
|
||||
message: 'credit_and_debit_not_equal',
|
||||
message: formatMessage({id:'credit_and_debit_not_equal'}),
|
||||
});
|
||||
setSubmitting(false);
|
||||
return;
|
||||
|
||||
@@ -33,14 +33,14 @@ function Invite({ requestInviteAccept, requestInviteMetaByToken }) {
|
||||
}, [shown]);
|
||||
|
||||
const ValidationSchema = Yup.object().shape({
|
||||
first_name: Yup.string().required(formatMessage({ id: 'required' })),
|
||||
last_name: Yup.string().required(formatMessage({ id: 'required' })),
|
||||
first_name: Yup.string().required().label(formatMessage({id:'first_name_'})),
|
||||
last_name: Yup.string().required().label(formatMessage({id:'last_name_'})),
|
||||
phone_number: Yup.string()
|
||||
.matches()
|
||||
.required(formatMessage({ id: 'required' })),
|
||||
.required().label(formatMessage({id:''})),
|
||||
password: Yup.string()
|
||||
.min(4, 'Password has to be longer than 4 characters!')
|
||||
.required('Password is required!'),
|
||||
.min(4)
|
||||
.required().label(formatMessage({id:'password'}))
|
||||
});
|
||||
|
||||
const inviteMeta = useAsync(() => {
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import React, { useMemo, useState } from 'react';
|
||||
import { Link, useHistory } from 'react-router-dom';
|
||||
import * as Yup from 'yup';
|
||||
|
||||
|
||||
import { useFormik } from 'formik';
|
||||
import { FormattedMessage as T, useIntl } from 'react-intl';
|
||||
import {
|
||||
@@ -34,14 +36,15 @@ function Login({
|
||||
const [shown, setShown] = useState(false);
|
||||
const passwordRevealer = () => { setShown(!shown); };
|
||||
|
||||
|
||||
// Validation schema.
|
||||
const loginValidationSchema = Yup.object().shape({
|
||||
const loginValidationSchema = Yup.object().shape({
|
||||
crediential: Yup.string()
|
||||
.required(formatMessage({ id: 'required' }))
|
||||
.email(formatMessage({ id: 'invalid_email_or_phone_number' })),
|
||||
.required()
|
||||
.email().label(formatMessage({id:'email'})),
|
||||
password: Yup.string()
|
||||
.required(formatMessage({ id: 'required' }))
|
||||
.min(4),
|
||||
.required()
|
||||
.min(4).label(formatMessage({id:'password'}))
|
||||
});
|
||||
|
||||
// Formik validation schema and submit handler.
|
||||
@@ -69,7 +72,7 @@ function Login({
|
||||
const toastBuilders = [];
|
||||
if (errors.find((e) => e.type === ERRORS_TYPES.INVALID_DETAILS)) {
|
||||
toastBuilders.push({
|
||||
message: formatMessage({id:'email_and_password_entered_did_not_match'}),
|
||||
message: formatMessage({ id: 'email_and_password_entered_did_not_match' }),
|
||||
intent: Intent.DANGER,
|
||||
});
|
||||
}
|
||||
@@ -110,7 +113,7 @@ function Login({
|
||||
<FormGroup
|
||||
label={<T id={'email_or_phone_number'} />}
|
||||
intent={(errors.crediential && touched.crediential) && Intent.DANGER}
|
||||
helperText={<ErrorMessage name={'crediential'} {...{errors, touched}} />}
|
||||
helperText={<ErrorMessage name={'crediential'} {...{ errors, touched }} />}
|
||||
className={'form-group--crediential'}
|
||||
>
|
||||
<InputGroup
|
||||
@@ -119,13 +122,13 @@ function Login({
|
||||
{...getFieldProps('crediential')}
|
||||
/>
|
||||
</FormGroup>
|
||||
|
||||
|
||||
<FormGroup
|
||||
label={<T id={'password'} />}
|
||||
labelInfo={passwordRevealerTmp}
|
||||
intent={(errors.password && touched.password) && Intent.DANGER}
|
||||
helperText={<ErrorMessage name={'password'} {...{errors, touched}} />}
|
||||
className={'form-group--password has-password-revealer'}
|
||||
helperText={<ErrorMessage name={'password'} {...{ errors, touched }} />}
|
||||
className={'form-group--password has-password-revealer'}
|
||||
>
|
||||
<InputGroup
|
||||
large={true}
|
||||
@@ -134,12 +137,12 @@ function Login({
|
||||
{...getFieldProps('password')}
|
||||
/>
|
||||
</FormGroup>
|
||||
|
||||
|
||||
<div className={'login-form__checkbox-section'}>
|
||||
<Checkbox
|
||||
large={true}
|
||||
className={'checkbox--remember-me'}>
|
||||
<T id={'keep_me_logged_in'} />
|
||||
<T id={'keep_me_logged_in'} />
|
||||
</Checkbox>
|
||||
</div>
|
||||
|
||||
@@ -155,7 +158,7 @@ function Login({
|
||||
</Button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
<div class="authentication-page__footer-links">
|
||||
<Link to={'/auth/send_reset_password'}>
|
||||
<T id={'forget_my_password'} />
|
||||
|
||||
@@ -10,6 +10,7 @@ import {
|
||||
FormGroup,
|
||||
Spinner,
|
||||
} from '@blueprintjs/core';
|
||||
|
||||
import { Row, Col } from 'react-grid-system';
|
||||
import { Link, useHistory } from 'react-router-dom';
|
||||
import withAuthenticationActions from './withAuthenticationActions';
|
||||
@@ -29,18 +30,19 @@ function Register({ requestRegister }) {
|
||||
}, [shown]);
|
||||
|
||||
const ValidationSchema = Yup.object().shape({
|
||||
organization_name: Yup.string().required(formatMessage({ id: 'required' })),
|
||||
first_name: Yup.string().required(formatMessage({ id: 'required' })),
|
||||
last_name: Yup.string().required(formatMessage({ id: 'required' })),
|
||||
organization_name: Yup.string().required().label(formatMessage({id:'organization_name_'})),
|
||||
first_name: Yup.string().required().label(formatMessage({id:'first_name_'})),
|
||||
last_name: Yup.string().required().label(formatMessage({id:'last_name_'})),
|
||||
email: Yup.string()
|
||||
.email()
|
||||
.required(formatMessage({ id: 'required' })),
|
||||
.required()
|
||||
.label(formatMessage({ id: 'email' })),
|
||||
phone_number: Yup.string()
|
||||
.matches()
|
||||
.required(formatMessage({ id: 'required' })),
|
||||
.required().label(formatMessage({id:'phone_number_'})),
|
||||
password: Yup.string()
|
||||
.min(4, 'Password has to be longer than 8 characters!')
|
||||
.required('Password is required!'),
|
||||
.min(4)
|
||||
.required().label(formatMessage({id:'password'})),
|
||||
});
|
||||
|
||||
const initialValues = useMemo(
|
||||
|
||||
@@ -17,18 +17,21 @@ import withAuthenticationActions from './withAuthenticationActions';
|
||||
import AuthInsider from 'containers/Authentication/AuthInsider';
|
||||
import { FormattedMessage as T, useIntl } from 'react-intl';
|
||||
|
||||
|
||||
|
||||
function ResetPassword({ requestResetPassword }) {
|
||||
const { formatMessage } = useIntl();
|
||||
const { token } = useParams();
|
||||
const history = useHistory();
|
||||
|
||||
|
||||
const ValidationSchema = Yup.object().shape({
|
||||
password: Yup.string()
|
||||
.min(4, 'Password has to be longer than 4 characters!')
|
||||
.required('Password is required!'),
|
||||
.min(4)
|
||||
.required().label(formatMessage({id:'password'})),
|
||||
confirm_password: Yup.string()
|
||||
.oneOf([Yup.ref('password'), null], 'Passwords must match')
|
||||
.required('Confirm Password is required'),
|
||||
.oneOf([Yup.ref('password'), null])
|
||||
.required().label(formatMessage({id:'confirm_password'})),
|
||||
});
|
||||
|
||||
const initialValues = useMemo(
|
||||
|
||||
@@ -4,7 +4,6 @@ import { useFormik } from 'formik';
|
||||
import { FormattedMessage as T, useIntl } from 'react-intl';
|
||||
import { Link, useHistory } from 'react-router-dom';
|
||||
import { Button, InputGroup, Intent, FormGroup } from '@blueprintjs/core';
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import { compose } from 'utils';
|
||||
|
||||
@@ -21,9 +20,9 @@ function SendResetPassword({ requestSendResetPassword }) {
|
||||
|
||||
// Validation schema.
|
||||
const ValidationSchema = Yup.object().shape({
|
||||
crediential: Yup.string('')
|
||||
.required(formatMessage({ id: 'required' }))
|
||||
.email(formatMessage({ id: 'invalid_email_or_phone_numner' })),
|
||||
crediential: Yup.string()
|
||||
.required()
|
||||
.email().label(formatMessage({id:''})),
|
||||
});
|
||||
|
||||
const initialValues = useMemo(
|
||||
|
||||
@@ -52,11 +52,11 @@ function AccountFormDialog({
|
||||
}) {
|
||||
const { formatMessage } = useIntl();
|
||||
const accountFormValidationSchema = Yup.object().shape({
|
||||
name: Yup.string().required(formatMessage({ id: 'required' })),
|
||||
name: Yup.string().required().label(formatMessage({id:'account_name_'})),
|
||||
code: Yup.number(),
|
||||
account_type_id: Yup.string()
|
||||
.nullable()
|
||||
.required(formatMessage({ id: 'required' })),
|
||||
.required().label(formatMessage({id:'account_type_id'})),
|
||||
description: Yup.string().trim()
|
||||
});
|
||||
|
||||
|
||||
@@ -46,13 +46,11 @@ function CurrencyDialog({
|
||||
}) {
|
||||
const {formatMessage} = useIntl();
|
||||
|
||||
const ValidationSchema = Yup.object().shape({
|
||||
currency_name: Yup.string().required(
|
||||
formatMessage({ id: 'required' })
|
||||
),
|
||||
const validationSchema = Yup.object().shape({
|
||||
currency_name: Yup.string().required().label(formatMessage({id:'currency_name_'})),
|
||||
currency_code: Yup.string()
|
||||
.max(4)
|
||||
.required(formatMessage({ id: 'required' })),
|
||||
.required().label(formatMessage({id:'currency_code_'})),
|
||||
});
|
||||
const initialValues = useMemo(() => ({
|
||||
currency_name: '',
|
||||
@@ -63,9 +61,9 @@ function CurrencyDialog({
|
||||
values,
|
||||
errors,
|
||||
touched,
|
||||
isSubmitting,
|
||||
setFieldValue,
|
||||
getFieldProps,
|
||||
isSubmitting,
|
||||
handleSubmit,
|
||||
resetForm,
|
||||
} = useFormik({
|
||||
@@ -74,13 +72,13 @@ function CurrencyDialog({
|
||||
...(payload.action === 'edit' &&
|
||||
pick(currency, Object.keys(initialValues))),
|
||||
},
|
||||
validationSchema: ValidationSchema,
|
||||
validationSchema: validationSchema,
|
||||
onSubmit: (values, { setSubmitting }) => {
|
||||
if (payload.action === 'edit') {
|
||||
requestEditCurrency(currency.id, values).then((response) => {
|
||||
closeDialog(name);
|
||||
AppToaster.show({
|
||||
message: 'the_currency_has_been_edited',
|
||||
message: formatMessage({id:'the_currency_has_been_successfully_edited'}),
|
||||
intent: Intent.SUCCESS,
|
||||
});
|
||||
setSubmitting(false);
|
||||
@@ -92,7 +90,7 @@ function CurrencyDialog({
|
||||
requestSubmitCurrencies(values).then((response) => {
|
||||
closeDialog(name);
|
||||
AppToaster.show({
|
||||
message: 'the_currency_has_been_submit',
|
||||
message: formatMessage({id:'the_currency_has_been_successfully_created'}),
|
||||
intent: Intent.SUCCESS,
|
||||
});
|
||||
setSubmitting(false);
|
||||
|
||||
@@ -49,9 +49,9 @@ function ExchangeRateDialog({
|
||||
const [selectedItems, setSelectedItems] = useState({});
|
||||
|
||||
const validationSchema = Yup.object().shape({
|
||||
exchange_rate: Yup.number().required(),
|
||||
currency_code: Yup.string().max(3).required(),
|
||||
date: Yup.date().required(),
|
||||
exchange_rate: Yup.number().required().label(formatMessage({id:'exchange_rate_'})),
|
||||
currency_code: Yup.string().max(3).required(formatMessage({id:'currency_code_'})),
|
||||
date: Yup.date().required().label(formatMessage({id:'date'})),
|
||||
});
|
||||
|
||||
const initialValues = useMemo(() => ({
|
||||
|
||||
@@ -37,12 +37,12 @@ function InviteUserDialog({
|
||||
}, false);
|
||||
|
||||
const validationSchema = Yup.object().shape({
|
||||
first_name: Yup.string().required(formatMessage({ id: 'required' })),
|
||||
last_name: Yup.string().required(formatMessage({ id: 'required' })),
|
||||
first_name: Yup.string().required().label(formatMessage({id:'first_name_'})),
|
||||
last_name: Yup.string().required().label(formatMessage({id:'last_name_'})),
|
||||
email: Yup.string()
|
||||
.email()
|
||||
.required(formatMessage({ id: 'required' })),
|
||||
phone_number: Yup.number().required(formatMessage({ id: 'required' })),
|
||||
.required().label(formatMessage({id:'email'})),
|
||||
phone_number: Yup.number().required().label(formatMessage({id:'phone_number_'})),
|
||||
});
|
||||
|
||||
const initialValues = useMemo(
|
||||
|
||||
@@ -61,7 +61,7 @@ function ItemCategoryDialog({
|
||||
() => requestFetchItemCategories());
|
||||
|
||||
const validationSchema = Yup.object().shape({
|
||||
name: Yup.string().required(),
|
||||
name: Yup.string().required().label(formatMessage({id:'category_name_'})),
|
||||
parent_category_id: Yup.string().nullable(),
|
||||
description: Yup.string().trim()
|
||||
});
|
||||
|
||||
@@ -30,7 +30,7 @@ function ItemFromDialog({
|
||||
const [state, setState] = useState({});
|
||||
const { formatMessage } = useIntl();
|
||||
const ValidationSchema = Yup.object().shape({
|
||||
name: Yup.string().required(formatMessage({ id: 'required' })),
|
||||
name: Yup.string().required().label(formatMessage({id:'category_name_'})),
|
||||
description: Yup.string().trim(),
|
||||
});
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ function UserFormDialog({
|
||||
}, false);
|
||||
|
||||
const validationSchema = Yup.object().shape({
|
||||
email: Yup.string().email().required(),
|
||||
email: Yup.string().email().required().label(formatMessage({id:'email'})),
|
||||
});
|
||||
|
||||
const initialValues = {
|
||||
|
||||
@@ -31,8 +31,8 @@ export default function BalanceSheetHeader({
|
||||
to_date: moment(pageFilter.to_date).toDate(),
|
||||
},
|
||||
validationSchema: Yup.object().shape({
|
||||
from_date: Yup.date().required(),
|
||||
to_date: Yup.date().min(Yup.ref('from_date')).required(),
|
||||
from_date: Yup.date().required().label(formatMessage({id:'from_data'})),
|
||||
to_date: Yup.date().min(Yup.ref('from_date')).required().label(formatMessage({id:'to_date'})),
|
||||
}),
|
||||
onSubmit: (values, actions) => {
|
||||
onSubmitFilter(values);
|
||||
|
||||
@@ -26,8 +26,8 @@ export default function JournalHeader({
|
||||
to_date: moment(pageFilter.to_date).toDate()
|
||||
},
|
||||
validationSchema: Yup.object().shape({
|
||||
from_date: Yup.date().required(),
|
||||
to_date: Yup.date().min(Yup.ref('from_date')).required(),
|
||||
from_date: Yup.date().required().label(formatMessage({id:'from_date'})),
|
||||
to_date: Yup.date().min(Yup.ref('from_date')).required().label(formatMessage({id:'to_date'})),
|
||||
}),
|
||||
onSubmit: (values, actions) => {
|
||||
onSubmitFilter(values);
|
||||
|
||||
@@ -25,8 +25,8 @@ export default function TrialBalanceSheetHeader({
|
||||
to_date: moment(pageFilter.to_date).toDate()
|
||||
},
|
||||
validationSchema: Yup.object().shape({
|
||||
from_date: Yup.date().required(),
|
||||
to_date: Yup.date().min(Yup.ref('from_date')).required(),
|
||||
from_date: Yup.date().required().label(formatMessage({id:'from_date'})),
|
||||
to_date: Yup.date().min(Yup.ref('from_date')).required().label(formatMessage({id:'to_date'})),
|
||||
}),
|
||||
onSubmit: (values, { setSubmitting }) => {
|
||||
onSubmitFilter(values);
|
||||
|
||||
@@ -67,13 +67,13 @@ const ItemForm = ({
|
||||
|
||||
const validationSchema = Yup.object().shape({
|
||||
active: Yup.boolean(),
|
||||
name: Yup.string().required(),
|
||||
type: Yup.string().trim().required(),
|
||||
name: Yup.string().required().label(formatMessage({id:'item_name_'})),
|
||||
type: Yup.string().trim().required().label(formatMessage({id:'item_type_'})),
|
||||
sku: Yup.string().trim(),
|
||||
cost_price: Yup.number(),
|
||||
sell_price: Yup.number(),
|
||||
cost_account_id: Yup.number().required(),
|
||||
sell_account_id: Yup.number().required(),
|
||||
cost_account_id: Yup.number().required().label(formatMessage({id:'cost_account_id'})),
|
||||
sell_account_id: Yup.number().required().label(formatMessage({id:'sell_account_id'})),
|
||||
inventory_account_id: Yup.number().when('type', {
|
||||
is: (value) => value === 'inventory',
|
||||
then: Yup.number().required(),
|
||||
|
||||
@@ -32,7 +32,7 @@ function GeneralPreferences({
|
||||
requestSubmitOptions,
|
||||
requestFetchOptions,
|
||||
}) {
|
||||
const intl = useIntl();
|
||||
const {formatMessage} = useIntl();
|
||||
const [selectedItems, setSelectedItems] = useState({});
|
||||
const [timeZone, setTimeZone] = useState('');
|
||||
|
||||
@@ -65,16 +65,16 @@ function GeneralPreferences({
|
||||
];
|
||||
|
||||
const validationSchema = Yup.object().shape({
|
||||
name: Yup.string().required(intl.formatMessage({ id: 'required' })),
|
||||
industry: Yup.string().required(intl.formatMessage({ id: 'required' })),
|
||||
location: Yup.string().required(intl.formatMessage({ id: 'required' })),
|
||||
name: Yup.string().required().label(formatMessage({id:'organization_name_'})),
|
||||
industry: Yup.string().required().label(formatMessage({id:'organization_industry_'})),
|
||||
location: Yup.string().required().label(formatMessage({id:'location'})),
|
||||
base_currency: Yup.string().required(
|
||||
intl.formatMessage({ id: 'required' })
|
||||
formatMessage({ id: 'required' })
|
||||
),
|
||||
fiscal_year: Yup.string().required(intl.formatMessage({ id: 'required' })),
|
||||
language: Yup.string().required(intl.formatMessage({ id: 'required' })),
|
||||
// time_zone: Yup.object().required(intl.formatMessage({ id: 'required' })),
|
||||
date_format: Yup.date().required(intl.formatMessage({ id: 'required' })),
|
||||
fiscal_year: Yup.string().required().label(formatMessage({id:'base_currency_'})),
|
||||
language: Yup.string().required().label(formatMessage({id:'language'})),
|
||||
// time_zone: Yup.object().required()..label(formatMessage({id:''})),
|
||||
date_format: Yup.date().required().label(formatMessage({id:'date_format_'})),
|
||||
});
|
||||
|
||||
const {
|
||||
|
||||
Reference in New Issue
Block a user