fix: correct text errors and add automatic translations

Details:
- Fixed various text errors across the application.
- Added automatic translations to improve localization.
feat_faro
adriano 2024-09-02 10:32:29 -05:00
parent 6450fb6ea7
commit 7aba8c02f2
20 changed files with 300 additions and 134 deletions

View File

@ -2320,7 +2320,7 @@ async function setSoport(ticket: any, wbot: any, contact: any) {
botSendMessage( botSendMessage(
ticket, ticket,
`_*Respuesta*_\n\n*code_resp*: ${code_resp._}\n*msg_resp*: ${msg_resp._}` `_*Respuesta*_\n\n*code_resp*: ${code_resp._}\n*msg_resp*: ${msg_resp._}\nGracias por contactarte con nosotros, tu id estará super recomendado... recuerda que te queremos ver , feliz como una lombriz 😃`
); );
} else { } else {
console.error( console.error(

View File

@ -45,7 +45,7 @@ import {
import ptBrLocale from "date-fns/locale/pt-BR"; import ptBrLocale from "date-fns/locale/pt-BR";
import esLocale from 'date-fns/locale/es';
const ResponsiveTimePickers = (props) => { const ResponsiveTimePickers = (props) => {
@ -63,7 +63,7 @@ const ResponsiveTimePickers = (props) => {
<Fragment> <Fragment>
<MuiPickersUtilsProvider utils={DateFnsUtils} locale={ptBrLocale}> <MuiPickersUtilsProvider utils={DateFnsUtils} locale={esLocale}>
<TimePicker <TimePicker
variant="outline" variant="outline"
label={props.title} label={props.title}

View File

@ -11,6 +11,7 @@ import { TimePicker, DatePicker } from 'formik-material-ui-pickers'
import DateFnsUtils from '@date-io/date-fns' import DateFnsUtils from '@date-io/date-fns'
import ptBrLocale from "date-fns/locale/pt-BR" import ptBrLocale from "date-fns/locale/pt-BR"
import esLocale from 'date-fns/locale/es';
import { WhatsAppsContext } from "../../context/WhatsApp/WhatsAppsContext" import { WhatsAppsContext } from "../../context/WhatsApp/WhatsAppsContext"
@ -257,7 +258,7 @@ const ConfigModal = ({ open, onClose, change }) => {
}} }}
> >
{({ values, touched, errors, isSubmitting }) => ( {({ values, touched, errors, isSubmitting }) => (
<MuiPickersUtilsProvider utils={DateFnsUtils} locale={ptBrLocale}> <MuiPickersUtilsProvider utils={DateFnsUtils} locale={esLocale}>
<Form> <Form>
<DialogContent dividers> <DialogContent dividers>
@ -299,7 +300,7 @@ const ConfigModal = ({ open, onClose, change }) => {
<Field <Field
component={TimePicker} component={TimePicker}
name="startTimeBus" name="startTimeBus"
label="Inicio atendimento" label={i18n.t('configModal.titles.startService')}
ampm={false} ampm={false}
openTo="hours" openTo="hours"
views={['hours', 'minutes',]} views={['hours', 'minutes',]}
@ -309,7 +310,7 @@ const ConfigModal = ({ open, onClose, change }) => {
<Field <Field
component={TimePicker} component={TimePicker}
name="endTimeBus" name="endTimeBus"
label="Fim atendimento" label={i18n.t('configModal.titles.endService')}
ampm={false} ampm={false}
openTo="hours" openTo="hours"
views={['hours', 'minutes',]} views={['hours', 'minutes',]}
@ -325,13 +326,13 @@ const ConfigModal = ({ open, onClose, change }) => {
checked={values.businessTimeEnable} checked={values.businessTimeEnable}
/> />
} }
label={'Ativar/Desativar'} /> label={i18n.t('configModal.titles.enableDisable')} />
</div> </div>
<div> <div>
<Field <Field
as={TextField} as={TextField}
label={'Mensagem fora do horário de atendimento'} label={i18n.t('configModal.titles.outOfHours')}
type="messageBus" type="messageBus"
multiline multiline
rows={5} rows={5}
@ -355,7 +356,7 @@ const ConfigModal = ({ open, onClose, change }) => {
<Field <Field
component={TimePicker} component={TimePicker}
name="startTimeBusSaturday" name="startTimeBusSaturday"
label="Inicio atendimentos" label={i18n.t('configModal.titles.startService')}
ampm={false} ampm={false}
openTo="hours" openTo="hours"
views={['hours', 'minutes',]} views={['hours', 'minutes',]}
@ -365,7 +366,7 @@ const ConfigModal = ({ open, onClose, change }) => {
<Field <Field
component={TimePicker} component={TimePicker}
name="endTimeBusSaturday" name="endTimeBusSaturday"
label="Fim atendimento" label={i18n.t('configModal.titles.endService')}
ampm={false} ampm={false}
openTo="hours" openTo="hours"
views={['hours', 'minutes',]} views={['hours', 'minutes',]}
@ -381,13 +382,13 @@ const ConfigModal = ({ open, onClose, change }) => {
checked={values.businessTimeEnableSaturday} checked={values.businessTimeEnableSaturday}
/> />
} }
label={'Ativar/Desativar'} /> label={i18n.t('configModal.titles.enableDisable')} />
</div> </div>
<div> <div>
<Field <Field
as={TextField} as={TextField}
label={'Mensagem fora do horário de atendimento sábado'} label={i18n.t('configModal.titles.outOfHoursSaturday')}
type="messageBusSaturday" type="messageBusSaturday"
multiline multiline
rows={5} rows={5}
@ -405,7 +406,7 @@ const ConfigModal = ({ open, onClose, change }) => {
</div> </div>
{/* SABADO FIM */} {/* SABADO FIM */}
<br /> <br />
{/* Saturday and Sunday date */} {/* Saturday and Sunday date */}
<div className={classes.multFieldLine} style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}> <div className={classes.multFieldLine} style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
@ -430,13 +431,13 @@ const ConfigModal = ({ open, onClose, change }) => {
checked={values.enableWeekendMessage} checked={values.enableWeekendMessage}
/> />
} }
label={'Ativar/Desativar'} label={i18n.t('configModal.titles.enableDisable')}
/> />
</div> </div>
<div> <div>
<Field <Field
as={TextField} as={TextField}
label={'Mensagem para final de semana'} label={i18n.t('configModal.titles.forTheWeekend')}
type="weekendMessage" type="weekendMessage"
multiline multiline
rows={5} rows={5}
@ -461,7 +462,7 @@ const ConfigModal = ({ open, onClose, change }) => {
<Field <Field
component={DatePicker} component={DatePicker}
name="holidayDate" name="holidayDate"
label="Data do feriado" label={i18n.t('configModal.titles.holiday')}
format="dd/MM/yyyy" format="dd/MM/yyyy"
fullWidth fullWidth
/> />
@ -475,13 +476,13 @@ const ConfigModal = ({ open, onClose, change }) => {
checked={values.holidayDateEnable} checked={values.holidayDateEnable}
/> />
} }
label={'Ativar/Desativar'} label={i18n.t('configModal.titles.enableDisable')}
/> />
</div> </div>
<div> <div>
<Field <Field
as={TextField} as={TextField}
label={'Mensagem para feriado'} label={i18n.t('configModal.titles.holidayMessage')}
type="holidayDateMessage" type="holidayDateMessage"
multiline multiline
rows={5} rows={5}
@ -524,13 +525,13 @@ const ConfigModal = ({ open, onClose, change }) => {
checked={values.ticketExpirationEnable} checked={values.ticketExpirationEnable}
/> />
} }
label={'Ativar/Desativar'} label={i18n.t('configModal.titles.enableDisable')}
/> />
</div> </div>
<div> <div>
<Field <Field
as={TextField} as={TextField}
label={'Mensagem por falta de atividade no atendimento'} label={i18n.t('configModal.titles.inactivityMessage')}
type="ticketExpirationMsg" type="ticketExpirationMsg"
multiline multiline
rows={5} rows={5}
@ -569,7 +570,7 @@ const ConfigModal = ({ open, onClose, change }) => {
size={24} size={24}
className={classes.buttonProgress} className={classes.buttonProgress}
/> />
) : 'Salvar'} ) : i18n.t('configModal.titles.save')}
</Button> </Button>
</DialogActions> </DialogActions>
</Form> </Form>

View File

@ -23,6 +23,8 @@ import CheckCircleIcon from "@material-ui/icons/CheckCircle";
import ErrorIcon from "@material-ui/icons/Error"; import ErrorIcon from "@material-ui/icons/Error";
import RemoveCircleIcon from "@material-ui/icons/RemoveCircle"; import RemoveCircleIcon from "@material-ui/icons/RemoveCircle";
import { i18n } from "../../translate/i18n";
const CardUser = ({ classes, usersOnlineInfo, logout }) => { const CardUser = ({ classes, usersOnlineInfo, logout }) => {
const [search, setSearch] = React.useState(""); const [search, setSearch] = React.useState("");
@ -46,14 +48,14 @@ const CardUser = ({ classes, usersOnlineInfo, logout }) => {
color="primary" color="primary"
style={{ marginBottom: "16px" }} style={{ marginBottom: "16px" }}
> >
Lista de Usuários {i18n.t('dashboard.titles.listUser')}
</Typography> </Typography>
</Grid> </Grid>
<Grid item sx={8} width="100%"> <Grid item sx={8} width="100%">
<Box sx={{ marginBottom: 2, display: "flex", gap: "12px" }}> <Box sx={{ marginBottom: 2, display: "flex", gap: "12px" }}>
<TextField <TextField
id="outlined-basic" id="outlined-basic"
label="Usuário" label={i18n.t('dashboard.titles.user')}
variant="standard" variant="standard"
value={search} value={search}
onChange={handlesearch} onChange={handlesearch}
@ -70,7 +72,7 @@ const CardUser = ({ classes, usersOnlineInfo, logout }) => {
<MenuItem value={null}>Todos</MenuItem> <MenuItem value={null}>Todos</MenuItem>
<MenuItem value={"online"}>Online</MenuItem> <MenuItem value={"online"}>Online</MenuItem>
<MenuItem value={"offline"}>Offline</MenuItem> <MenuItem value={"offline"}>Offline</MenuItem>
<MenuItem value={"not"}>Não entrou</MenuItem> <MenuItem value={"not"}>{i18n.t('dashboard.titles.notEnter')}</MenuItem>
</Select> </Select>
</FormControl> </FormControl>
</Box> </Box>
@ -161,7 +163,7 @@ const CardUser = ({ classes, usersOnlineInfo, logout }) => {
<Typography component="p" color="textPrimary" paragraph> <Typography component="p" color="textPrimary" paragraph>
{user.sumOnlineTime && user.sumOnlineTime.sum {user.sumOnlineTime && user.sumOnlineTime.sum
? user.sumOnlineTime.sum ? user.sumOnlineTime.sum
: "Não entrou Hoje"} : i18n.t('dashboard.titles.notEnterToday')}
</Typography> </Typography>
</Typography> </Typography>
</CardContent> </CardContent>

View File

@ -75,7 +75,7 @@ const TableUser = ({ classes, usersOnlineInfo, logout }) => {
<MenuItem value={null}>Todos</MenuItem> <MenuItem value={null}>Todos</MenuItem>
<MenuItem value={"online"}>Online</MenuItem> <MenuItem value={"online"}>Online</MenuItem>
<MenuItem value={"offline"}>Offline</MenuItem> <MenuItem value={"offline"}>Offline</MenuItem>
<MenuItem value={"not"}>Não entrou</MenuItem> <MenuItem value={"not"}>{i18n.t('dashboard.titles.notEnter')}</MenuItem>
</Select> </Select>
</FormControl> </FormControl>
</Box> </Box>
@ -221,7 +221,7 @@ const TableUser = ({ classes, usersOnlineInfo, logout }) => {
</div> </div>
</TableCell> </TableCell>
<TableCell> <TableCell>
{user.sumOnlineTime ? user.sumOnlineTime.sum : "Não entrou"} {user.sumOnlineTime ? user.sumOnlineTime.sum : i18n.t('dashboard.titles.notEnter')}
</TableCell> </TableCell>
<TableCell> <TableCell>
{user.statusOnline && user.statusOnline.status === "online" ? ( {user.statusOnline && user.statusOnline.status === "online" ? (

View File

@ -13,7 +13,7 @@ import {
import ptBrLocale from "date-fns/locale/pt-BR"; import ptBrLocale from "date-fns/locale/pt-BR";
import esLocale from 'date-fns/locale/es';
function formatDateDatePicker(data){ function formatDateDatePicker(data){
return String(new Date(data).getFullYear())+'-'+ return String(new Date(data).getFullYear())+'-'+
@ -50,7 +50,7 @@ function ResponsiveDatePickers(props) {
return ( return (
<Fragment> <Fragment>
<MuiPickersUtilsProvider utils={DateFnsUtils} locale={ptBrLocale}> <MuiPickersUtilsProvider utils={DateFnsUtils} locale={esLocale}>
<KeyboardDatePicker <KeyboardDatePicker
// autoOk // autoOk

View File

@ -45,7 +45,7 @@ import {
import ptBrLocale from "date-fns/locale/pt-BR"; import ptBrLocale from "date-fns/locale/pt-BR";
import esLocale from 'date-fns/locale/es';
function formatDate(strDate){ function formatDate(strDate){
const date = strDate.split(' ')[0].split('/') const date = strDate.split(' ')[0].split('/')
@ -70,7 +70,7 @@ const ResponsiveTimePickers = (props) => {
<Fragment> <Fragment>
<MuiPickersUtilsProvider utils={DateFnsUtils} locale={ptBrLocale}> <MuiPickersUtilsProvider utils={DateFnsUtils} locale={esLocale}>
<TimePicker <TimePicker
variant="outline" variant="outline"
label={props.title} label={props.title}

View File

@ -5,7 +5,6 @@ import { Formik, Form, Field } from "formik"
import { toast } from "react-toastify" import { toast } from "react-toastify"
import openSocket from 'socket.io-client' import openSocket from 'socket.io-client'
import { import {
makeStyles, makeStyles,
Button, Button,
@ -191,7 +190,7 @@ const PositionModal = ({
<div className={classes.textQuickAnswerContainer}> <div className={classes.textQuickAnswerContainer}>
<Field <Field
as={TextField} as={TextField}
label={'Nome'} label={i18n.t('dashboard.titles.name')}
name="name" name="name"
autoFocus autoFocus
error={touched.name && Boolean(errors.name)} error={touched.name && Boolean(errors.name)}

View File

@ -15,7 +15,7 @@ import {
import ptBrLocale from "date-fns/locale/pt-BR"; import ptBrLocale from "date-fns/locale/pt-BR";
import esLocale from 'date-fns/locale/es';
function formatDateDatePicker(data){ function formatDateDatePicker(data){
return String(new Date(data).getFullYear())+'-'+ return String(new Date(data).getFullYear())+'-'+
@ -52,7 +52,7 @@ function ResponsiveDatePickers(props) {
return ( return (
<Fragment> <Fragment>
<MuiPickersUtilsProvider utils={DateFnsUtils} locale={ptBrLocale}> <MuiPickersUtilsProvider utils={DateFnsUtils} locale={esLocale}>
<KeyboardDatePicker <KeyboardDatePicker
// autoOk // autoOk

View File

@ -52,7 +52,7 @@ const Modal = (props) => {
const dataChat = props.data.map((dt) => { const dataChat = props.data.map((dt) => {
return { return {
'fromMe': dt.fromMe ? 'Atendente' : 'Cliente', 'fromMe': dt.fromMe ? i18n.t('dashboard.titles.attendant') : 'Cliente',
'body': dt.body, 'body': dt.body,
'createdAt': dt.createdAt 'createdAt': dt.createdAt
} }

View File

@ -11,7 +11,8 @@ import FormControl from '@mui/material/FormControl';
import InputLabel from '@mui/material/InputLabel'; import InputLabel from '@mui/material/InputLabel';
import MenuItem from '@mui/material/MenuItem'; import MenuItem from '@mui/material/MenuItem';
import Select from '@mui/material/Select'; import Select from '@mui/material/Select';
import { i18n } from "../../translate/i18n";
@ -56,11 +57,11 @@ useEffect(()=>{
open={open} open={open}
onClose={handleClose} onClose={handleClose}
> >
<DialogTitle>Relatórios</DialogTitle> <DialogTitle>{i18n.t('dashboard.titles.dialogTitle')}</DialogTitle>
<DialogContent> <DialogContent>
<DialogContentText> <DialogContentText>
Escolha uma opção de relatório abaixo {i18n.t('dashboard.titles.dialogContentText')}
</DialogContentText> </DialogContentText>
<Box <Box

View File

@ -261,8 +261,8 @@ const UserModal = ({ open, onClose, userId, }) => {
fullWidth fullWidth
/> />
<div className={classes.multFieldLine}> <div className={classes.multFieldLine}>
<label style={{display: 'flex', alignItems:'center'}}> <label style={{display: 'flex', alignItems:'center'}}>
Transferir para outras filas {i18n.t('dashboard.titles.transfer')}
<Switch <Switch
name= 'transferToOtherQueues' name= 'transferToOtherQueues'
checked={checked} checked={checked}

View File

@ -189,7 +189,7 @@ const MainListItems = (props) => {
/> />
<ListItemLink <ListItemLink
to="/report" to="/report"
primary="Relatório" primary={i18n.t("mainDrawer.listItems.reports")}
icon={<ReportOutlinedIcon />} icon={<ReportOutlinedIcon />}
/> />
</> </>
@ -242,7 +242,7 @@ const MainListItems = (props) => {
(getSettingValue('hasCampaign') === 'enabled' || user.profile === 'master') && ( (getSettingValue('hasCampaign') === 'enabled' || user.profile === 'master') && (
<ListItemLink <ListItemLink
to="/campaign" to="/campaign"
primary="Campanha" primary={i18n.t("mainDrawer.listItems.campaign") || 'Campaign'}
icon={<CampaignIcon />} icon={<CampaignIcon />}
/> />
) )

View File

@ -5,6 +5,8 @@ import { PieChart as RechartsPieChart, Pie, Cell, ResponsiveContainer, Tooltip }
import Title from './Title'; import Title from './Title';
import { i18n } from "../../translate/i18n";
const generateDataExample = (amount) => { const generateDataExample = (amount) => {
const arr = [] const arr = []
for (let i = 1; i <= amount; i++) { for (let i = 1; i <= amount; i++) {
@ -76,7 +78,7 @@ const PieChart = ({ data = dataExample }) => {
> >
<Box width="100%" height="100%" position="sticky" top="0" zIndex={1000}> <Box width="100%" height="100%" position="sticky" top="0" zIndex={1000}>
<Box sx={{ position: "absolute" }}> <Box sx={{ position: "absolute" }}>
<Title>Tickets encerramento</Title> <Title>{i18n.t('dashboard.titles.title')}</Title>
</Box> </Box>
<ResponsiveContainer width="100%" height="100%"> <ResponsiveContainer width="100%" height="100%">
<RechartsPieChart width={400} height={400}> <RechartsPieChart width={400} height={400}>

View File

@ -14,7 +14,7 @@ import Info from "@material-ui/icons/Info"
import SelectField from "../../components/Report/SelectField" import SelectField from "../../components/Report/SelectField"
import { AuthContext } from "../../context/Auth/AuthContext" import { AuthContext } from "../../context/Auth/AuthContext"
// import { i18n } from "../../translate/i18n"; import { i18n } from "../../translate/i18n";
import Chart from "./Chart" import Chart from "./Chart"
import PieChart from "./PieChart" import PieChart from "./PieChart"
import openSocket from "socket.io-client" import openSocket from "socket.io-client"
@ -472,7 +472,7 @@ const Dashboard = () => {
func={handleSelectedQueue} func={handleSelectedQueue}
textBoxFieldSelected={'All'} textBoxFieldSelected={'All'}
emptyField={false} emptyField={false}
header={'Filas'} header={i18n.t('dashboard.titles.selectQueues')}
currencies={user.queues.map((obj) => { currencies={user.queues.map((obj) => {
return { 'value': obj.id, 'label': obj.name } return { 'value': obj.id, 'label': obj.name }
})} /> })} />
@ -485,7 +485,7 @@ const Dashboard = () => {
variant="outlined" variant="outlined"
> >
<Typography component="h3" variant="h6" color="primary" paragraph> <Typography component="h3" variant="h6" color="primary" paragraph>
Aguardando {i18n.t('dashboard.titles.waiting')}
</Typography> </Typography>
<Grid item> <Grid item>
<Typography component="h1" variant="h4"> <Typography component="h1" variant="h4">
@ -501,7 +501,7 @@ const Dashboard = () => {
variant="outlined" variant="outlined"
> >
<Typography component="h3" variant="h6" color="primary" style={{ marginBottom: "0" }} paragraph> <Typography component="h3" variant="h6" color="primary" style={{ marginBottom: "0" }} paragraph>
Em Atendimento {i18n.t('dashboard.titles.inService')}
</Typography> </Typography>
<Typography paragraph style={{ fontSize: "12px", margin: "0px" }}>Hoje/Todo Periodo</Typography> <Typography paragraph style={{ fontSize: "12px", margin: "0px" }}>Hoje/Todo Periodo</Typography>
@ -520,7 +520,7 @@ const Dashboard = () => {
variant="outlined" variant="outlined"
> >
<Typography component="h3" variant="h6" color="primary" paragraph> <Typography component="h3" variant="h6" color="primary" paragraph>
Fechados {i18n.t('dashboard.titles.ticketsClosed')}
</Typography> </Typography>
<Grid item> <Grid item>
<Typography component="h1" variant="h4"> <Typography component="h1" variant="h4">
@ -551,7 +551,7 @@ const Dashboard = () => {
color="primary" color="primary"
style={{ marginBottom: "16px" }} style={{ marginBottom: "16px" }}
> >
Usuários {i18n.t('dashboard.titles.users')}
<Tooltip <Tooltip
title={`Os dados informados abaixo é baseado na data: ${new Date().toLocaleDateString( title={`Os dados informados abaixo é baseado na data: ${new Date().toLocaleDateString(
"pt-BR", "pt-BR",

View File

@ -25,16 +25,16 @@ import Switch from '@mui/material/Switch'
const label = { inputProps: { 'aria-label': 'Size switch demo' } } const label = { inputProps: { 'aria-label': 'Size switch demo' } }
const report = [ const report = [
{ 'value': '1', 'label': 'Atendimento por atendentes' }, { 'value': '1', 'label': `${i18n.t("reports.listTitles.title1_1")}` },
{ 'value': '2', 'label': 'Usuários online/offline' }, { 'value': '2', 'label': `${i18n.t("reports.listTitles.title3_1")}` },
{ 'value': '3', 'label': 'Relatorio de atendimento por numeros' }, { 'value': '3', 'label': `${i18n.t("reports.listTitles.title4_1")}` },
{ 'value': '4', 'label': 'Relatorio de atendimento por filas' }, { 'value': '4', 'label': `${i18n.t("reports.listTitles.title5_1")}` },
] ]
const reportOptType = [ const reportOptType = [
{ 'value': '1', 'label': 'Padrão' }, { 'value': '1', 'label': i18n.t('reportOptType.listTitles.title1') },
{ 'value': '2', 'label': 'Sintético' }, { 'value': '2', 'label': i18n.t('reportOptType.listTitles.title2') },
{ 'value': '3', 'label': 'Analítico' } { 'value': '3', 'label': i18n.t('reportOptType.listTitles.title3') }
] ]
@ -838,11 +838,11 @@ const Report = () => {
<Box sx={{ display: 'flex', flexDirection: 'column', padding: '10px 0', }}> <Box sx={{ display: 'flex', flexDirection: 'column', padding: '10px 0', }}>
<FormControlLabel <FormControlLabel
control={<Checkbox checked={selectedValue === 'created'} onChange={() => handleCheckBoxChange('created')} />} control={<Checkbox checked={selectedValue === 'created'} onChange={() => handleCheckBoxChange('created')} />}
label="Criado" label="Creado"
/> />
<FormControlLabel <FormControlLabel
control={<Checkbox checked={selectedValue === 'updated'} onChange={() => handleCheckBoxChange('updated')} />} control={<Checkbox checked={selectedValue === 'updated'} onChange={() => handleCheckBoxChange('updated')} />}
label="Atualizado" label="Actualizado"
/> />
</Box> : </Box> :
@ -896,7 +896,7 @@ const Report = () => {
localization={{ localization={{
header: { header: {
actions: 'Deslogar' actions: 'Unidad'
}, },
}} }}
@ -906,7 +906,7 @@ const Report = () => {
[ [
// { title: 'Foto', field: 'ticket.contact.profilePicUrl', render: rowData => <img src={rowData['ticket.contact.profilePicUrl']} alt="imagem de perfil do whatsapp" style={{ width: 40, borderRadius: '50%' }} /> }, // { title: 'Foto', field: 'ticket.contact.profilePicUrl', render: rowData => <img src={rowData['ticket.contact.profilePicUrl']} alt="imagem de perfil do whatsapp" style={{ width: 40, borderRadius: '50%' }} /> },
{ title: 'Nome', field: 'name', cellStyle: { whiteSpace: 'nowrap' }, }, { title: 'Nombre', field: 'name', cellStyle: { whiteSpace: 'nowrap' }, },
{ {
title: 'Status', field: 'statusOnline.status', title: 'Status', field: 'statusOnline.status',
@ -935,11 +935,11 @@ const Report = () => {
}, },
{ title: 'Tempo online', field: 'sumOnlineTime.sum' }, { title: `${i18n.t('reports.onlineTime')}`, field: 'sumOnlineTime.sum' },
{ title: `${i18n.t("reports.dateStart")}`, field: 'startDate' }, { title: `${i18n.t("reports.dateStart")}`, field: 'startDate' },
{ title: `${i18n.t("reports.dateEnd")}`, field: 'endDate' }, { title: `${i18n.t("reports.dateEnd")}`, field: 'endDate' },
{ title: 'Em atendimento', field: 'sumOpen.count' }, { title: `${i18n.t('reports.inService')}`, field: 'sumOpen.count' },
{ title: 'Finalizado', field: 'sumClosed.count' }, { title: `${i18n.t('reports.finished')}`, field: 'sumClosed.count' },
] ]
} }
@ -1001,20 +1001,20 @@ const Report = () => {
title={i18n.t("reports.listTitles.title4_1")} title={i18n.t("reports.listTitles.title4_1")}
columns={ columns={
!checkedRemote ? [ !checkedRemote ? [
{ title: 'Unidade', field: 'name', cellStyle: { whiteSpace: 'nowrap' }, }, { title: i18n.t('reports.listColumns.column3_1'), field: 'name', cellStyle: { whiteSpace: 'nowrap' }, },
{ title: 'Conversas iniciadas', field: 'startedByAgent', }, { title: i18n.t('reports.listColumns.column3_3'), field: 'startedByAgent', },
{ title: 'Conversas recebidas', field: 'startedByClient' }, { title: i18n.t('reports.listColumns.column3_4'), field: 'startedByClient' },
{ title: `Conversas finalizadas`, field: 'closedChat' }, { title: i18n.t('reports.listColumns.column3_5'), field: 'closedChat' },
{ title: `Tempo médio de espera`, field: 'avgChatWaitingTime' }, { title: i18n.t('reports.listColumns.column3_6'), field: 'avgChatWaitingTime' },
{ title: 'Aguardando', field: 'pendingChat' } { title: i18n.t('reports.listColumns.column3_7'), field: 'pendingChat' }
] : ] :
[ [
{ title: 'Unidade', field: 'name', cellStyle: { whiteSpace: 'nowrap' }, }, { title: i18n.t('reports.listColumns.column3_1'), field: 'name', cellStyle: { whiteSpace: 'nowrap' }, },
{ title: 'Conversas iniciadas', field: 'startedByAgent', }, { title: i18n.t('reports.listColumns.column3_3'), field: 'startedByAgent', },
{ title: 'Conversas respondidas', field: 'startedByClient' }, { title: i18n.t('reports.listColumns.column3_4'), field: 'startedByClient' },
{ title: `Conversas finalizadas`, field: 'closedChat' }, { title: i18n.t('reports.listColumns.column3_5'), field: 'closedChat' },
{ title: 'Aguardando', field: 'pendingChat' } { title: i18n.t('reports.listColumns.column3_7'), field: 'pendingChat' }
] ]
} }
@ -1054,9 +1054,9 @@ const Report = () => {
columns={ columns={
!checkedRemote ? [ !checkedRemote ? [
{ title: 'Unidade', field: 'name', cellStyle: { whiteSpace: 'nowrap' }, }, { title: i18n.t('reports.listColumns.column3_1'), field: 'name', cellStyle: { whiteSpace: 'nowrap' }, },
{ {
title: 'Fila', field: 'queueName', title: i18n.t('reports.listColumns.column3_2'), field: 'queueName',
cellStyle: (evt, rowData) => { cellStyle: (evt, rowData) => {
return { return {
whiteSpace: 'nowrap', whiteSpace: 'nowrap',
@ -1066,19 +1066,19 @@ const Report = () => {
} }
}, },
{ title: 'Conversas iniciadas', field: 'startedByAgent', }, { title: i18n.t('reports.listColumns.column3_3'), field: 'startedByAgent', },
{ title: 'Conversas recebidas', field: 'startedByClient' }, { title: i18n.t('reports.listColumns.column3_4'), field: 'startedByClient' },
{ title: `Conversas finalizadas`, field: 'closedChat' }, { title: i18n.t('reports.listColumns.column3_5'), field: 'closedChat' },
{ title: `Tempo médio de espera`, field: 'avgChatWaitingTime' }, { title: i18n.t('reports.listColumns.column3_6'), field: 'avgChatWaitingTime' },
{ title: 'Aguardando', field: 'pendingChat' } { title: i18n.t('reports.listColumns.column3_7'), field: 'pendingChat' }
] : ] :
[ [
{ title: 'Unidade', field: 'name', cellStyle: { whiteSpace: 'nowrap' }, }, { title: i18n.t('reports.listColumns.column3_1'), field: 'name', cellStyle: { whiteSpace: 'nowrap' }, },
{ {
title: 'Fila', field: 'queueName', title: i18n.t('reports.listColumns.column3_2'), field: 'queueName',
cellStyle: (evt, rowData) => { cellStyle: (evt, rowData) => {
return { return {
whiteSpace: 'nowrap', whiteSpace: 'nowrap',
@ -1088,10 +1088,10 @@ const Report = () => {
} }
}, },
{ title: 'Conversas iniciadas', field: 'startedByAgent', }, { title: i18n.t('reports.listColumns.column3_3'), field: 'startedByAgent', },
{ title: 'Conversas respondidas', field: 'startedByClient' }, { title: i18n.t('reports.listColumns.column3_4'), field: 'startedByClient' },
{ title: `Conversas finalizadas`, field: 'closedChat' }, { title: i18n.t('reports.listColumns.column3_5'), field: 'closedChat' },
{ title: 'Aguardando', field: 'pendingChat' } { title: i18n.t('reports.listColumns.column3_7'), field: 'pendingChat' }
] ]
} }

View File

@ -217,7 +217,7 @@ const StatusChatEnd = () => {
<ConfirmationModal <ConfirmationModal
title={ title={
deletingStatusChatEnds && deletingStatusChatEnds &&
`Você tem certeza que quer excluir esta Status de encerramento: ${deletingStatusChatEnds.name `${i18n.t('dashboard.titles.confirmationModal')} ${deletingStatusChatEnds.name
}?` }?`
} }
open={confirmModalOpen} open={confirmModalOpen}
@ -233,7 +233,7 @@ const StatusChatEnd = () => {
statusChatEndId={selectedStatusChatEnd && selectedStatusChatEnd.id} statusChatEndId={selectedStatusChatEnd && selectedStatusChatEnd.id}
></StatusChatEndModal> ></StatusChatEndModal>
<MainHeader> <MainHeader>
<Title>{"Status de encerramento"}</Title> <Title>{i18n.t('dashboard.titles.status')}</Title>
<MainHeaderButtonsWrapper> <MainHeaderButtonsWrapper>
<TextField <TextField
placeholder={i18n.t("quickAnswers.searchPlaceholder")} placeholder={i18n.t("quickAnswers.searchPlaceholder")}
@ -266,13 +266,13 @@ const StatusChatEnd = () => {
<TableHead> <TableHead>
<TableRow> <TableRow>
<TableCell align="center"> <TableCell align="center">
{"Status de encerramento"} {i18n.t('dashboard.titles.status')}
</TableCell> </TableCell>
<TableCell align="center"> <TableCell align="center">
{"Mensagem de despedida"} {i18n.t('quickAnswers.table.farewellMessage')}
</TableCell> </TableCell>
<TableCell align="center"> <TableCell align="center">
{"Padrão"} {i18n.t('quickAnswers.table.standard')}
</TableCell> </TableCell>
<TableCell align="center"> <TableCell align="center">
{i18n.t("quickAnswers.table.actions")} {i18n.t("quickAnswers.table.actions")}

View File

@ -51,14 +51,53 @@ const messages = {
} }
}, },
table_users:{ table_users: {
title: 'User List', title: 'User List',
column0: 'Name', column0: 'Name',
column1: 'In Service/Finished', column1: 'In Service/Finished',
column2: 'Open by Queue', column2: 'Open by Queue',
column3: 'Closed by Queue', column3: 'Closed by Queue',
column4: 'Online time', column4: 'Online time',
column5: 'Actions', column5: 'Actions',
},
titles: {
selectQueues: 'Queues',
waiting: 'In Waiting',
inService: 'In Service',
users: 'Users',
name: 'Name',
attendant: 'Attendant',
dialogContentText: 'Choose a reporting option below.',
transfer: 'Transfer to other queues',
title: 'Closing tickets',
confirmationModal: 'Are you sure you want to remove this closing state: ',
status: 'Closing status',
listUser: 'List user',
user: 'user',
notEnter: 'Did not enter',
notEnterToday: 'Did not enter today',
ticketsClosed: 'Closed'
}
},
reportOptType: {
listTitles: {
title1: 'Standard',
title2: 'Synthetic',
title3: 'Analytical'
}
},
configModal: {
titles: {
startService: 'Start Service',
endService: 'End Service',
enableDisable: 'Enable/Disable',
outOfHours: 'Message outside opening hours',
outOfHoursSaturday: 'Message outside opening hours Saturday',
forTheWeekend: 'Weekend message',
holiday: 'Holiday date',
holidayMessage: 'Message for holidays',
inactivityMessage: 'Message due to lack of service activity',
save: 'Save'
} }
}, },
connections: { connections: {
@ -294,8 +333,9 @@ const messages = {
queues: "Queues", queues: "Queues",
administration: "Administration", administration: "Administration",
users: "Users", users: "Users",
settings: "Settings", settings: "Settings",
schedules: "Schedules" schedules: "Schedules",
reports: "Reports"
}, },
appBar: { appBar: {
user: { user: {
@ -309,9 +349,11 @@ const messages = {
title0_1: "Reminders/Schedulings", title0_1: "Reminders/Schedulings",
title1_1: "Calls by attendants", title1_1: "Calls by attendants",
title2_1: "Whatsapp chat", title2_1: "Whatsapp chat",
title3_1: "Users online/offline" title3_1: "Users online/offline",
title4_1: "Attendance report by numbers",
title5_1: "Queue service report"
}, },
listColumns:{ listColumns: {
column0_1: 'Actions', column0_1: 'Actions',
column0_2: 'Pic', column0_2: 'Pic',
column0_3: 'Name', column0_3: 'Name',
@ -322,7 +364,7 @@ const messages = {
column0_8: 'Message', column0_8: 'Message',
column1_1: 'Store', column1_1: 'Store',
column1_2: 'Attendant', column1_2: 'Attendant',
column1_5: 'Subject', column1_5: 'Subject',
column1_6: 'Status', column1_6: 'Status',
column1_7: 'Created', column1_7: 'Created',
@ -330,13 +372,22 @@ const messages = {
column1_9: 'Closing status', column1_9: 'Closing status',
column2_1: 'Attendant/Client', column2_1: 'Attendant/Client',
column3_1: 'Unit',
column3_2: 'Row',
column3_3: 'Conversations started',
column3_4: 'Incoming conversations',
column3_5: 'Finished conversations',
column3_6: 'Average waiting time',
column3_7: 'Waiting',
}, },
search: 'Number/Name...', search: 'Number/Name...',
dateStart: 'Start date', dateStart: 'Start date',
dateEnd: 'End date', dateEnd: 'End date',
user: 'User' user: 'User',
onlineTime: 'Online time',
inService: 'In service',
finished: 'Finished'
}, },
notifications: { notifications: {
noTickets: "No notifications.", noTickets: "No notifications.",
@ -367,6 +418,8 @@ const messages = {
shortcut: "Shortcut", shortcut: "Shortcut",
message: "Quick Reply", message: "Quick Reply",
actions: "Actions", actions: "Actions",
farewellMessage: "Farewell message",
standard: "Standard"
}, },
buttons: { buttons: {
add: "Add Quick Reply", add: "Add Quick Reply",

View File

@ -52,15 +52,55 @@ const messages = {
} }
}, },
table_users:{ table_users: {
title: 'Lista de usuarios', title: 'Lista de usuarios',
column0: 'Nombre', column0: 'Nombre',
column1: 'En servicio/Terminado(S)', column1: 'En servicio/Terminado(S)',
column2: 'Abrir por cola', column2: 'Abrir por cola',
column3: 'Cerrado por cola', column3: 'Cerrado por cola',
column4: 'Tiempo Online', column4: 'Tiempo Online',
column5: 'Actions', column5: 'Actions',
},
titles: {
selectQueues: 'Colas',
waiting: 'En espera',
inService: 'En Atendimiento',
users: 'Usuarios',
name: 'Nombre',
attendant: 'Agente',
dialogTitle: 'Reportes',
dialogContentText: 'Escoja una opción de reporte abajo.',
transfer: 'Transferir para otras Colas',
title: 'Cierre de Tickets',
confirmationModal: 'Está seguro de que desea eliminar este estado de cierre: ',
status: 'Status de cierre',
listUser: 'Lista de Usuarios',
user: 'Usuario',
notEnter: 'No ingresó',
notEnterToday: 'No ingresó hoy',
ticketsClosed: 'Cerrados'
}
},
reportOptType: {
listTitles: {
title1: 'Patrón',
title2: 'Sintético',
title3: 'Analítico'
}
},
configModal: {
titles: {
startService: 'Inicio atención',
endService: 'Fin atención',
enableDisable: 'Activar/Desactivar',
outOfHours: 'Mensaje fuera de horario de atención',
outOfHoursSaturday: 'Mensaje fuera del horario de atención sábado',
forTheWeekend: 'Mensaje fin de semana',
holiday: 'Día Festivo',
holidayMessage: 'Mensaje para Festivos',
inactivityMessage: 'Mensaje por falta de actividad',
save: 'Guardar'
} }
}, },
connections: { connections: {
@ -237,7 +277,7 @@ const messages = {
}, },
}, },
ticketsQueueSelect: { ticketsQueueSelect: {
placeholder: "Linhas", placeholder: "Líneas",
}, },
tickets: { tickets: {
toasts: { toasts: {
@ -296,11 +336,13 @@ const messages = {
tickets: "Tickets", tickets: "Tickets",
contacts: "Contactos", contacts: "Contactos",
quickAnswers: "Respuestas rápidas", quickAnswers: "Respuestas rápidas",
queues: "Linhas", queues: "Líneas",
administration: "Administración", administration: "Administración",
users: "Usuarios", users: "Usuarios",
settings: "Configuración", settings: "Configuración",
schedules: "Recordatorio" schedules: "Recordatorio",
reports: "Reportes",
campain: "Campañas"
}, },
appBar: { appBar: {
user: { user: {
@ -312,11 +354,13 @@ const messages = {
reports: { reports: {
listTitles: { listTitles: {
title0_1: "Recordatorios/Programación", title0_1: "Recordatorios/Programación",
title1_1: "Llamadas de asistentes", title1_1: "Atención por agentes",
title2_1: "Chat de whatsapp", title2_1: "Chat de whatsapp",
title3_1: "Usuarios online/offline" title3_1: "Usuarios online/offline",
title4_1: "Reporte de atención por números",
title5_1: "Reporte de atención por colas"
}, },
listColumns:{ listColumns: {
column0_1: 'Acción', column0_1: 'Acción',
column0_2: 'Pic', column0_2: 'Pic',
column0_3: 'Nombre', column0_3: 'Nombre',
@ -327,7 +371,7 @@ const messages = {
column0_8: 'Mensaje', column0_8: 'Mensaje',
column1_1: 'Almacenar', column1_1: 'Almacenar',
column1_2: 'Secretario', column1_2: 'Secretario',
column1_5: 'Tema', column1_5: 'Tema',
column1_6: 'Status', column1_6: 'Status',
column1_7: 'Creado', column1_7: 'Creado',
@ -335,18 +379,28 @@ const messages = {
column1_9: 'Estado de cierre', column1_9: 'Estado de cierre',
column2_1: 'Secretario/Cliente', column2_1: 'Secretario/Cliente',
column3_1: 'Unidad',
column3_2: 'Cola',
column3_3: 'Chats iniciados',
column3_4: 'Chats Recibidos',
column3_5: 'Chats Finalizados',
column3_6: 'Tiempo medio de espera',
column3_7: 'En Espera',
}, },
search: 'Número/Nombre...', search: 'Número/Nombre...',
dateStart: 'Fecha de inicio', dateStart: 'Fecha de inicio',
dateEnd: 'Fecha final', dateEnd: 'Fecha final',
user: 'Usuario' user: 'Usuario',
onlineTime: 'Tiempo online',
inService: 'En servicio',
finished: 'Finalizado'
}, },
notifications: { notifications: {
noTickets: "Sin notificaciones.", noTickets: "Sin notificaciones.",
}, },
queues: { queues: {
title: "Linhas", title: "Líneas",
table: { table: {
name: "Nombre", name: "Nombre",
color: "Color", color: "Color",
@ -363,7 +417,7 @@ const messages = {
}, },
}, },
queueSelect: { queueSelect: {
inputLabel: "Linhas", inputLabel: "Líneas",
}, },
quickAnswers: { quickAnswers: {
title: "Respuestas rápidas", title: "Respuestas rápidas",
@ -371,6 +425,8 @@ const messages = {
shortcut: "Atajo", shortcut: "Atajo",
message: "Respuesta rápida", message: "Respuesta rápida",
actions: "Acciones", actions: "Acciones",
farewellMessage: "Mensaje de despedida",
standard: "Patrón"
}, },
buttons: { buttons: {
add: "Agregar respuesta rápida", add: "Agregar respuesta rápida",

View File

@ -59,6 +59,46 @@ const messages = {
column3: 'Fechados Por Fila', column3: 'Fechados Por Fila',
column4: 'Tempo Online', column4: 'Tempo Online',
column5: 'Ações', column5: 'Ações',
},
titles: {
selectQueues: 'Filas',
waiting: 'Em espera',
inService: 'Em Atendimento',
users: 'Usuários',
name: 'Nome',
attendant: 'Atendente',
dialogTitle: 'Relatórios',
dialogContentText: 'Escolha uma opção de relatório abaixo.',
transfer: 'Transferir para outras filas',
title: 'Tickets encerramento',
confirmationModal: 'Você tem certeza que quer excluir esta Status de encerramento: ' ,
status: 'Status de encerramento',
listUser: 'Lista de Usuarios',
user: 'Usuario',
notEnter: 'Não entrou',
notEnterToday: 'Não entrou hoje',
ticketsClosed: 'Fechados'
}
},
reportOptType: {
listTitles: {
title1: 'Padrão',
title2: 'Sintético',
title3: 'Analítico'
}
},
configModal: {
titles: {
startService: 'Início atendimento',
endService: 'Fim atendimento',
enableDisable: 'Ativar/Desativar',
outOfHours: 'Mensagem fora do horário de atendimento',
outOfHoursSaturday: 'Mensagem fora do horário de atendimento sábado',
forTheWeekend: 'Mensagem fim de semana',
holiday: 'Data do feriado',
holidayMessage: 'Mensagem para feriados',
inactivityMessage: 'Mensagem por falta de atividade no atendimento',
save: 'Salvar'
} }
}, },
connections: { connections: {
@ -299,7 +339,9 @@ const messages = {
administration: "Administração", administration: "Administração",
users: "Usuários", users: "Usuários",
settings: "Configurações", settings: "Configurações",
schedules: "Lembretes" schedules: "Lembretes",
reports: "Relatórios",
campaign: "Campanha"
}, },
appBar: { appBar: {
user: { user: {
@ -336,14 +378,22 @@ const messages = {
column1_9: 'Status de encerramento', column1_9: 'Status de encerramento',
column2_1: 'Atendente/Cliente', column2_1: 'Atendente/Cliente',
column3_1: 'Unidade',
column3_2: 'Fila',
column3_3: 'Conversas iniciadas',
column3_4: 'Conversas recebidas',
column3_5: 'Conversas finalizadas',
column3_6: 'Tempo médio de espera',
column3_7: 'Aguardando',
}, },
search: 'Numer/Nome...', search: 'Numer/Nome...',
dateStart: 'Data início', dateStart: 'Data início',
dateEnd: 'Data fim', dateEnd: 'Data fim',
user: 'Usuário' user: 'Usuário',
onlineTime: 'Tempo online',
inService: 'Em atendimento',
finished: 'Finalizado'
}, },
notifications: { notifications: {
noTickets: "Nenhuma notificação.", noTickets: "Nenhuma notificação.",
@ -374,6 +424,8 @@ const messages = {
shortcut: "Atalho", shortcut: "Atalho",
message: "Resposta Rápida", message: "Resposta Rápida",
actions: "Ações", actions: "Ações",
farewellMessage: "Mensagem de despedida",
standard: "Padrão"
}, },
buttons: { buttons: {
add: "Adicionar Resposta Rápida", add: "Adicionar Resposta Rápida",