diff --git a/app/javascript/components/dashboard/overview-box/component.jsx b/app/javascript/components/dashboard/overview-box/component.jsx index cb0c92e0e6..64e708a8eb 100644 --- a/app/javascript/components/dashboard/overview-box/component.jsx +++ b/app/javascript/components/dashboard/overview-box/component.jsx @@ -63,6 +63,7 @@ const OverviewBox = ({ items, chartData, sumTitle, withTotal, loading, errors }) return (
  • {image && ( - + diff --git a/app/javascript/components/nav/component.jsx b/app/javascript/components/nav/component.jsx index a20ac8fb56..f66c51cce8 100644 --- a/app/javascript/components/nav/component.jsx +++ b/app/javascript/components/nav/component.jsx @@ -3,6 +3,7 @@ import React, { useEffect, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; import CloseIcon from "@material-ui/icons/Close"; +import { useI18n } from "../i18n"; import AgencyLogo from "../agency-logo"; import ModuleLogo from "../module-logo"; import { useThemeHelper } from "../../libs"; @@ -24,6 +25,7 @@ const Nav = () => { const mobileDisplay = useMediaQuery(theme.breakpoints.down("sm")); const dispatch = useDispatch(); const [drawerOpen, setDrawerOpen] = useState(false); + const i18n = useI18n(); useEffect(() => { dispatch(fetchAlerts()); @@ -76,7 +78,7 @@ const Nav = () => {
    - +
    diff --git a/app/javascript/components/pages/admin/agencies-list/container.jsx b/app/javascript/components/pages/admin/agencies-list/container.jsx index 11ea7d1d72..ddfb14aae5 100644 --- a/app/javascript/components/pages/admin/agencies-list/container.jsx +++ b/app/javascript/components/pages/admin/agencies-list/container.jsx @@ -68,6 +68,7 @@ const Container = () => { text={i18n.t("buttons.new")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("buttons.new"), to: ROUTES.admin_agencies_new, component: Link }} diff --git a/app/javascript/components/pages/admin/form-builder/components/clear-buttons/component.jsx b/app/javascript/components/pages/admin/form-builder/components/clear-buttons/component.jsx index a82795192d..b6beb7f64a 100644 --- a/app/javascript/components/pages/admin/form-builder/components/clear-buttons/component.jsx +++ b/app/javascript/components/pages/admin/form-builder/components/clear-buttons/component.jsx @@ -37,6 +37,7 @@ const Component = ({ subformField }) => { type={ACTION_BUTTON_TYPES.default} isCancel rest={{ + "aria-label": i18n.t(`fields.clear_${fieldBy}`), onClick }} /> diff --git a/app/javascript/components/pages/admin/form-builder/components/custom-field-dialog/component.jsx b/app/javascript/components/pages/admin/form-builder/components/custom-field-dialog/component.jsx index 1cc59c992e..9087db5591 100644 --- a/app/javascript/components/pages/admin/form-builder/components/custom-field-dialog/component.jsx +++ b/app/javascript/components/pages/admin/form-builder/components/custom-field-dialog/component.jsx @@ -61,6 +61,7 @@ const Component = () => { text={i18n.t("fields.add_field")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("buttons.new"), onClick: handleDialog }} /> @@ -77,6 +78,7 @@ const Component = () => { text={i18n.t("fields.add_existing_field")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("fields.add_existing_field"), onClick: handleClose, disabled: true, fullWidth: true, @@ -89,6 +91,7 @@ const Component = () => { text={i18n.t("fields.add_custom_field")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("fields.add_custom_field"), onClick: handleCustomFieldSelectorDialog, fullWidth: true, className: css.existingFieldButton @@ -101,6 +104,7 @@ const Component = () => { type={ACTION_BUTTON_TYPES.default} isCancel rest={{ + "aria-label": i18n.t("buttons.cancel"), onClick: handleClose, fullWidth: true, className: css.cancelButton diff --git a/app/javascript/components/pages/admin/forms-list/components/form-filters/component.jsx b/app/javascript/components/pages/admin/forms-list/components/form-filters/component.jsx index 0c8787979b..c6d7b62129 100644 --- a/app/javascript/components/pages/admin/forms-list/components/form-filters/component.jsx +++ b/app/javascript/components/pages/admin/forms-list/components/form-filters/component.jsx @@ -61,6 +61,7 @@ const Component = ({ filterValues, modules, handleSetFilterValue, handleClearVal type={ACTION_BUTTON_TYPES.default} isTransparent rest={{ + "aria-label": i18n.t("clear"), onClick: handleClearValue, variant: "outlined", fullWidth: true diff --git a/app/javascript/components/pages/admin/forms-list/components/reorder-actions/component.jsx b/app/javascript/components/pages/admin/forms-list/components/reorder-actions/component.jsx index 907b0ecfef..c45a6bd5e7 100644 --- a/app/javascript/components/pages/admin/forms-list/components/reorder-actions/component.jsx +++ b/app/javascript/components/pages/admin/forms-list/components/reorder-actions/component.jsx @@ -59,6 +59,7 @@ const Component = ({ handleCancel, handleSuccess, open }) => { type={ACTION_BUTTON_TYPES.default} isCancel rest={{ + "aria-label": i18n.t("buttons.cancel"), onClick: handleCancel, disabled: reorderLoading }} @@ -69,6 +70,7 @@ const Component = ({ handleCancel, handleSuccess, open }) => { text={i18n.t("buttons.save_changes")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("buttons.save_changes"), onClick: handleSuccess, disabled: reorderLoading }} diff --git a/app/javascript/components/pages/admin/lookups-list/component.jsx b/app/javascript/components/pages/admin/lookups-list/component.jsx index 243dd1cac9..666928852d 100644 --- a/app/javascript/components/pages/admin/lookups-list/component.jsx +++ b/app/javascript/components/pages/admin/lookups-list/component.jsx @@ -35,6 +35,7 @@ const Component = () => { text={i18n.t("buttons.new")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("buttons.new"), to: ROUTES.lookups_new, component: Link }} diff --git a/app/javascript/components/pages/admin/roles-form/forms/action-buttons.jsx b/app/javascript/components/pages/admin/roles-form/forms/action-buttons.jsx index 677169df6c..3fb8129e1f 100644 --- a/app/javascript/components/pages/admin/roles-form/forms/action-buttons.jsx +++ b/app/javascript/components/pages/admin/roles-form/forms/action-buttons.jsx @@ -43,6 +43,7 @@ const Component = ({ formMode, formRef, handleCancel, setOpenDeleteDialog }) => text={i18n.t("buttons.edit")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("buttons.edit"), to: `${pathname}/edit`, component: Link }} diff --git a/app/javascript/components/pages/admin/roles-list/container.jsx b/app/javascript/components/pages/admin/roles-list/container.jsx index f9ef0d3104..ea1046384c 100644 --- a/app/javascript/components/pages/admin/roles-list/container.jsx +++ b/app/javascript/components/pages/admin/roles-list/container.jsx @@ -51,6 +51,7 @@ const Container = () => { text={i18n.t("buttons.new")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("buttons.new"), to: ROUTES.admin_roles_new, component: Link }} diff --git a/app/javascript/components/pages/admin/user-groups-list/container.jsx b/app/javascript/components/pages/admin/user-groups-list/container.jsx index 4052105a64..f07706d3b1 100644 --- a/app/javascript/components/pages/admin/user-groups-list/container.jsx +++ b/app/javascript/components/pages/admin/user-groups-list/container.jsx @@ -51,6 +51,7 @@ const Container = () => { text={i18n.t("buttons.new")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("buttons.new"), to: ROUTES.admin_user_groups_new, component: Link }} diff --git a/app/javascript/components/pages/admin/users-list/container.jsx b/app/javascript/components/pages/admin/users-list/container.jsx index 7457719946..92447e3600 100644 --- a/app/javascript/components/pages/admin/users-list/container.jsx +++ b/app/javascript/components/pages/admin/users-list/container.jsx @@ -68,6 +68,7 @@ const Container = () => { text={i18n.t("buttons.new")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("buttons.new"), to: ROUTES.admin_users_new, component: Link }} diff --git a/app/javascript/components/pages/errors/not-authorized/component.jsx b/app/javascript/components/pages/errors/not-authorized/component.jsx index 89ddcff47c..546a76d0c5 100644 --- a/app/javascript/components/pages/errors/not-authorized/component.jsx +++ b/app/javascript/components/pages/errors/not-authorized/component.jsx @@ -28,6 +28,7 @@ const NotAuthorized = () => { text={i18n.t("navigation.home")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("navigation.home"), to: ROUTES.dashboard, component: Link }} diff --git a/app/javascript/components/pages/errors/not-found/component.jsx b/app/javascript/components/pages/errors/not-found/component.jsx index 0c43b67b86..bccea1dd8d 100644 --- a/app/javascript/components/pages/errors/not-found/component.jsx +++ b/app/javascript/components/pages/errors/not-found/component.jsx @@ -28,6 +28,7 @@ const NotFound = () => { text={i18n.t("navigation.home")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("navigation.home"), to: ROUTES.dashboard, component: Link }} diff --git a/app/javascript/components/pages/login/login-form/container.jsx b/app/javascript/components/pages/login/login-form/container.jsx index 7d86a82a74..5115041433 100644 --- a/app/javascript/components/pages/login/login-form/container.jsx +++ b/app/javascript/components/pages/login/login-form/container.jsx @@ -82,6 +82,7 @@ const Container = () => { text={i18n.t("buttons.login")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("buttons.login"), type: "submit" }} /> diff --git a/app/javascript/components/record-form/form/field-types/attachments/attachment-field.jsx b/app/javascript/components/record-form/form/field-types/attachments/attachment-field.jsx index 026504c3a0..9855c68561 100644 --- a/app/javascript/components/record-form/form/field-types/attachments/attachment-field.jsx +++ b/app/javascript/components/record-form/form/field-types/attachments/attachment-field.jsx @@ -4,6 +4,7 @@ import { Box } from "@material-ui/core"; import DeleteIcon from "@material-ui/icons/Delete"; import { makeStyles } from "@material-ui/core/styles"; +import { useI18n } from "../../../../i18n"; import styles from "../../styles.css"; import ActionButton from "../../../../action-button"; import { ACTION_BUTTON_TYPES } from "../../../../action-button/constants"; @@ -15,6 +16,7 @@ import AttachmentPreview from "./attachment-preview"; const AttachmentField = ({ name, index, attachment, disabled, mode, arrayHelpers, value }) => { const css = makeStyles(styles)(); const { attachment_url: attachmentUrl, id, _destroy: destroyed } = value; + const i18n = useI18n(); const fields = buildAttachmentFieldsObject(name, index); @@ -52,6 +54,7 @@ const AttachmentField = ({ name, index, attachment, disabled, mode, arrayHelpers type={ACTION_BUTTON_TYPES.icon} isCancel rest={{ + "aria-label": i18n.t("buttons.delete"), onClick: handleRemove }} /> diff --git a/app/javascript/components/record-form/form/field-types/attachments/attachment-input.jsx b/app/javascript/components/record-form/form/field-types/attachments/attachment-input.jsx index e522dc0374..64fbf23525 100644 --- a/app/javascript/components/record-form/form/field-types/attachments/attachment-input.jsx +++ b/app/javascript/components/record-form/form/field-types/attachments/attachment-input.jsx @@ -66,7 +66,8 @@ const AttachmentInput = ({ attachment, fields, name, value }) => { rest={{ component: "span", disabled: fieldDisabled(), - variant: "outlined" + variant: "outlined", + "aria-label": i18n.t("fields.file_upload_box.select_file_button_text") }} /> )} diff --git a/app/javascript/components/record-form/form/field-types/attachments/attachment-label.jsx b/app/javascript/components/record-form/form/field-types/attachments/attachment-label.jsx index 830f24ed55..99a354fe65 100644 --- a/app/javascript/components/record-form/form/field-types/attachments/attachment-label.jsx +++ b/app/javascript/components/record-form/form/field-types/attachments/attachment-label.jsx @@ -3,11 +3,13 @@ import PropTypes from "prop-types"; import AddIcon from "@material-ui/icons/Add"; import { makeStyles } from "@material-ui/core/styles"; +import { useI18n } from "../../../../i18n"; import styles from "../../styles.css"; import ActionButton from "../../../../action-button"; import { ACTION_BUTTON_TYPES } from "../../../../action-button/constants"; const AttachmentLabel = ({ label, disabled, mode, arrayHelpers, handleAttachmentAddition }) => { + const i18n = useI18n(); const css = makeStyles(styles)(); const isDisabled = !disabled && !mode.isShow; @@ -21,6 +23,7 @@ const AttachmentLabel = ({ label, disabled, mode, arrayHelpers, handleAttachment text="Add" type={ACTION_BUTTON_TYPES.icon} rest={{ + "aria-label": i18n.t("buttons.new"), onClick: () => handleAttachmentAddition(arrayHelpers) }} /> diff --git a/app/javascript/components/record-form/form/field-types/attachments/document-field.jsx b/app/javascript/components/record-form/form/field-types/attachments/document-field.jsx index fe80079845..3808f05f29 100644 --- a/app/javascript/components/record-form/form/field-types/attachments/document-field.jsx +++ b/app/javascript/components/record-form/form/field-types/attachments/document-field.jsx @@ -81,7 +81,7 @@ const DocumentField = ({ {value.description}
    - +
    @@ -91,7 +91,7 @@ const DocumentField = ({
    {title}
    - +
    @@ -104,7 +104,7 @@ const DocumentField = ({ )} {mode.isShow || ( - + )} diff --git a/app/javascript/components/record-form/form/record-form-toolbar.jsx b/app/javascript/components/record-form/form/record-form-toolbar.jsx index 7efd471330..7a5565a141 100644 --- a/app/javascript/components/record-form/form/record-form-toolbar.jsx +++ b/app/javascript/components/record-form/form/record-form-toolbar.jsx @@ -53,6 +53,7 @@ const RecordFormToolbar = ({ type={ACTION_BUTTON_TYPES.default} pending={savingRecord} rest={{ + "aria-label": i18n.t("buttons.save"), onClick: handleFormSubmit }} /> @@ -105,6 +106,7 @@ const RecordFormToolbar = ({ type={ACTION_BUTTON_TYPES.default} isCancel rest={{ + "aria-label": i18n.t("buttons.cancel"), onClick: goBack }} /> @@ -118,6 +120,7 @@ const RecordFormToolbar = ({ text={i18n.t("buttons.edit")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("buttons.new"), to: `/${params.recordType}/${params.id}/edit`, component: Link }} diff --git a/app/javascript/components/record-form/form/subforms/subform-field-array/component.jsx b/app/javascript/components/record-form/form/subforms/subform-field-array/component.jsx index 722f4d6054..2cd7d6507f 100644 --- a/app/javascript/components/record-form/form/subforms/subform-field-array/component.jsx +++ b/app/javascript/components/record-form/form/subforms/subform-field-array/component.jsx @@ -77,6 +77,7 @@ const Component = ({ arrayHelpers, field, formik, i18n, initialSubformValue, mod text={renderAddText} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("buttons.new"), onClick: handleAddSubform }} /> diff --git a/app/javascript/components/record-form/form/subforms/subform-fields/component.jsx b/app/javascript/components/record-form/form/subforms/subform-fields/component.jsx index b9a30818af..ae4d2e70bf 100644 --- a/app/javascript/components/record-form/form/subforms/subform-fields/component.jsx +++ b/app/javascript/components/record-form/form/subforms/subform-fields/component.jsx @@ -120,6 +120,7 @@ const Component = ({ arrayHelpers, field, form, locale, mode, recordType, setDia icon={} type={ACTION_BUTTON_TYPES.icon} rest={{ + "aria-label": i18n.t("buttons.delete"), onClick: () => handleOpenModal(index) }} /> @@ -131,6 +132,7 @@ const Component = ({ arrayHelpers, field, form, locale, mode, recordType, setDia icon={} type={ACTION_BUTTON_TYPES.icon} rest={{ + "aria-label": i18n.t("buttons.edit"), className: css.subformShow, onClick: () => handleEdit(index) }} diff --git a/app/javascript/components/record-list/add-record-menu.jsx b/app/javascript/components/record-list/add-record-menu.jsx index 8b0dfe9547..a5093b2173 100644 --- a/app/javascript/components/record-list/add-record-menu.jsx +++ b/app/javascript/components/record-list/add-record-menu.jsx @@ -70,7 +70,7 @@ const AddRecordMenu = ({ recordType }) => { icon={} text={i18n.t("buttons.new")} type={ACTION_BUTTON_TYPES.default} - rest={{ onClick: handleClick }} + rest={{ "aria-label": i18n.t("buttons.new"), onClick: handleClick }} /> {renderMenu(userModules)} {renderDialog(moduleUniqueId)} diff --git a/app/javascript/components/record-list/create-record-dialog/component.jsx b/app/javascript/components/record-list/create-record-dialog/component.jsx index 59c62d885b..e20f6ae06a 100644 --- a/app/javascript/components/record-list/create-record-dialog/component.jsx +++ b/app/javascript/components/record-list/create-record-dialog/component.jsx @@ -112,7 +112,7 @@ const Component = ({ moduleUniqueId, open, recordType, setOpen }) => { icon={} text={i18n.t("case.create_new_case")} type={ACTION_BUTTON_TYPES.default} - rest={{ onClick: handleCreateNewCase }} + rest={{ "aria-label": i18n.t("case.create_new_case"), onClick: handleCreateNewCase }} />
    @@ -121,6 +121,7 @@ const Component = ({ moduleUniqueId, open, recordType, setOpen }) => { text={i18n.t("navigation.search")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("navigation.search"), onClick: () => bindFormSubmit(formRef) }} /> diff --git a/app/javascript/components/record-list/record-list-toolbar/component.jsx b/app/javascript/components/record-list/record-list-toolbar/component.jsx index f367c4e02a..f46afa332d 100644 --- a/app/javascript/components/record-list/record-list-toolbar/component.jsx +++ b/app/javascript/components/record-list/record-list-toolbar/component.jsx @@ -8,10 +8,13 @@ import RecordActions from "../../record-actions"; import Permission from "../../application/permission"; import { CREATE_RECORDS } from "../../../libs/permissions"; import AddRecordMenu from "../add-record-menu"; +import { useI18n } from "../../i18n"; import { NAME } from "./constants"; const Component = ({ title, recordType, handleDrawer, mobileDisplay, selectedRecords, currentPage, css }) => { + const i18n = useI18n(); + return ( @@ -19,7 +22,7 @@ const Component = ({ title, recordType, handleDrawer, mobileDisplay, selectedRec {mobileDisplay && ( - + )} diff --git a/app/javascript/components/reports-form/components/filters/component.jsx b/app/javascript/components/reports-form/components/filters/component.jsx index 408850e555..b0b06f6159 100644 --- a/app/javascript/components/reports-form/components/filters/component.jsx +++ b/app/javascript/components/reports-form/components/filters/component.jsx @@ -133,10 +133,10 @@ const Container = ({ indexes, setIndexes, allRecordForms, parentFormMethods }) = {formattedReportFilterName} - handleOpenModal(index)}> + handleOpenModal(index)}> - handleEdit(index)}> + handleEdit(index)}> @@ -148,7 +148,7 @@ const Container = ({ indexes, setIndexes, allRecordForms, parentFormMethods }) = <> {i18n.t("report.filters.label")} - + {i18n.t("buttons.new")} diff --git a/app/javascript/components/reports-list/container.jsx b/app/javascript/components/reports-list/container.jsx index 33574178e2..f223277daf 100644 --- a/app/javascript/components/reports-list/container.jsx +++ b/app/javascript/components/reports-list/container.jsx @@ -72,6 +72,7 @@ const Reports = () => { text={i18n.t("buttons.new")} type={ACTION_BUTTON_TYPES.default} rest={{ + "aria-label": i18n.t("buttons.new"), to: ROUTES.reports_new, component: Link }} diff --git a/app/javascript/components/saved-searches/ListSavedSearches.jsx b/app/javascript/components/saved-searches/ListSavedSearches.jsx index 87056861b1..7d38c8deaa 100644 --- a/app/javascript/components/saved-searches/ListSavedSearches.jsx +++ b/app/javascript/components/saved-searches/ListSavedSearches.jsx @@ -81,6 +81,7 @@ const ListSavedSearches = ({ recordType, savedSearches, setTabIndex, setRerender icon={} type={ACTION_BUTTON_TYPES.icon} rest={{ + "aria-label": i18n.t("buttons.delete"), edge: "end", onClick: () => handleDeleteFilter(savedSearch.id) }} diff --git a/config/locales/en.yml b/config/locales/en.yml index de1c719d0b..b682f30bb3 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -250,6 +250,7 @@ en: add_another_option: "Add another option" clear_default: "Clear default" select: "Select" + menu: "Menu" placeholders: subforms: "Click the edit button to add %{form} details"