From 96cb3177aa429f3c368271e7cb73d00918e256ef Mon Sep 17 00:00:00 2001 From: "a.bouhuolia" Date: Mon, 27 Dec 2021 16:01:22 +0200 Subject: [PATCH] feat: WIP role form localization. --- src/common/permissionsSchema.js | 29 ++++++++++--------- .../Users/Roles/RolesForm/components.js | 8 +++-- .../Users/Roles/RolesForm/utils.js | 6 ++-- src/lang/ar/index.json | 12 +++++++- src/lang/en/index.json | 12 ++++++-- 5 files changed, 45 insertions(+), 22 deletions(-) diff --git a/src/common/permissionsSchema.js b/src/common/permissionsSchema.js index b319e3cdd..f8d3c591a 100644 --- a/src/common/permissionsSchema.js +++ b/src/common/permissionsSchema.js @@ -1,4 +1,5 @@ import { chain } from 'lodash'; +import intl from 'react-intl-universal'; import { AbilitySubject, AccountAction, @@ -30,21 +31,20 @@ const PermissionColumn = { Edit: 'edit', }; -export const permissions = [ +export const getPermissionsSchema = () => [ { - label: 'Items & Inventory', + label: intl.get('permissions.items_inventory'), type: ModulePermissionsStyle.Columns, serviceFullAccess: true, - moduleFullAccess: true, columns: [ - { label: 'View', key: 'view' }, - { label: 'Create', key: 'create' }, - { label: 'Edit', key: 'edit' }, - { label: 'Delete', key: 'delete' }, + { label: intl.get('permissions.column.view'), key: 'view' }, + { label: intl.get('permissions.column.create'), key: 'create' }, + { label: intl.get('permissions.column.edit'), key: 'edit' }, + { label: intl.get('permissions.column.delete'), key: 'delete' }, ], services: [ { - label: 'Items', + label: intl.get('permissions.items'), subject: AbilitySubject.Item, permissions: [ { label: 'View', key: ItemAction.View, relatedColumn: PermissionColumn.View }, @@ -54,7 +54,7 @@ export const permissions = [ ], }, { - label: 'Inventory adjustments', + label: intl.get('permissions.inventory_adjustment'), subject: AbilitySubject.InventoryAdjustment, permissions: [ { label: 'View', key: ItemAction.View, relatedColumn: PermissionColumn.View }, @@ -174,11 +174,7 @@ export const permissions = [ label: 'Sale Receipt', subject: AbilitySubject.Receipt, permissions: [ - { - label: 'View', - key: SaleReceiptAction.View, - relatedColumn: PermissionColumn.View, - }, + { label: 'View', key: SaleReceiptAction.View, relatedColumn: PermissionColumn.View, }, { label: 'Create', key: SaleReceiptAction.Create, @@ -514,7 +510,10 @@ export const permissions = [ }, ]; + export function getPermissionsSchemaService(subject) { + const permissions = getPermissionsSchema(); + return chain(permissions) .map((perm) => perm.services) .flatten() @@ -523,6 +522,8 @@ export function getPermissionsSchemaService(subject) { } export function getPermissionsSchemaServices() { + const permissions = getPermissionsSchema(); + return chain(permissions) .map((module) => module.services) .flatten() diff --git a/src/containers/Preferences/Users/Roles/RolesForm/components.js b/src/containers/Preferences/Users/Roles/RolesForm/components.js index 48d31824c..11f86d829 100644 --- a/src/containers/Preferences/Users/Roles/RolesForm/components.js +++ b/src/containers/Preferences/Users/Roles/RolesForm/components.js @@ -3,8 +3,8 @@ import { Checkbox, Popover } from '@blueprintjs/core'; import styled from 'styled-components'; import { Field } from 'formik'; -import { permissions, ModulePermissionsStyle } from 'common/permissionsSchema'; -import { Card, If, ButtonLink, Choose } from 'components'; +import { getPermissionsSchema, ModulePermissionsStyle } from 'common/permissionsSchema'; +import { Card, If, ButtonLink, Choose, T } from 'components'; import { getSerivceColumnPermission, getServiceExtraPermissions, @@ -167,7 +167,7 @@ function ModulePermissionsTableHead() { - Full Access + {columns.map((column) => ( {column.label} @@ -354,6 +354,8 @@ function ModulePermissions({ module }) { * @return {React.JSX} */ export const RolesPermissionList = () => { + const permissions = getPermissionsSchema(); + return ( {permissions.map((module) => ( diff --git a/src/containers/Preferences/Users/Roles/RolesForm/utils.js b/src/containers/Preferences/Users/Roles/RolesForm/utils.js index 7cac3cb25..d6efc6443 100644 --- a/src/containers/Preferences/Users/Roles/RolesForm/utils.js +++ b/src/containers/Preferences/Users/Roles/RolesForm/utils.js @@ -2,7 +2,7 @@ import { chain, isEmpty, castArray, memoize } from 'lodash'; import * as R from 'ramda'; import { DepGraph } from 'dependency-graph'; import { - permissions as PERMISSIONS_SCHEMA, + getPermissionsSchema, getPermissionsSchemaService, getPermissionsSchemaServices, } from 'common/permissionsSchema'; @@ -266,7 +266,9 @@ export const handleCheckboxFullAccessChange = R.curry( * Retrieves all flatten modules permissions. */ export function getAllFlattenPermissionsSchema() { - return chain(PERMISSIONS_SCHEMA) + const permissions = getPermissionsSchema(); + + return chain(permissions) .map((module) => module.services) .flatten() .map((module) => diff --git a/src/lang/ar/index.json b/src/lang/ar/index.json index 9ce2ed2da..fc2a6faf0 100644 --- a/src/lang/ar/index.json +++ b/src/lang/ar/index.json @@ -1674,7 +1674,17 @@ "inventory_adjustment.column.product":"المنتج", "invoice.convert_to_credit_note":"تحويل إلى إشعار دائن", "bill.convert_to_credit_note":"تحويل إلى إشعار مدين", - "overdue":"متأخرّة" + "overdue":"متأخرّة", + + "permissions.column.view": "عرض", + "permissions.column.full_access": "تحكم كامل", + "permissions.column.delete": "حذف", + "permissions.column.edit": "تعديل", + "permissions.column.create": "اضافة", + + "permissions.items_inventory": "منتجات والمخزون", + "permissions.inventory_adjustment": "تسويات المخزون", + "permissions.items": "المنتجات" } diff --git a/src/lang/en/index.json b/src/lang/en/index.json index b1893835a..831d7085d 100644 --- a/src/lang/en/index.json +++ b/src/lang/en/index.json @@ -1670,7 +1670,15 @@ "inventory_adjustment.column.product":"Product", "invoice.convert_to_credit_note":"Convert to Credit Note", "bill.convert_to_credit_note":"Convert to Vendor Credit", - "overdue":"Overdue" - + "overdue":"Overdue", + "permissions.column.view": "View", + "permissions.column.full_access": "Full Access", + "permissions.column.delete": "Delete", + "permissions.column.edit": "Edit", + "permissions.column.create": "Create", + + "permissions.items_inventory": "Items & Inventory", + "permissions.inventory_adjustment": "Inventory Adjustment", + "permissions.items": "Items" } \ No newline at end of file