diff --git a/src/languages/en.js b/src/languages/en.js index be6cdc0bf765..f2246732fba2 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -205,7 +205,6 @@ export default { always: 'Always', daily: 'Daily', mute: 'Mute', - members: 'Members', }, loginField: { addYourPhoneToSettleViaVenmo: 'Add your phone number to settle up via Venmo.', @@ -624,7 +623,6 @@ export default { common: { card: 'Issue corporate cards', workspace: 'Workspace', - edit: 'Edit workspace', settings: 'General settings', reimburse: 'Reimburse receipts', bills: 'Pay bills', @@ -634,6 +632,7 @@ export default { bankAccount: 'Connect bank account', issueAndManageCards: 'Issue and manage cards', reconcileCards: 'Reconcile cards', + growlMessageOnSave: 'Your workspace settings were successfully saved!', }, new: { newWorkspace: 'New workspace', @@ -664,7 +663,7 @@ export default { fastReimbursementsHappyMembers: 'Fast reimbursements = happy members!', viewAllReceipts: 'View all receipts', reimburseReceipts: 'Reimburse receipts', - unlockNextDayReimbursements: 'Unlock next day reimbursements', + unlockNextDayReimbursements: 'Unlock next-day reimbursements', captureNoVBACopyBeforeEmail: 'Ask your workspace members to forward receipts to ', captureNoVBACopyAfterEmail: ' and download the Expensify App to track cash expenses on the go.', unlockNoVBACopy: 'Connect a bank account to reimburse your workspace members online.', @@ -684,11 +683,12 @@ export default { invoiceClientsAndCustomers: 'Invoice clients and customers', invoiceFirstSectionCopy: 'Send beautiful, professional invoices directly to your clients and customers right from within the Expensify app.', viewAllInvoices: 'View all invoices', - unlockOnlineInvoicesCollection: 'Unlock online invoices collection', + unlockOnlineInvoiceCollection: 'Unlock online invoice collection', unlockNoVBACopy: 'Connect your bank account to accept online payments for invoices - by ACH or credit card - to be deposited straight into your account.', moneyBackInAFlash: 'Money back, in a flash!', unlockVBACopy: 'You\'re all set to accept payments by ACH or credit card!', viewUnpaidInvoices: 'View unpaid invoices', + sendInvoice: 'Send invoice', }, travel: { unlockConciergeBookingTravel: 'Unlock Concierge travel booking', @@ -713,7 +713,7 @@ export default { nameInputLabel: 'Name', nameInputHelpText: 'This is the name you will see on your workspace.', nameIsRequiredError: 'You need to define a name for your workspace', - currencyInputLabel: 'Default Currency', + currencyInputLabel: 'Default currency', currencyInputHelpText: 'All expenses on this workspace will be converted to this currency.', save: 'Save', genericFailureMessage: 'An error occurred updating the workspace, please try again.', diff --git a/src/languages/es.js b/src/languages/es.js index 44514918e504..97ba5a6dedd8 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -205,7 +205,6 @@ export default { always: 'Siempre', daily: 'Cada día', mute: 'Nunca', - members: 'Miembros', }, loginField: { addYourPhoneToSettleViaVenmo: 'Agrega tu número de teléfono para pagar usando Venmo.', @@ -626,7 +625,6 @@ export default { common: { card: 'Emitir tarjetas corporativas', workspace: 'Espacio de trabajo', - edit: 'Editar espacio de trabajo', settings: 'Configuración general', reimburse: 'Reembolsar recibos', bills: 'Pagar facturas', @@ -636,6 +634,7 @@ export default { bankAccount: 'Conectar cuenta bancaria', issueAndManageCards: 'Emitir y gestionar tarjetas', reconcileCards: 'Reconciliar tarjetas', + growlMessageOnSave: '¡La configuración del espacio de trabajo se ha guardado correctamente!', }, new: { newWorkspace: 'Nuevo espacio de trabajo', @@ -686,11 +685,12 @@ export default { invoiceClientsAndCustomers: 'Emite facturas a tus clientes', invoiceFirstSectionCopy: 'Envía facturas detalladas y profesionales directamente a tus clientes desde la app de Expensify.', viewAllInvoices: 'Ver facturas emitidas', - unlockOnlineInvoicesCollection: 'Desbloquea el cobro de facturas online', + unlockOnlineInvoiceCollection: 'Desbloquea el cobro de facturas online', unlockNoVBACopy: 'Conecta tu cuenta bancaria para recibir pagos online de facturas - por transferencia o con tarjeta - directamente en tu cuenta.', moneyBackInAFlash: '¡Tu dinero de vuelta en un momento!', unlockVBACopy: '¡Todo listo para recibir pagos por transferencia o con tarjeta!', viewUnpaidInvoices: 'Ver facturas emitidas pendientes', + sendInvoice: 'Enviar factura', }, travel: { unlockConciergeBookingTravel: 'Desbloquea la reserva de viajes con Concierge', diff --git a/src/libs/actions/Policy.js b/src/libs/actions/Policy.js index b4b4994ab51c..b933a03efca0 100644 --- a/src/libs/actions/Policy.js +++ b/src/libs/actions/Policy.js @@ -300,8 +300,9 @@ function uploadAvatar(file) { * * @param {String} policyID * @param {Object} values + * @param {Boolean} [shouldGrowl] */ -function update(policyID, values) { +function update(policyID, values, shouldGrowl = false) { API.UpdatePolicy({policyID, value: JSON.stringify(values), lastModified: null}) .then((policyResponse) => { if (policyResponse.jsonCode !== 200) { @@ -314,6 +315,9 @@ function update(policyID, values) { const updatedValues = {...values, ...{isPolicyUpdating: false}}; Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, updatedValues); + if (shouldGrowl) { + Growl.show(translateLocal('workspace.common.growlMessageOnSave'), CONST.GROWL.SUCCESS, 3000); + } }).catch(() => { Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {isPolicyUpdating: false}); const errorMessage = translateLocal('workspace.editor.genericFailureMessage'); diff --git a/src/pages/ReportDetailsPage.js b/src/pages/ReportDetailsPage.js index c8e54fd02dec..371805e80293 100644 --- a/src/pages/ReportDetailsPage.js +++ b/src/pages/ReportDetailsPage.js @@ -92,7 +92,7 @@ class ReportDetailsPage extends Component { this.menuItems = isArchivedRoom(this.props.report) ? [] : [ { - translationKey: 'reportDetailsPage.members', + translationKey: 'common.members', icon: Users, subtitle: props.report.participants.length, action: () => { Navigation.navigate(ROUTES.getReportParticipantsRoute(props.report.reportID)); }, diff --git a/src/pages/ReportParticipantsPage.js b/src/pages/ReportParticipantsPage.js index e922786f4c48..3c8651393a24 100755 --- a/src/pages/ReportParticipantsPage.js +++ b/src/pages/ReportParticipantsPage.js @@ -85,7 +85,7 @@ const ReportParticipantsPage = ({ return ( Navigation.dismissModal()} onBackButtonPress={() => Navigation.navigate(ROUTES.getWorkspaceInitialRoute(policyID))} shouldShowBackButton diff --git a/src/pages/workspace/WorkspaceSettingsPage.js b/src/pages/workspace/WorkspaceSettingsPage.js index 72185e9b6a89..53db39638bff 100644 --- a/src/pages/workspace/WorkspaceSettingsPage.js +++ b/src/pages/workspace/WorkspaceSettingsPage.js @@ -114,7 +114,7 @@ class WorkspaceSettingsPage extends React.Component { const policyID = this.props.policy.id; const currency = this.state.currency; - Policy.update(policyID, {name, avatarURL, outputCurrency: currency}); + Policy.update(policyID, {name, avatarURL, outputCurrency: currency}, true); }).catch(() => { Policy.updateLocalPolicyValues(this.props.policy.id, {isPolicyUpdating: false}); }); @@ -134,7 +134,7 @@ class WorkspaceSettingsPage extends React.Component { return ( {hasVBA => ( diff --git a/src/pages/workspace/invoices/WorkspaceInvoicesFirstSection.js b/src/pages/workspace/invoices/WorkspaceInvoicesFirstSection.js index 9d6ee4fc46a1..7b748e21a7cd 100644 --- a/src/pages/workspace/invoices/WorkspaceInvoicesFirstSection.js +++ b/src/pages/workspace/invoices/WorkspaceInvoicesFirstSection.js @@ -26,7 +26,7 @@ const WorkspaceInvoicesFirstSection = ({translate, policyID}) => ( icon={MoneyEnvelopeBlue} menuItems={[ { - title: translate('workspace.common.invoices'), + title: translate('workspace.invoices.sendInvoice'), onPress: () => openSignedInLink('reports?param={"createInvoice":true}'), icon: Send, shouldShowRightIcon: true, diff --git a/src/pages/workspace/invoices/WorkspaceInvoicesNoVBAView.js b/src/pages/workspace/invoices/WorkspaceInvoicesNoVBAView.js index 882a1b4c986f..8db86ce7160c 100644 --- a/src/pages/workspace/invoices/WorkspaceInvoicesNoVBAView.js +++ b/src/pages/workspace/invoices/WorkspaceInvoicesNoVBAView.js @@ -26,7 +26,7 @@ const WorkspaceInvoicesNoVBAView = ({translate, policyID}) => (