Merge branch 'featrue/roles-permission' of https://github.com/bigcapitalhq/client into featrue/roles-permission

This commit is contained in:
a.bouhuolia
2021-11-26 22:27:37 +02:00
58 changed files with 443 additions and 494 deletions

View File

@@ -1,6 +1,6 @@
export const AbilitySubject = { export const AbilitySubject = {
Item: 'Item', Item: 'Item',
Inventory_Adjustment: 'InventoryAdjustment', InventoryAdjustment: 'InventoryAdjustment',
Estimate: 'SaleEstimate', Estimate: 'SaleEstimate',
Invoice: 'SaleInvoice', Invoice: 'SaleInvoice',
Receipt: 'SaleReceipt', Receipt: 'SaleReceipt',
@@ -16,110 +16,116 @@ export const AbilitySubject = {
Report: 'Report', Report: 'Report',
Preferences: 'Preferences', Preferences: 'Preferences',
ExchangeRate: 'ExchangeRate', ExchangeRate: 'ExchangeRate',
SubscriptionBilling: 'SubscriptionBilling' SubscriptionBilling: 'SubscriptionBilling',
}; };
export const Item_Abilities = { export const ItemAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Edit: 'edit', Edit: 'Edit',
Delete: 'delete', Delete: 'Delete',
}; };
export const Inventory_Adjustment_Abilities = { export const InventoryAdjustmentAction = {
Create: 'create', Create: 'Create',
View: 'view', Edit: 'Edit',
Delete: 'delete', View: 'View',
Delete: 'Delete',
}; };
export const Estimate_Abilities = { export const SaleEstimateAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Edit: 'edit', Edit: 'Edit',
Delete: 'delete', Delete: 'Delete',
NotifyBySms: 'NotifyBySms',
}; };
export const Invoice_Abilities = { export const SaleInvoiceAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Edit: 'edit', Edit: 'Edit',
Delete: 'delete', Delete: 'Delete',
BadDebt: 'bad-debt', Writeoff: 'Writeoff',
NotifyBySms: 'NotifyBySms',
}; };
export const Receipt_Abilities = { export const SaleReceiptAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Edit: 'edit', Edit: 'Edit',
Delete: 'delete', Delete: 'Delete',
NotifyBySms: 'NotifyBySms',
}; };
export const Payment_Receive_Abilities = { export const PaymentReceiveAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Edit: 'edit', Edit: 'Edit',
Delete: 'delete', Delete: 'Delete',
NotifyBySms: 'NotifyBySms',
}; };
export const Bill_Abilities = { export const BillAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Edit: 'edit', Edit: 'Edit',
Delete: 'delete', Delete: 'Delete',
NotifyBySms: 'NotifyBySms',
}; };
export const Payment_Made_Abilities = { export const PaymentMadeAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Edit: 'edit', Edit: 'Edit',
Delete: 'delete', Delete: 'Delete',
}; };
export const Customer_Abilities = { export const CustomerAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Edit: 'edit', Edit: 'Edit',
Delete: 'delete', Delete: 'Delete',
}; };
export const Vendor_Abilities = { export const VendorAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Edit: 'edit', Edit: 'Edit',
Delete: 'delete', Delete: 'Delete',
}; };
export const Account_Abilities = { export const AccountAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Edit: 'edit', Edit: 'Edit',
Delete: 'delete', Delete: 'Delete',
Transactions_Locking: 'TransactionsLocking', TransactionsLocking: 'TransactionsLocking',
}; };
export const Manual_Journal_Abilities = { export const ManualJournalAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Edit: 'edit', Edit: 'Edit',
Delete: 'delete', Delete: 'Delete',
TransactionLocking: 'TransactionLocking' TransactionLocking: 'TransactionLocking',
}; };
export const Expense_Abilities = { export const ExpenseAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Edit: 'edit', Edit: 'Edit',
Delete: 'delete', Delete: 'Delete',
}; };
export const Cashflow_Abilities = { export const CashflowAction = {
View: 'view', View: 'View',
Create: 'create', Create: 'Create',
Delete: 'delete', Delete: 'Delete',
}; };
export const Report_Abilities = { export const ReportsAction = {
ALL:'all', ALL: 'all',
READ_BALANCE_SHEET: 'read-balance-sheet', READ_BALANCE_SHEET: 'read-balance-sheet',
READ_TRIAL_BALANCE_SHEET: 'read-trial-balance-sheet', READ_TRIAL_BALANCE_SHEET: 'read-trial-balance-sheet',
READ_PROFIT_LOSS: 'read-profit-loss', READ_PROFIT_LOSS: 'read-profit-loss',
@@ -140,16 +146,16 @@ export const Report_Abilities = {
}; };
export const PreferencesAbility = { export const PreferencesAbility = {
Mutate: 'Mutate' Mutate: 'Mutate',
} };
export const ExchangeRateAbility ={ export const ExchangeRateAbility = {
View: 'view', View: 'view',
Create: 'create', Create: 'create',
Delete: 'delete', Delete: 'delete',
} };
export const SubscriptionBillingAbility = { export const SubscriptionBillingAbility = {
View: 'view', View: 'view',
Payment: 'payment' Payment: 'payment',
} };

View File

@@ -1,20 +1,20 @@
import React from 'react'; import React from 'react';
import { FormattedMessage as T } from 'components'; import { FormattedMessage as T } from 'components';
import { import {
Invoice_Abilities, SaleInvoiceAction,
Estimate_Abilities, SaleEstimateAction,
AbilitySubject, AbilitySubject,
Receipt_Abilities, SaleReceiptAction,
Customer_Abilities, CustomerAction,
Payment_Receive_Abilities, PaymentReceiveAction,
Bill_Abilities, BillAction,
Vendor_Abilities, VendorAction,
Payment_Made_Abilities, PaymentMadeAction,
Account_Abilities, AccountAction,
Manual_Journal_Abilities, ManualJournalAction,
Expense_Abilities, ExpenseAction,
Item_Abilities, ItemAction,
Report_Abilities, ReportsAction,
} from '../common/abilityOption'; } from '../common/abilityOption';
export const accountsReceivable = [ export const accountsReceivable = [
@@ -26,28 +26,28 @@ export const accountsReceivable = [
description: <T id={'tracking_sales_invoices_with_your_customers'} />, description: <T id={'tracking_sales_invoices_with_your_customers'} />,
link: '/invoices', link: '/invoices',
subject: AbilitySubject.Invoice, subject: AbilitySubject.Invoice,
ability: Invoice_Abilities.View, ability: SaleInvoiceAction.View,
}, },
{ {
title: <T id={'sales_estimates'} />, title: <T id={'sales_estimates'} />,
description: <T id={'manage_your_sales_estimates_to_create_quotes'} />, description: <T id={'manage_your_sales_estimates_to_create_quotes'} />,
link: '/estimates', link: '/estimates',
subject: AbilitySubject.Estimate, subject: AbilitySubject.Estimate,
ability: Estimate_Abilities.View, ability: SaleEstimateAction.View,
}, },
{ {
title: <T id={'sales_receipts'} />, title: <T id={'sales_receipts'} />,
description: <T id={'manage_sales_receipts_for_sales_that_get_paid'} />, description: <T id={'manage_sales_receipts_for_sales_that_get_paid'} />,
link: '/receipts', link: '/receipts',
subject: AbilitySubject.Receipt, subject: AbilitySubject.Receipt,
ability: Receipt_Abilities.View, ability: SaleReceiptAction.View,
}, },
{ {
title: <T id={'customers'} />, title: <T id={'customers'} />,
description: <T id={'manage_the_customers_relations_with_customer'} />, description: <T id={'manage_the_customers_relations_with_customer'} />,
link: '/customers', link: '/customers',
subject: AbilitySubject.Customer, subject: AbilitySubject.Customer,
ability: Customer_Abilities.View, ability: CustomerAction.View,
}, },
{ {
title: <T id={'customers_payments'} />, title: <T id={'customers_payments'} />,
@@ -56,7 +56,7 @@ export const accountsReceivable = [
), ),
link: '/payment-receives', link: '/payment-receives',
subject: AbilitySubject.PaymentReceive, subject: AbilitySubject.PaymentReceive,
ability: Payment_Receive_Abilities.View, ability: PaymentReceiveAction.View,
}, },
], ],
}, },
@@ -73,7 +73,7 @@ export const accountsPayable = [
), ),
link: '/bills', link: '/bills',
subject: AbilitySubject.Bill, subject: AbilitySubject.Bill,
ability: Bill_Abilities.View, ability: BillAction.View,
}, },
{ {
title: <T id={'vendors'} />, title: <T id={'vendors'} />,
@@ -82,14 +82,14 @@ export const accountsPayable = [
), ),
link: '/vendors', link: '/vendors',
subject: AbilitySubject.Vendor, subject: AbilitySubject.Vendor,
ability: Vendor_Abilities.View, ability: VendorAction.View,
}, },
{ {
title: <T id={'vendors_payments'} />, title: <T id={'vendors_payments'} />,
description: <T id={'manage_payments_transactions_to_your_vendors'} />, description: <T id={'manage_payments_transactions_to_your_vendors'} />,
link: '/payment-mades', link: '/payment-mades',
subject: AbilitySubject.PaymentMade, subject: AbilitySubject.PaymentMade,
ability: Payment_Made_Abilities.View, ability: PaymentMadeAction.View,
}, },
], ],
}, },
@@ -110,7 +110,7 @@ export const financialAccounting = [
), ),
link: '/accounts', link: '/accounts',
subject: AbilitySubject.Account, subject: AbilitySubject.Account,
ability: Account_Abilities.View, ability: AccountAction.View,
}, },
{ {
title: <T id={'manual_journal'} />, title: <T id={'manual_journal'} />,
@@ -119,7 +119,7 @@ export const financialAccounting = [
), ),
link: '/manual-journals', link: '/manual-journals',
subject: AbilitySubject.ManualJournal, subject: AbilitySubject.ManualJournal,
ability: Manual_Journal_Abilities.View, ability: ManualJournalAction.View,
}, },
{ {
title: <T id={'expenses'} />, title: <T id={'expenses'} />,
@@ -128,7 +128,7 @@ export const financialAccounting = [
), ),
link: '/expenses', link: '/expenses',
subject: AbilitySubject.Expense, subject: AbilitySubject.Expense,
ability: Expense_Abilities.View, ability: ExpenseAction.View,
}, },
{ {
title: <T id={'financial_statements'} />, title: <T id={'financial_statements'} />,
@@ -137,7 +137,7 @@ export const financialAccounting = [
), ),
link: '/financial-reports', link: '/financial-reports',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.ALL, ability: ReportsAction.ALL,
}, },
], ],
}, },
@@ -154,7 +154,7 @@ export const productsServices = [
), ),
link: '/items', link: '/items',
subject: AbilitySubject.Item, subject: AbilitySubject.Item,
ability: Item_Abilities.View, ability: ItemAction.View,
}, },
{ {
title: <T id={'products_services_categories'} />, title: <T id={'products_services_categories'} />,
@@ -167,8 +167,8 @@ export const productsServices = [
<T id={'manage_your_inventory_adjustment_of_inventory_items'} /> <T id={'manage_your_inventory_adjustment_of_inventory_items'} />
), ),
link: '/inventory-adjustments', link: '/inventory-adjustments',
subject: AbilitySubject.Inventory_Adjustment, subject: AbilitySubject.InventoryAdjustment,
ability: Invoice_Abilities.View, ability: SaleInvoiceAction.View,
}, },
], ],
}, },

View File

@@ -1,11 +1,11 @@
import intl from 'react-intl-universal'; import intl from 'react-intl-universal';
import { import {
AbilitySubject, AbilitySubject,
Invoice_Abilities, SaleInvoiceAction,
Customer_Abilities, CustomerAction,
Vendor_Abilities, VendorAction,
Manual_Journal_Abilities, ManualJournalAction,
Expense_Abilities, ExpenseAction,
} from '../common/abilityOption'; } from '../common/abilityOption';
import { useAbilitiesFilter } from '../hooks'; import { useAbilitiesFilter } from '../hooks';
@@ -15,7 +15,7 @@ export const getQuickNewActions = () => [
name: intl.get('sale_invoice'), name: intl.get('sale_invoice'),
permission: { permission: {
subject: AbilitySubject.Invoice, subject: AbilitySubject.Invoice,
ability: Invoice_Abilities.Create, ability: SaleInvoiceAction.Create,
}, },
}, },
{ {
@@ -23,7 +23,7 @@ export const getQuickNewActions = () => [
name: intl.get('purchase_invoice'), name: intl.get('purchase_invoice'),
permission: { permission: {
subject: AbilitySubject.Invoice, subject: AbilitySubject.Invoice,
ability: Invoice_Abilities.Create, ability: SaleInvoiceAction.Create,
}, },
}, },
{ {
@@ -31,7 +31,7 @@ export const getQuickNewActions = () => [
name: intl.get('manual_journal'), name: intl.get('manual_journal'),
permission: { permission: {
subject: AbilitySubject.ManualJournal, subject: AbilitySubject.ManualJournal,
ability: Manual_Journal_Abilities.Create, ability: ManualJournalAction.Create,
}, },
}, },
{ {
@@ -39,7 +39,7 @@ export const getQuickNewActions = () => [
name: intl.get('expense'), name: intl.get('expense'),
permission: { permission: {
subject: AbilitySubject.Expense, subject: AbilitySubject.Expense,
ability: Expense_Abilities.Create, ability: ExpenseAction.Create,
}, },
}, },
{ {
@@ -47,7 +47,7 @@ export const getQuickNewActions = () => [
name: intl.get('customer'), name: intl.get('customer'),
permission: { permission: {
subject: AbilitySubject.Customer, subject: AbilitySubject.Customer,
ability: Customer_Abilities.Create, ability: CustomerAction.Create,
}, },
}, },
{ {
@@ -55,7 +55,7 @@ export const getQuickNewActions = () => [
name: intl.get('vendor'), name: intl.get('vendor'),
permission: { permission: {
subject: AbilitySubject.Vendor, subject: AbilitySubject.Vendor,
ability: Vendor_Abilities.Vendor, ability: VendorAction.Vendor,
}, },
}, },
]; ];

View File

@@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
import { FormattedMessage as T } from 'components'; import { FormattedMessage as T } from 'components';
import { Report_Abilities, AbilitySubject } from '../common/abilityOption'; import { ReportsAction, AbilitySubject } from '../common/abilityOption';
export const financialReportMenus = [ export const financialReportMenus = [
{ {
@@ -13,7 +13,7 @@ export const financialReportMenus = [
), ),
link: '/financial-reports/balance-sheet', link: '/financial-reports/balance-sheet',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_BALANCE_SHEET, ability: ReportsAction.READ_BALANCE_SHEET,
}, },
{ {
title: <T id={'trial_balance_sheet'} />, title: <T id={'trial_balance_sheet'} />,
@@ -22,14 +22,14 @@ export const financialReportMenus = [
), ),
link: '/financial-reports/trial-balance-sheet', link: '/financial-reports/trial-balance-sheet',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_TRIAL_BALANCE_SHEET, ability: ReportsAction.READ_TRIAL_BALANCE_SHEET,
}, },
{ {
title: <T id={'profit_loss_report'} />, title: <T id={'profit_loss_report'} />,
desc: <T id={'reports_the_revenues_costs_and_expenses'} />, desc: <T id={'reports_the_revenues_costs_and_expenses'} />,
link: '/financial-reports/profit-loss-sheet', link: '/financial-reports/profit-loss-sheet',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_PROFIT_LOSS, ability: ReportsAction.READ_PROFIT_LOSS,
}, },
{ {
title: <T id={'cash_flow_statement'} />, title: <T id={'cash_flow_statement'} />,
@@ -38,21 +38,21 @@ export const financialReportMenus = [
), ),
link: '/financial-reports/cash-flow', link: '/financial-reports/cash-flow',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_CASHFLOW, ability: ReportsAction.READ_CASHFLOW,
}, },
{ {
title: <T id={'journal_report'} />, title: <T id={'journal_report'} />,
desc: <T id={'the_debit_and_credit_entries_of_system_transactions'} />, desc: <T id={'the_debit_and_credit_entries_of_system_transactions'} />,
link: '/financial-reports/journal-sheet', link: '/financial-reports/journal-sheet',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_JOURNAL, ability: ReportsAction.READ_JOURNAL,
}, },
{ {
title: <T id={'general_ledger_report'} />, title: <T id={'general_ledger_report'} />,
desc: <T id={'reports_every_transaction_going_in_and_out_of_your'} />, desc: <T id={'reports_every_transaction_going_in_and_out_of_your'} />,
link: '/financial-reports/general-ledger', link: '/financial-reports/general-ledger',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_GENERAL_LEDGET, ability: ReportsAction.READ_GENERAL_LEDGET,
}, },
{ {
title: <T id={'receivable_aging_summary'} />, title: <T id={'receivable_aging_summary'} />,
@@ -61,14 +61,14 @@ export const financialReportMenus = [
), ),
link: '/financial-reports/receivable-aging-summary', link: '/financial-reports/receivable-aging-summary',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_AR_AGING_SUMMARY, ability: ReportsAction.READ_AR_AGING_SUMMARY,
}, },
{ {
title: <T id={'payable_aging_summary'} />, title: <T id={'payable_aging_summary'} />,
desc: <T id={'summarize_total_unpaid_balances_of_vendors_purchase'} />, desc: <T id={'summarize_total_unpaid_balances_of_vendors_purchase'} />,
link: '/financial-reports/payable-aging-summary', link: '/financial-reports/payable-aging-summary',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_AP_AGING_SUMMARY, ability: ReportsAction.READ_AP_AGING_SUMMARY,
}, },
], ],
}, },
@@ -89,7 +89,7 @@ export const SalesAndPurchasesReportMenus = [
), ),
link: '/financial-reports/purchases-by-items', link: '/financial-reports/purchases-by-items',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_PURCHASES_BY_ITEMS, ability: ReportsAction.READ_PURCHASES_BY_ITEMS,
}, },
{ {
title: <T id={'sales_by_items'} />, title: <T id={'sales_by_items'} />,
@@ -102,7 +102,7 @@ export const SalesAndPurchasesReportMenus = [
), ),
link: '/financial-reports/sales-by-items', link: '/financial-reports/sales-by-items',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_SALES_BY_ITEMS, ability: ReportsAction.READ_SALES_BY_ITEMS,
}, },
{ {
title: <T id={'inventory_valuation'} />, title: <T id={'inventory_valuation'} />,
@@ -115,7 +115,7 @@ export const SalesAndPurchasesReportMenus = [
), ),
link: '/financial-reports/inventory-valuation', link: '/financial-reports/inventory-valuation',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_INVENTORY_VALUATION_SUMMARY, ability: ReportsAction.READ_INVENTORY_VALUATION_SUMMARY,
}, },
{ {
title: <T id={'customers_balance_summary'} />, title: <T id={'customers_balance_summary'} />,
@@ -128,7 +128,7 @@ export const SalesAndPurchasesReportMenus = [
), ),
link: '/financial-reports/customers-balance-summary', link: '/financial-reports/customers-balance-summary',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_CUSTOMERS_SUMMARY_BALANCE, ability: ReportsAction.READ_CUSTOMERS_SUMMARY_BALANCE,
}, },
{ {
title: <T id={'vendors_balance_summary'} />, title: <T id={'vendors_balance_summary'} />,
@@ -137,7 +137,7 @@ export const SalesAndPurchasesReportMenus = [
), ),
link: '/financial-reports/vendors-balance-summary', link: '/financial-reports/vendors-balance-summary',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_VENDORS_SUMMARY_BALANCE, ability: ReportsAction.READ_VENDORS_SUMMARY_BALANCE,
}, },
{ {
title: <T id={'customers_transactions'} />, title: <T id={'customers_transactions'} />,
@@ -148,7 +148,7 @@ export const SalesAndPurchasesReportMenus = [
), ),
link: '/financial-reports/transactions-by-customers', link: '/financial-reports/transactions-by-customers',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_CUSTOMERS_TRANSACTIONS, ability: ReportsAction.READ_CUSTOMERS_TRANSACTIONS,
}, },
{ {
title: <T id={'vendors_transactions'} />, title: <T id={'vendors_transactions'} />,
@@ -161,7 +161,7 @@ export const SalesAndPurchasesReportMenus = [
), ),
link: '/financial-reports/transactions-by-vendors', link: '/financial-reports/transactions-by-vendors',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_VENDORS_TRANSACTIONS, ability: ReportsAction.READ_VENDORS_TRANSACTIONS,
}, },
{ {
title: <T id={'inventory_item_details'} />, title: <T id={'inventory_item_details'} />,
@@ -170,7 +170,7 @@ export const SalesAndPurchasesReportMenus = [
), ),
link: '/financial-reports/inventory-item-details', link: '/financial-reports/inventory-item-details',
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_INVENTORY_ITEM_DETAILS, ability: ReportsAction.READ_INVENTORY_ITEM_DETAILS,
}, },
], ],
}, },

View File

@@ -1,22 +1,22 @@
import React from 'react'; import React from 'react';
import { FormattedMessage as T } from 'components'; import { FormattedMessage as T } from 'components';
import { import {
Report_Abilities, ReportsAction,
AbilitySubject, AbilitySubject,
Item_Abilities, ItemAction,
Inventory_Adjustment_Abilities, InventoryAdjustmentAction,
Estimate_Abilities, SaleEstimateAction,
Invoice_Abilities, SaleInvoiceAction,
Receipt_Abilities, SaleReceiptAction,
Payment_Receive_Abilities, PaymentReceiveAction,
Bill_Abilities, BillAction,
Payment_Made_Abilities, PaymentMadeAction,
Customer_Abilities, CustomerAction,
Vendor_Abilities, VendorAction,
Account_Abilities, AccountAction,
Manual_Journal_Abilities, ManualJournalAction,
Expense_Abilities, ExpenseAction,
Cashflow_Abilities, CashflowAction,
PreferencesAbility, PreferencesAbility,
ExchangeRateAbility, ExchangeRateAbility,
SubscriptionBillingAbility, SubscriptionBillingAbility,
@@ -35,28 +35,28 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Item, subject: AbilitySubject.Item,
ability: Item_Abilities.View, ability: ItemAction.View,
}, },
{ {
subject: AbilitySubject.Inventory_Adjustment, subject: AbilitySubject.InventoryAdjustment,
ability: Inventory_Adjustment_Abilities.View, ability: InventoryAdjustmentAction.View,
}, },
{ {
subject: AbilitySubject.Estimate, subject: AbilitySubject.Estimate,
ability: Estimate_Abilities.View, ability: SaleEstimateAction.View,
}, },
{ {
subject: AbilitySubject.Invoice, subject: AbilitySubject.Invoice,
ability: Invoice_Abilities.View, ability: SaleInvoiceAction.View,
}, },
{ {
subject: AbilitySubject.Receipt, subject: AbilitySubject.Receipt,
ability: Receipt_Abilities.View, ability: SaleReceiptAction.View,
}, },
{ {
subject: AbilitySubject.PaymentReceive, subject: AbilitySubject.PaymentReceive,
ability: Payment_Receive_Abilities.View, ability: PaymentReceiveAction.View,
} },
], ],
}, },
{ {
@@ -67,15 +67,15 @@ export default [
href: '/items', href: '/items',
permission: { permission: {
subject: AbilitySubject.Item, subject: AbilitySubject.Item,
ability: Item_Abilities.View, ability: ItemAction.View,
}, },
}, },
{ {
text: <T id={'inventory_adjustments'} />, text: <T id={'inventory_adjustments'} />,
href: '/inventory-adjustments', href: '/inventory-adjustments',
permission: { permission: {
subject: AbilitySubject.Inventory_Adjustment, subject: AbilitySubject.InventoryAdjustment,
ability: Inventory_Adjustment_Abilities.View, ability: InventoryAdjustmentAction.View,
}, },
}, },
{ {
@@ -83,7 +83,7 @@ export default [
href: '/items/categories', href: '/items/categories',
permission: { permission: {
subject: AbilitySubject.Item, subject: AbilitySubject.Item,
ability: Item_Abilities.View, ability: ItemAction.View,
}, },
}, },
{ {
@@ -92,7 +92,7 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Item, subject: AbilitySubject.Item,
ability: Item_Abilities.Create, ability: ItemAction.Create,
}, },
], ],
}, },
@@ -101,7 +101,7 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Item, subject: AbilitySubject.Item,
ability: Item_Abilities.Create, ability: ItemAction.Create,
}, },
], ],
}, },
@@ -110,7 +110,7 @@ export default [
href: '/items/new', href: '/items/new',
permission: { permission: {
subject: AbilitySubject.Item, subject: AbilitySubject.Item,
ability: Item_Abilities.Create, ability: ItemAction.Create,
}, },
}, },
{ {
@@ -118,7 +118,7 @@ export default [
href: '/items/new', href: '/items/new',
permission: { permission: {
subject: AbilitySubject.Item, subject: AbilitySubject.Item,
ability: Item_Abilities.Create, ability: ItemAction.Create,
}, },
}, },
{ {
@@ -126,7 +126,7 @@ export default [
href: '/items/categories/new', href: '/items/categories/new',
permission: { permission: {
subject: AbilitySubject.Item, subject: AbilitySubject.Item,
ability: Item_Abilities.Create, ability: ItemAction.Create,
}, },
}, },
], ],
@@ -139,7 +139,7 @@ export default [
href: '/estimates', href: '/estimates',
permission: { permission: {
subject: AbilitySubject.Estimate, subject: AbilitySubject.Estimate,
ability: Estimate_Abilities.View, ability: SaleEstimateAction.View,
}, },
}, },
{ {
@@ -147,7 +147,7 @@ export default [
href: '/invoices', href: '/invoices',
permission: { permission: {
subject: AbilitySubject.Invoice, subject: AbilitySubject.Invoice,
ability: Invoice_Abilities.View, ability: SaleInvoiceAction.View,
}, },
}, },
{ {
@@ -155,7 +155,7 @@ export default [
href: '/receipts', href: '/receipts',
permission: { permission: {
subject: AbilitySubject.Receipt, subject: AbilitySubject.Receipt,
ability: Receipt_Abilities.View, ability: SaleReceiptAction.View,
}, },
}, },
{ {
@@ -163,7 +163,7 @@ export default [
href: '/payment-receives', href: '/payment-receives',
permission: { permission: {
subject: AbilitySubject.PaymentReceive, subject: AbilitySubject.PaymentReceive,
ability: Payment_Receive_Abilities.View, ability: PaymentReceiveAction.View,
}, },
}, },
{ {
@@ -172,19 +172,19 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Estimate, subject: AbilitySubject.Estimate,
ability: Estimate_Abilities.Create, ability: SaleEstimateAction.Create,
}, },
{ {
subject: AbilitySubject.Invoice, subject: AbilitySubject.Invoice,
ability: Invoice_Abilities.Create, ability: SaleInvoiceAction.Create,
}, },
{ {
subject: AbilitySubject.Receipt, subject: AbilitySubject.Receipt,
ability: Receipt_Abilities.Create, ability: SaleReceiptAction.Create,
}, },
{ {
subject: AbilitySubject.PaymentReceive, subject: AbilitySubject.PaymentReceive,
ability: Payment_Receive_Abilities.Create, ability: PaymentReceiveAction.Create,
}, },
], ],
}, },
@@ -193,19 +193,19 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Estimate, subject: AbilitySubject.Estimate,
ability: Estimate_Abilities.Create, ability: SaleEstimateAction.Create,
}, },
{ {
subject: AbilitySubject.Invoice, subject: AbilitySubject.Invoice,
ability: Invoice_Abilities.Create, ability: SaleInvoiceAction.Create,
}, },
{ {
subject: AbilitySubject.Receipt, subject: AbilitySubject.Receipt,
ability: Receipt_Abilities.Create, ability: SaleReceiptAction.Create,
}, },
{ {
subject: AbilitySubject.PaymentReceive, subject: AbilitySubject.PaymentReceive,
ability: Payment_Receive_Abilities.Create, ability: PaymentReceiveAction.Create,
}, },
], ],
}, },
@@ -214,7 +214,7 @@ export default [
href: '/estimates/new', href: '/estimates/new',
permission: { permission: {
subject: AbilitySubject.Estimate, subject: AbilitySubject.Estimate,
ability: Estimate_Abilities.Create, ability: SaleEstimateAction.Create,
}, },
}, },
{ {
@@ -222,7 +222,7 @@ export default [
href: '/invoices/new', href: '/invoices/new',
permission: { permission: {
subject: AbilitySubject.Invoice, subject: AbilitySubject.Invoice,
ability: Invoice_Abilities.Create, ability: SaleInvoiceAction.Create,
}, },
}, },
{ {
@@ -230,7 +230,7 @@ export default [
href: '/receipts/new', href: '/receipts/new',
permission: { permission: {
subject: AbilitySubject.Receipt, subject: AbilitySubject.Receipt,
ability: Receipt_Abilities.Create, ability: SaleReceiptAction.Create,
}, },
}, },
{ {
@@ -238,7 +238,7 @@ export default [
href: '/payment-receives/new', href: '/payment-receives/new',
permission: { permission: {
subject: AbilitySubject.PaymentReceive, subject: AbilitySubject.PaymentReceive,
ability: Payment_Receive_Abilities.Create, ability: PaymentReceiveAction.Create,
}, },
}, },
], ],
@@ -251,7 +251,7 @@ export default [
href: '/bills', href: '/bills',
permission: { permission: {
subject: AbilitySubject.Bill, subject: AbilitySubject.Bill,
ability: Bill_Abilities.View, ability: BillAction.View,
}, },
}, },
{ {
@@ -260,7 +260,7 @@ export default [
newTabHref: '/payment-mades/new', newTabHref: '/payment-mades/new',
permission: { permission: {
subject: AbilitySubject.PaymentMade, subject: AbilitySubject.PaymentMade,
ability: Payment_Made_Abilities.View, ability: PaymentMadeAction.View,
}, },
}, },
{ {
@@ -269,11 +269,11 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Bill, subject: AbilitySubject.Bill,
ability: Bill_Abilities.Create, ability: BillAction.Create,
}, },
{ {
subject: AbilitySubject.PaymentMade, subject: AbilitySubject.PaymentMade,
ability: Payment_Made_Abilities.Create, ability: PaymentMadeAction.Create,
}, },
], ],
}, },
@@ -282,11 +282,11 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Bill, subject: AbilitySubject.Bill,
ability: Bill_Abilities.Create, ability: BillAction.Create,
}, },
{ {
subject: AbilitySubject.PaymentMade, subject: AbilitySubject.PaymentMade,
ability: Payment_Made_Abilities.Create, ability: PaymentMadeAction.Create,
}, },
], ],
}, },
@@ -295,7 +295,7 @@ export default [
href: '/bills/new', href: '/bills/new',
permission: { permission: {
subject: AbilitySubject.Bill, subject: AbilitySubject.Bill,
ability: Bill_Abilities.Create, ability: BillAction.Create,
}, },
}, },
{ {
@@ -303,7 +303,7 @@ export default [
href: '/payment-mades/new', href: '/payment-mades/new',
permission: { permission: {
subject: AbilitySubject.PaymentMade, subject: AbilitySubject.PaymentMade,
ability: Payment_Made_Abilities.Create, ability: PaymentMadeAction.Create,
}, },
}, },
], ],
@@ -316,7 +316,7 @@ export default [
href: '/customers', href: '/customers',
permission: { permission: {
subject: AbilitySubject.Customer, subject: AbilitySubject.Customer,
ability: Customer_Abilities.View, ability: CustomerAction.View,
}, },
}, },
{ {
@@ -324,7 +324,7 @@ export default [
href: '/vendors', href: '/vendors',
permission: { permission: {
subject: AbilitySubject.Vendor, subject: AbilitySubject.Vendor,
ability: Vendor_Abilities.Create, ability: VendorAction.Create,
}, },
}, },
{ {
@@ -333,11 +333,11 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Customer, subject: AbilitySubject.Customer,
ability: Customer_Abilities.View, ability: CustomerAction.View,
}, },
{ {
subject: AbilitySubject.Vendor, subject: AbilitySubject.Vendor,
ability: Vendor_Abilities.View, ability: VendorAction.View,
}, },
], ],
}, },
@@ -346,11 +346,11 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Customer, subject: AbilitySubject.Customer,
ability: Customer_Abilities.View, ability: CustomerAction.View,
}, },
{ {
subject: AbilitySubject.Vendor, subject: AbilitySubject.Vendor,
ability: Vendor_Abilities.View, ability: VendorAction.View,
}, },
], ],
}, },
@@ -359,7 +359,7 @@ export default [
href: '/customers/new', href: '/customers/new',
permission: { permission: {
subject: AbilitySubject.Customer, subject: AbilitySubject.Customer,
ability: Customer_Abilities.View, ability: CustomerAction.View,
}, },
}, },
{ {
@@ -367,7 +367,7 @@ export default [
href: '/vendors/new', href: '/vendors/new',
permission: { permission: {
subject: AbilitySubject.Vendor, subject: AbilitySubject.Vendor,
ability: Vendor_Abilities.View, ability: VendorAction.View,
}, },
}, },
], ],
@@ -378,11 +378,11 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Account, subject: AbilitySubject.Account,
ability: Account_Abilities.View, ability: AccountAction.View,
}, },
{ {
subject: AbilitySubject.ManualJournal, subject: AbilitySubject.ManualJournal,
ability: Manual_Journal_Abilities.View, ability: ManualJournalAction.View,
}, },
], ],
}, },
@@ -394,7 +394,7 @@ export default [
href: '/accounts', href: '/accounts',
permission: { permission: {
subject: AbilitySubject.Account, subject: AbilitySubject.Account,
ability: Account_Abilities.View, ability: AccountAction.View,
}, },
}, },
{ {
@@ -402,7 +402,7 @@ export default [
href: '/manual-journals', href: '/manual-journals',
permission: { permission: {
subject: AbilitySubject.ManualJournal, subject: AbilitySubject.ManualJournal,
ability: Manual_Journal_Abilities.View, ability: ManualJournalAction.View,
}, },
}, },
{ {
@@ -410,7 +410,7 @@ export default [
href: '/transactions-locking', href: '/transactions-locking',
permission: { permission: {
subject: AbilitySubject.ManualJournal, subject: AbilitySubject.ManualJournal,
ability: Manual_Journal_Abilities.TransactionLocking, ability: ManualJournalAction.TransactionLocking,
}, },
}, },
{ {
@@ -426,14 +426,14 @@ export default [
label: true, label: true,
permission: { permission: {
subject: AbilitySubject.ManualJournal, subject: AbilitySubject.ManualJournal,
ability: Manual_Journal_Abilities.Create, ability: ManualJournalAction.Create,
}, },
}, },
{ {
divider: true, divider: true,
permission: { permission: {
subject: AbilitySubject.ManualJournal, subject: AbilitySubject.ManualJournal,
ability: Manual_Journal_Abilities.Create, ability: ManualJournalAction.Create,
}, },
}, },
{ {
@@ -441,7 +441,7 @@ export default [
href: '/make-journal-entry', href: '/make-journal-entry',
permission: { permission: {
subject: AbilitySubject.ManualJournal, subject: AbilitySubject.ManualJournal,
ability: Manual_Journal_Abilities.Create, ability: ManualJournalAction.Create,
}, },
}, },
], ],
@@ -454,7 +454,7 @@ export default [
href: '/cashflow-accounts', href: '/cashflow-accounts',
permission: { permission: {
subject: AbilitySubject.Cashflow, subject: AbilitySubject.Cashflow,
ability: Cashflow_Abilities.View, ability: CashflowAction.View,
}, },
}, },
{ {
@@ -463,7 +463,7 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Cashflow, subject: AbilitySubject.Cashflow,
ability: Cashflow_Abilities.Create, ability: CashflowAction.Create,
}, },
], ],
}, },
@@ -472,7 +472,7 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Cashflow, subject: AbilitySubject.Cashflow,
ability: Cashflow_Abilities.Create, ability: CashflowAction.Create,
}, },
], ],
}, },
@@ -481,7 +481,7 @@ export default [
href: '/cashflow-accounts', href: '/cashflow-accounts',
permission: { permission: {
subject: AbilitySubject.Cashflow, subject: AbilitySubject.Cashflow,
ability: Cashflow_Abilities.Create, ability: CashflowAction.Create,
}, },
}, },
{ {
@@ -489,7 +489,7 @@ export default [
href: '/cashflow-accounts', href: '/cashflow-accounts',
permission: { permission: {
subject: AbilitySubject.Cashflow, subject: AbilitySubject.Cashflow,
ability: Cashflow_Abilities.Create, ability: CashflowAction.Create,
}, },
}, },
{ {
@@ -497,7 +497,7 @@ export default [
href: '/cashflow-accounts', href: '/cashflow-accounts',
permission: { permission: {
subject: AbilitySubject.Cashflow, subject: AbilitySubject.Cashflow,
ability: Cashflow_Abilities.Create, ability: CashflowAction.Create,
}, },
}, },
{ {
@@ -505,7 +505,7 @@ export default [
href: '/cashflow-accounts', href: '/cashflow-accounts',
permission: { permission: {
subject: AbilitySubject.Cashflow, subject: AbilitySubject.Cashflow,
ability: Cashflow_Abilities.Create, ability: CashflowAction.Create,
}, },
}, },
], ],
@@ -518,7 +518,7 @@ export default [
href: '/expenses', href: '/expenses',
permission: { permission: {
subject: AbilitySubject.Expense, subject: AbilitySubject.Expense,
ability: Expense_Abilities.View, ability: ExpenseAction.View,
}, },
}, },
{ {
@@ -526,14 +526,14 @@ export default [
label: true, label: true,
permission: { permission: {
subject: AbilitySubject.Expense, subject: AbilitySubject.Expense,
ability: Expense_Abilities.Create, ability: ExpenseAction.Create,
}, },
}, },
{ {
divider: true, divider: true,
permission: { permission: {
subject: AbilitySubject.Expense, subject: AbilitySubject.Expense,
ability: Expense_Abilities.Create, ability: ExpenseAction.Create,
}, },
}, },
{ {
@@ -541,7 +541,7 @@ export default [
href: '/expenses/new', href: '/expenses/new',
permission: { permission: {
subject: AbilitySubject.Expense, subject: AbilitySubject.Expense,
ability: Expense_Abilities.Create, ability: ExpenseAction.Create,
}, },
}, },
], ],
@@ -554,7 +554,7 @@ export default [
href: '/financial-reports/balance-sheet', href: '/financial-reports/balance-sheet',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_BALANCE_SHEET, ability: ReportsAction.READ_BALANCE_SHEET,
}, },
}, },
{ {
@@ -562,7 +562,7 @@ export default [
href: '/financial-reports/trial-balance-sheet', href: '/financial-reports/trial-balance-sheet',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_TRIAL_BALANCE_SHEET, ability: ReportsAction.READ_TRIAL_BALANCE_SHEET,
}, },
}, },
{ {
@@ -570,7 +570,7 @@ export default [
href: '/financial-reports/journal-sheet', href: '/financial-reports/journal-sheet',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_JOURNAL, ability: ReportsAction.READ_JOURNAL,
}, },
}, },
{ {
@@ -578,7 +578,7 @@ export default [
href: '/financial-reports/general-ledger', href: '/financial-reports/general-ledger',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_GENERAL_LEDGET, ability: ReportsAction.READ_GENERAL_LEDGET,
}, },
}, },
{ {
@@ -586,7 +586,7 @@ export default [
href: '/financial-reports/profit-loss-sheet', href: '/financial-reports/profit-loss-sheet',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_PROFIT_LOSS, ability: ReportsAction.READ_PROFIT_LOSS,
}, },
}, },
{ {
@@ -594,7 +594,7 @@ export default [
href: '/financial-reports/cash-flow', href: '/financial-reports/cash-flow',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_CASHFLOW_ACCOUNT_TRANSACTION, ability: ReportsAction.READ_CASHFLOW_ACCOUNT_TRANSACTION,
}, },
}, },
{ {
@@ -602,7 +602,7 @@ export default [
href: '/financial-reports/receivable-aging-summary', href: '/financial-reports/receivable-aging-summary',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_AR_AGING_SUMMARY, ability: ReportsAction.READ_AR_AGING_SUMMARY,
}, },
}, },
{ {
@@ -610,7 +610,7 @@ export default [
href: '/financial-reports/payable-aging-summary', href: '/financial-reports/payable-aging-summary',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_AP_AGING_SUMMARY, ability: ReportsAction.READ_AP_AGING_SUMMARY,
}, },
}, },
{ {
@@ -619,27 +619,27 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_PURCHASES_BY_ITEMS, ability: ReportsAction.READ_PURCHASES_BY_ITEMS,
}, },
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_SALES_BY_ITEMS, ability: ReportsAction.READ_SALES_BY_ITEMS,
}, },
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_CUSTOMERS_TRANSACTIONS, ability: ReportsAction.READ_CUSTOMERS_TRANSACTIONS,
}, },
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_VENDORS_TRANSACTIONS, ability: ReportsAction.READ_VENDORS_TRANSACTIONS,
}, },
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_CUSTOMERS_SUMMARY_BALANCE, ability: ReportsAction.READ_CUSTOMERS_SUMMARY_BALANCE,
}, },
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_VENDORS_SUMMARY_BALANCE, ability: ReportsAction.READ_VENDORS_SUMMARY_BALANCE,
}, },
], ],
}, },
@@ -648,27 +648,27 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_PURCHASES_BY_ITEMS, ability: ReportsAction.READ_PURCHASES_BY_ITEMS,
}, },
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_SALES_BY_ITEMS, ability: ReportsAction.READ_SALES_BY_ITEMS,
}, },
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_CUSTOMERS_TRANSACTIONS, ability: ReportsAction.READ_CUSTOMERS_TRANSACTIONS,
}, },
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_VENDORS_TRANSACTIONS, ability: ReportsAction.READ_VENDORS_TRANSACTIONS,
}, },
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_CUSTOMERS_SUMMARY_BALANCE, ability: ReportsAction.READ_CUSTOMERS_SUMMARY_BALANCE,
}, },
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_VENDORS_SUMMARY_BALANCE, ability: ReportsAction.READ_VENDORS_SUMMARY_BALANCE,
}, },
], ],
}, },
@@ -677,7 +677,7 @@ export default [
href: '/financial-reports/purchases-by-items', href: '/financial-reports/purchases-by-items',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_PURCHASES_BY_ITEMS, ability: ReportsAction.READ_PURCHASES_BY_ITEMS,
}, },
}, },
{ {
@@ -685,7 +685,7 @@ export default [
href: '/financial-reports/sales-by-items', href: '/financial-reports/sales-by-items',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_SALES_BY_ITEMS, ability: ReportsAction.READ_SALES_BY_ITEMS,
}, },
}, },
{ {
@@ -693,7 +693,7 @@ export default [
href: '/financial-reports/transactions-by-customers', href: '/financial-reports/transactions-by-customers',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_CUSTOMERS_TRANSACTIONS, ability: ReportsAction.READ_CUSTOMERS_TRANSACTIONS,
}, },
}, },
{ {
@@ -701,7 +701,7 @@ export default [
href: '/financial-reports/transactions-by-vendors', href: '/financial-reports/transactions-by-vendors',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_VENDORS_TRANSACTIONS, ability: ReportsAction.READ_VENDORS_TRANSACTIONS,
}, },
}, },
{ {
@@ -709,7 +709,7 @@ export default [
href: '/financial-reports/customers-balance-summary', href: '/financial-reports/customers-balance-summary',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_CUSTOMERS_SUMMARY_BALANCE, ability: ReportsAction.READ_CUSTOMERS_SUMMARY_BALANCE,
}, },
}, },
{ {
@@ -717,7 +717,7 @@ export default [
href: '/financial-reports/vendors-balance-summary', href: '/financial-reports/vendors-balance-summary',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_VENDORS_SUMMARY_BALANCE, ability: ReportsAction.READ_VENDORS_SUMMARY_BALANCE,
}, },
}, },
{ {
@@ -726,11 +726,11 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_INVENTORY_ITEM_DETAILS, ability: ReportsAction.READ_INVENTORY_ITEM_DETAILS,
}, },
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_INVENTORY_VALUATION_SUMMARY, ability: ReportsAction.READ_INVENTORY_VALUATION_SUMMARY,
}, },
], ],
}, },
@@ -739,11 +739,11 @@ export default [
permission: [ permission: [
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_INVENTORY_ITEM_DETAILS, ability: ReportsAction.READ_INVENTORY_ITEM_DETAILS,
}, },
{ {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_INVENTORY_VALUATION_SUMMARY, ability: ReportsAction.READ_INVENTORY_VALUATION_SUMMARY,
}, },
], ],
}, },
@@ -752,7 +752,7 @@ export default [
href: '/financial-reports/inventory-item-details', href: '/financial-reports/inventory-item-details',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_INVENTORY_ITEM_DETAILS, ability: ReportsAction.READ_INVENTORY_ITEM_DETAILS,
}, },
}, },
{ {
@@ -760,7 +760,7 @@ export default [
href: '/financial-reports/inventory-valuation', href: '/financial-reports/inventory-valuation',
permission: { permission: {
subject: AbilitySubject.Report, subject: AbilitySubject.Report,
ability: Report_Abilities.READ_INVENTORY_VALUATION_SUMMARY, ability: ReportsAction.READ_INVENTORY_VALUATION_SUMMARY,
}, },
}, },
], ],

View File

@@ -28,7 +28,7 @@ import withSettings from '../../Settings/withSettings';
import { Can, If, DashboardActionViewsList } from 'components'; import { Can, If, DashboardActionViewsList } from 'components';
import { import {
Manual_Journal_Abilities, ManualJournalAction,
AbilitySubject, AbilitySubject,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
import { compose } from 'utils'; import { compose } from 'utils';
@@ -89,10 +89,7 @@ function ManualJournalActionsBar({
onChange={handleTabChange} onChange={handleTabChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can <Can I={ManualJournalAction.Create} a={AbilitySubject.ManualJournal}>
I={Manual_Journal_Abilities.Create}
a={AbilitySubject.ManualJournal}
>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="plus" />} icon={<Icon icon="plus" />}

View File

@@ -5,7 +5,7 @@ import { EmptyStatus } from 'components';
import { Can, FormattedMessage as T } from 'components'; import { Can, FormattedMessage as T } from 'components';
import { import {
AbilitySubject, AbilitySubject,
Manual_Journal_Abilities, ManualJournalAction,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
export default function ManualJournalsEmptyStatus() { export default function ManualJournalsEmptyStatus() {
@@ -21,10 +21,7 @@ export default function ManualJournalsEmptyStatus() {
} }
action={ action={
<> <>
<Can <Can I={ManualJournalAction.Create} a={AbilitySubject.ManualJournal}>
I={Manual_Journal_Abilities.Create}
a={AbilitySubject.ManualJournal}
>
<Button <Button
intent={Intent.PRIMARY} intent={Intent.PRIMARY}
large={true} large={true}

View File

@@ -22,7 +22,7 @@ import {
Icon, Icon,
} from 'components'; } from 'components';
import { import {
Manual_Journal_Abilities, ManualJournalAction,
AbilitySubject, AbilitySubject,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
import { safeCallback } from 'utils'; import { safeCallback } from 'utils';
@@ -161,7 +161,7 @@ export const ActionsMenu = ({
text={intl.get('view_details')} text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, original)} onClick={safeCallback(onViewDetails, original)}
/> />
<Can I={Manual_Journal_Abilities.Edit} a={AbilitySubject.ManualJournal}> <Can I={ManualJournalAction.Edit} a={AbilitySubject.ManualJournal}>
<MenuDivider /> <MenuDivider />
<If condition={!original.is_published}> <If condition={!original.is_published}>
<MenuItem <MenuItem
@@ -171,14 +171,14 @@ export const ActionsMenu = ({
/> />
</If> </If>
</Can> </Can>
<Can I={Manual_Journal_Abilities.Edit} a={AbilitySubject.ManualJournal}> <Can I={ManualJournalAction.Edit} a={AbilitySubject.ManualJournal}>
<MenuItem <MenuItem
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
text={intl.get('edit_journal')} text={intl.get('edit_journal')}
onClick={safeCallback(onEdit, original)} onClick={safeCallback(onEdit, original)}
/> />
</Can> </Can>
<Can I={Manual_Journal_Abilities.Delete} a={AbilitySubject.ManualJournal}> <Can I={ManualJournalAction.Delete} a={AbilitySubject.ManualJournal}>
<MenuItem <MenuItem
text={intl.get('delete_journal')} text={intl.get('delete_journal')}
icon={<Icon icon="trash-16" iconSize={16} />} icon={<Icon icon="trash-16" iconSize={16} />}

View File

@@ -31,7 +31,7 @@ import withAlertActions from 'containers/Alert/withAlertActions';
import withAccountsTableActions from './withAccountsTableActions'; import withAccountsTableActions from './withAccountsTableActions';
import withSettings from '../Settings/withSettings'; import withSettings from '../Settings/withSettings';
import withSettingsActions from '../Settings/withSettingsActions'; import withSettingsActions from '../Settings/withSettingsActions';
import { Account_Abilities, AbilitySubject } from '../../common/abilityOption'; import { AccountAction, AbilitySubject } from '../../common/abilityOption';
import { compose } from 'utils'; import { compose } from 'utils';
@@ -119,7 +119,7 @@ function AccountsActionsBar({
onChange={handleTabChange} onChange={handleTabChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Account_Abilities.Create} a={AbilitySubject.Account}> <Can I={AccountAction.Create} a={AbilitySubject.Account}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="plus" />} icon={<Icon icon="plus" />}
@@ -187,7 +187,7 @@ function AccountsActionsBar({
onChange={handleTableRowSizeChange} onChange={handleTableRowSizeChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Account_Abilities.Edit} a={AbilitySubject.Account}> <Can I={AccountAction.Edit} a={AbilitySubject.Account}>
<Switch <Switch
labelElement={<T id={'inactive'} />} labelElement={<T id={'inactive'} />}
defaultChecked={accountsInactiveMode} defaultChecked={accountsInactiveMode}

View File

@@ -11,7 +11,7 @@ import {
import { Can, Icon, Money, If } from 'components'; import { Can, Icon, Money, If } from 'components';
import intl from 'react-intl-universal'; import intl from 'react-intl-universal';
import { safeCallback } from 'utils'; import { safeCallback } from 'utils';
import { AbilitySubject, Account_Abilities } from '../../common/abilityOption'; import { AbilitySubject, AccountAction } from '../../common/abilityOption';
/** /**
* Accounts table actions menu. * Accounts table actions menu.
@@ -35,7 +35,7 @@ export function ActionsMenu({
text={intl.get('view_details')} text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, original)} onClick={safeCallback(onViewDetails, original)}
/> />
<Can I={Account_Abilities.Edit} a={AbilitySubject.Account}> <Can I={AccountAction.Edit} a={AbilitySubject.Account}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -50,7 +50,7 @@ export function ActionsMenu({
/> />
<MenuDivider /> <MenuDivider />
</Can> </Can>
<Can I={Account_Abilities.Edit} a={AbilitySubject.Account}> <Can I={AccountAction.Edit} a={AbilitySubject.Account}>
<If condition={original.active}> <If condition={original.active}>
<MenuItem <MenuItem
text={intl.get('inactivate_account')} text={intl.get('inactivate_account')}
@@ -66,7 +66,7 @@ export function ActionsMenu({
/> />
</If> </If>
</Can> </Can>
<Can I={Account_Abilities.Edit} a={AbilitySubject.Account}> <Can I={AccountAction.Edit} a={AbilitySubject.Account}>
<MenuItem <MenuItem
text={intl.get('delete_account')} text={intl.get('delete_account')}
icon={<Icon icon="trash-16" iconSize={16} />} icon={<Icon icon="trash-16" iconSize={16} />}

View File

@@ -7,10 +7,7 @@ import { MaterialProgressBar } from 'components';
import { Can, FormatDateCell, If, Icon } from 'components'; import { Can, FormatDateCell, If, Icon } from 'components';
import { useAccountTransactionsContext } from './AccountTransactionsProvider'; import { useAccountTransactionsContext } from './AccountTransactionsProvider';
import { TRANSACRIONS_TYPE } from 'common/cashflowOptions'; import { TRANSACRIONS_TYPE } from 'common/cashflowOptions';
import { import { AbilitySubject, CashflowAction } from '../../../common/abilityOption';
AbilitySubject,
Cashflow_Abilities,
} from '../../../common/abilityOption';
import { safeCallback } from 'utils'; import { safeCallback } from 'utils';
export function ActionsMenu({ export function ActionsMenu({
@@ -24,7 +21,7 @@ export function ActionsMenu({
text={intl.get('view_details')} text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, original)} onClick={safeCallback(onViewDetails, original)}
/> />
<Can I={Cashflow_Abilities.Delete} a={AbilitySubject.Cashflow}> <Can I={CashflowAction.Delete} a={AbilitySubject.Cashflow}>
<If condition={TRANSACRIONS_TYPE.includes(original.reference_type)}> <If condition={TRANSACRIONS_TYPE.includes(original.reference_type)}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem

View File

@@ -9,10 +9,7 @@ import {
} from '@blueprintjs/core'; } from '@blueprintjs/core';
import { Can, Icon, FormattedMessage as T } from 'components'; import { Can, Icon, FormattedMessage as T } from 'components';
import { useRefreshCashflowAccounts } from 'hooks/query'; import { useRefreshCashflowAccounts } from 'hooks/query';
import { import { CashflowAction, AbilitySubject } from '../../../common/abilityOption';
Cashflow_Abilities,
AbilitySubject,
} from '../../../common/abilityOption';
import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
@@ -60,7 +57,7 @@ function CashFlowAccountsActionsBar({
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Can I={Cashflow_Abilities.Create} a={AbilitySubject.Cashflow}> <Can I={CashflowAction.Create} a={AbilitySubject.Cashflow}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'plus-24'} iconSize={20} />} icon={<Icon icon={'plus-24'} iconSize={20} />}
@@ -92,7 +89,7 @@ function CashFlowAccountsActionsBar({
text={<T id={'import'} />} text={<T id={'import'} />}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Cashflow_Abilities.Edit} a={AbilitySubject.Cashflow}> <Can I={CashflowAction.Edit} a={AbilitySubject.Cashflow}>
<Switch <Switch
labelElement={<T id={'inactive'} />} labelElement={<T id={'inactive'} />}
defaultChecked={false} defaultChecked={false}

View File

@@ -16,8 +16,8 @@ import {
Can, Can,
} from '../../../components'; } from '../../../components';
import { import {
Account_Abilities, AccountAction,
Cashflow_Abilities, CashflowAction,
AbilitySubject, AbilitySubject,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
@@ -228,7 +228,7 @@ function CashflowAccountContextMenu({
text={intl.get('view_details')} text={intl.get('view_details')}
onClick={safeCallback(onViewClick)} onClick={safeCallback(onViewClick)}
/> />
<Can I={Cashflow_Abilities.Create} a={AbilitySubject.Cashflow}> <Can I={CashflowAction.Create} a={AbilitySubject.Cashflow}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
text={<T id={'cash_flow_money_in'} />} text={<T id={'cash_flow_money_in'} />}
@@ -244,7 +244,7 @@ function CashflowAccountContextMenu({
<CashflowAccountMoneyOutContextMenu onClick={onMoneyOutClick} /> <CashflowAccountMoneyOutContextMenu onClick={onMoneyOutClick} />
</MenuItem> </MenuItem>
</Can> </Can>
<Can I={Cashflow_Abilities.Edit} a={AbilitySubject.Cashflow}> <Can I={CashflowAction.Edit} a={AbilitySubject.Cashflow}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
@@ -253,7 +253,7 @@ function CashflowAccountContextMenu({
onClick={safeCallback(onEditClick)} onClick={safeCallback(onEditClick)}
/> />
</Can> </Can>
<Can I={Account_Abilities.Edit} a={AbilitySubject.Account}> <Can I={AccountAction.Edit} a={AbilitySubject.Account}>
<MenuDivider /> <MenuDivider />
<If condition={account.active}> <If condition={account.active}>
<MenuItem <MenuItem
@@ -270,7 +270,7 @@ function CashflowAccountContextMenu({
/> />
</If> </If>
</Can> </Can>
<Can I={Cashflow_Abilities.Delete} a={AbilitySubject.Cashflow}> <Can I={CashflowAction.Delete} a={AbilitySubject.Cashflow}>
<MenuItem <MenuItem
text={intl.get('delete_account')} text={intl.get('delete_account')}
icon={<Icon icon="trash-16" iconSize={16} />} icon={<Icon icon="trash-16" iconSize={16} />}

View File

@@ -30,10 +30,7 @@ import withCustomersActions from './withCustomersActions';
import withAlertActions from 'containers/Alert/withAlertActions'; import withAlertActions from 'containers/Alert/withAlertActions';
import withSettingsActions from '../../Settings/withSettingsActions'; import withSettingsActions from '../../Settings/withSettingsActions';
import withSettings from '../../Settings/withSettings'; import withSettings from '../../Settings/withSettings';
import { import { CustomerAction, AbilitySubject } from '../../../common/abilityOption';
Customer_Abilities,
AbilitySubject,
} from '../../../common/abilityOption';
import { compose } from 'utils'; import { compose } from 'utils';
@@ -108,7 +105,7 @@ function CustomerActionsBar({
onChange={handleTabChange} onChange={handleTabChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Customer_Abilities.Create} a={AbilitySubject.Item}> <Can I={CustomerAction.Create} a={AbilitySubject.Item}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'plus'} />} icon={<Icon icon={'plus'} />}
@@ -157,7 +154,7 @@ function CustomerActionsBar({
onChange={handleTableRowSizeChange} onChange={handleTableRowSizeChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Customer_Abilities.Edit} a={AbilitySubject.Customer}> <Can I={CustomerAction.Edit} a={AbilitySubject.Customer}>
<Switch <Switch
labelElement={<T id={'inactive'} />} labelElement={<T id={'inactive'} />}
defaultChecked={accountsInactiveMode} defaultChecked={accountsInactiveMode}

View File

@@ -3,10 +3,7 @@ import { Button, Intent } from '@blueprintjs/core';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import { EmptyStatus } from 'components'; import { EmptyStatus } from 'components';
import { Can, FormattedMessage as T } from 'components'; import { Can, FormattedMessage as T } from 'components';
import { import { AbilitySubject, CustomerAction } from '../../../common/abilityOption';
AbilitySubject,
Customer_Abilities,
} from '../../../common/abilityOption';
export default function CustomersEmptyStatus() { export default function CustomersEmptyStatus() {
const history = useHistory(); const history = useHistory();
@@ -21,7 +18,7 @@ export default function CustomersEmptyStatus() {
} }
action={ action={
<> <>
<Can I={Customer_Abilities.Create} a={AbilitySubject.Customer}> <Can I={CustomerAction.Create} a={AbilitySubject.Customer}>
<Button <Button
intent={Intent.PRIMARY} intent={Intent.PRIMARY}
large={true} large={true}

View File

@@ -5,10 +5,7 @@ import clsx from 'classnames';
import intl from 'react-intl-universal'; import intl from 'react-intl-universal';
import { Can, Icon, Money, If, AvaterCell } from 'components'; import { Can, Icon, Money, If, AvaterCell } from 'components';
import { import { CustomerAction, AbilitySubject } from '../../../common/abilityOption';
Customer_Abilities,
AbilitySubject,
} from '../../../common/abilityOption';
import { safeCallback } from 'utils'; import { safeCallback } from 'utils';
@@ -33,7 +30,7 @@ export function ActionsMenu({
text={intl.get('view_details')} text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, original)} onClick={safeCallback(onViewDetails, original)}
/> />
<Can I={Customer_Abilities.Edit} a={AbilitySubject.Customer}> <Can I={CustomerAction.Edit} a={AbilitySubject.Customer}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
@@ -42,14 +39,14 @@ export function ActionsMenu({
onClick={safeCallback(onEdit, original)} onClick={safeCallback(onEdit, original)}
/> />
</Can> </Can>
<Can I={Customer_Abilities.Create} a={AbilitySubject.Customer}> <Can I={CustomerAction.Create} a={AbilitySubject.Customer}>
<MenuItem <MenuItem
icon={<Icon icon="duplicate-16" />} icon={<Icon icon="duplicate-16" />}
text={intl.get('duplicate')} text={intl.get('duplicate')}
onClick={safeCallback(onDuplicate, original)} onClick={safeCallback(onDuplicate, original)}
/> />
</Can> </Can>
<Can I={Customer_Abilities.Edit} a={AbilitySubject.Customer}> <Can I={CustomerAction.Edit} a={AbilitySubject.Customer}>
<If condition={original.active}> <If condition={original.active}>
<MenuItem <MenuItem
text={intl.get('inactivate_customer')} text={intl.get('inactivate_customer')}
@@ -65,7 +62,7 @@ export function ActionsMenu({
/> />
</If> </If>
</Can> </Can>
<Can I={Customer_Abilities.Delete} a={AbilitySubject.Customer}> <Can I={CustomerAction.Delete} a={AbilitySubject.Customer}>
<MenuItem <MenuItem
icon={<Icon icon="trash-16" iconSize={16} />} icon={<Icon icon="trash-16" iconSize={16} />}
text={intl.get('delete_customer')} text={intl.get('delete_customer')}

View File

@@ -14,10 +14,7 @@ import withDialogActions from 'containers/Dialog/withDialogActions';
import withAlertsActions from 'containers/Alert/withAlertActions'; import withAlertsActions from 'containers/Alert/withAlertActions';
import { safeCallback } from 'utils'; import { safeCallback } from 'utils';
import { import { AccountAction, AbilitySubject } from '../../../common/abilityOption';
Account_Abilities,
AbilitySubject,
} from '../../../common/abilityOption';
import { compose } from 'utils'; import { compose } from 'utils';
import { useAccountDrawerContext } from './AccountDrawerProvider'; import { useAccountDrawerContext } from './AccountDrawerProvider';
@@ -57,7 +54,7 @@ function AccountDrawerActionBar({
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Can I={Account_Abilities.Edit} a={AbilitySubject.Account}> <Can I={AccountAction.Edit} a={AbilitySubject.Account}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -73,7 +70,7 @@ function AccountDrawerActionBar({
/> />
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Account_Abilities.Delete} a={AbilitySubject.Account}> <Can I={AccountAction.Delete} a={AbilitySubject.Account}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'trash-16'} iconSize={16} />} icon={<Icon icon={'trash-16'} iconSize={16} />}

View File

@@ -18,8 +18,8 @@ import withDrawerActions from 'containers/Drawer/withDrawerActions';
import { Can, If, Icon, FormattedMessage as T } from 'components'; import { Can, If, Icon, FormattedMessage as T } from 'components';
import { import {
Bill_Abilities, BillAction,
Payment_Made_Abilities, PaymentMadeAction,
AbilitySubject, AbilitySubject,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
@@ -58,7 +58,7 @@ function BillDetailActionsBar({
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Can I={Bill_Abilities.Edit} a={AbilitySubject.Bill}> <Can I={BillAction.Edit} a={AbilitySubject.Bill}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -67,10 +67,7 @@ function BillDetailActionsBar({
/> />
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can <Can I={PaymentMadeAction.Create} a={AbilitySubject.PaymentMade}>
I={Payment_Made_Abilities.Create}
a={AbilitySubject.PaymentMade}
>
<If condition={bill.is_open && !bill.is_fully_paid}> <If condition={bill.is_open && !bill.is_fully_paid}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
@@ -81,7 +78,7 @@ function BillDetailActionsBar({
</If> </If>
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Bill_Abilities.Delete} a={AbilitySubject.Bill}> <Can I={BillAction.Delete} a={AbilitySubject.Bill}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'trash-16'} iconSize={16} />} icon={<Icon icon={'trash-16'} iconSize={16} />}

View File

@@ -6,10 +6,7 @@ import { Can, FormattedMessage as T } from 'components';
import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
import { useCashflowTransactionDrawerContext } from './CashflowTransactionDrawerProvider'; import { useCashflowTransactionDrawerContext } from './CashflowTransactionDrawerProvider';
import withAlertsActions from 'containers/Alert/withAlertActions'; import withAlertsActions from 'containers/Alert/withAlertActions';
import { import { AbilitySubject, CashflowAction } from '../../../common/abilityOption';
AbilitySubject,
Cashflow_Abilities,
} from '../../../common/abilityOption';
import { compose } from 'utils'; import { compose } from 'utils';
/** /**
@@ -27,7 +24,7 @@ function CashflowTransactionDrawerActionBar({
}; };
return ( return (
<Can I={Cashflow_Abilities.Delete} a={AbilitySubject.Cashflow}> <Can I={CashflowAction.Delete} a={AbilitySubject.Cashflow}>
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Button <Button

View File

@@ -24,11 +24,11 @@ import withDrawerActions from 'containers/Drawer/withDrawerActions';
import { Can, Icon, FormattedMessage as T } from 'components'; import { Can, Icon, FormattedMessage as T } from 'components';
import { import {
AbilitySubject, AbilitySubject,
Invoice_Abilities, SaleInvoiceAction,
Estimate_Abilities, SaleEstimateAction,
Receipt_Abilities, SaleReceiptAction,
Payment_Receive_Abilities, PaymentReceiveAction,
Customer_Abilities, CustomerAction,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
import { compose } from 'utils'; import { compose } from 'utils';
@@ -81,19 +81,19 @@ function CustomerDetailsActionsBar({
<Popover <Popover
content={ content={
<Menu> <Menu>
<Can I={Invoice_Abilities.Create} a={AbilitySubject.Invoice}> <Can I={SaleInvoiceAction.Create} a={AbilitySubject.Invoice}>
<MenuItem <MenuItem
text={<T id={'customer.drawer.action.new_invoice'} />} text={<T id={'customer.drawer.action.new_invoice'} />}
onClick={handleNewInvoiceClick} onClick={handleNewInvoiceClick}
/> />
</Can> </Can>
<Can I={Estimate_Abilities.Create} a={AbilitySubject.Estimate}> <Can I={SaleEstimateAction.Create} a={AbilitySubject.Estimate}>
<MenuItem <MenuItem
text={<T id={'customer.drawer.action.new_estimate'} />} text={<T id={'customer.drawer.action.new_estimate'} />}
onClick={handleNewEstimateClick} onClick={handleNewEstimateClick}
/> />
</Can> </Can>
<Can I={Receipt_Abilities.Create} a={AbilitySubject.Receipt}> <Can I={SaleReceiptAction.Create} a={AbilitySubject.Receipt}>
<MenuItem <MenuItem
text={<T id={'customer.drawer.action.new_receipt'} />} text={<T id={'customer.drawer.action.new_receipt'} />}
onClick={handleNewReceiptClick} onClick={handleNewReceiptClick}
@@ -101,7 +101,7 @@ function CustomerDetailsActionsBar({
</Can> </Can>
<Can <Can
I={Payment_Receive_Abilities.Create} I={PaymentReceiveAction.Create}
a={AbilitySubject.PaymentReceive} a={AbilitySubject.PaymentReceive}
> >
<MenuItem <MenuItem
@@ -123,7 +123,7 @@ function CustomerDetailsActionsBar({
</Popover> </Popover>
<NavbarDivider /> <NavbarDivider />
<Can I={Customer_Abilities.Edit} a={AbilitySubject.Customer}> <Can I={CustomerAction.Edit} a={AbilitySubject.Customer}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -132,7 +132,7 @@ function CustomerDetailsActionsBar({
/> />
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Customer_Abilities.Delete} a={AbilitySubject.Customer}> <Can I={CustomerAction.Delete} a={AbilitySubject.Customer}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'trash-16'} iconSize={16} />} icon={<Icon icon={'trash-16'} iconSize={16} />}

View File

@@ -15,7 +15,7 @@ import withDialogActions from 'containers/Dialog/withDialogActions';
import withAlertsActions from 'containers/Alert/withAlertActions'; import withAlertsActions from 'containers/Alert/withAlertActions';
import withDrawerActions from 'containers/Drawer/withDrawerActions'; import withDrawerActions from 'containers/Drawer/withDrawerActions';
import { import {
Estimate_Abilities, SaleEstimateAction,
AbilitySubject, AbilitySubject,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
@@ -63,7 +63,7 @@ function EstimateDetailActionsBar({
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Can I={Estimate_Abilities.Edit} a={AbilitySubject.Estimate}> <Can I={SaleEstimateAction.Edit} a={AbilitySubject.Estimate}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -72,7 +72,7 @@ function EstimateDetailActionsBar({
/> />
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Estimate_Abilities.View} a={AbilitySubject.Estimate}> <Can I={SaleEstimateAction.View} a={AbilitySubject.Estimate}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="print-16" />} icon={<Icon icon="print-16" />}
@@ -80,7 +80,7 @@ function EstimateDetailActionsBar({
onClick={handlePrintEstimate} onClick={handlePrintEstimate}
/> />
</Can> </Can>
<Can I={Estimate_Abilities.Delete} a={AbilitySubject.Estimate}> <Can I={SaleEstimateAction.Delete} a={AbilitySubject.Estimate}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'trash-16'} iconSize={16} />} icon={<Icon icon={'trash-16'} iconSize={16} />}

View File

@@ -9,10 +9,7 @@ import {
NavbarDivider, NavbarDivider,
} from '@blueprintjs/core'; } from '@blueprintjs/core';
import { Can, FormattedMessage as T } from 'components'; import { Can, FormattedMessage as T } from 'components';
import { import { ExpenseAction, AbilitySubject } from '../../../common/abilityOption';
Expense_Abilities,
AbilitySubject,
} from '../../../common/abilityOption';
import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
import withAlertsActions from 'containers/Alert/withAlertActions'; import withAlertsActions from 'containers/Alert/withAlertActions';
import withDrawerActions from 'containers/Drawer/withDrawerActions'; import withDrawerActions from 'containers/Drawer/withDrawerActions';
@@ -47,7 +44,7 @@ function ExpenseDrawerActionBar({
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Can I={Expense_Abilities.Edit} a={AbilitySubject.Expense}> <Can I={ExpenseAction.Edit} a={AbilitySubject.Expense}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -56,7 +53,7 @@ function ExpenseDrawerActionBar({
/> />
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Expense_Abilities.Delete} a={AbilitySubject.Expense}> <Can I={ExpenseAction.Delete} a={AbilitySubject.Expense}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="trash-16" iconSize={16} />} icon={<Icon icon="trash-16" iconSize={16} />}

View File

@@ -9,7 +9,7 @@ import withAlertsActions from 'containers/Alert/withAlertActions';
import { Icon, FormattedMessage as T, Can } from 'components'; import { Icon, FormattedMessage as T, Can } from 'components';
import { import {
Inventory_Adjustment_Abilities, InventoryAdjustmentAction,
AbilitySubject, AbilitySubject,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
@@ -31,8 +31,8 @@ function InventoryAdjustmentDetailActionsBar({
return ( return (
<Can <Can
I={Inventory_Adjustment_Abilities.Delete} I={InventoryAdjustmentAction.Delete}
a={AbilitySubject.Inventory_Adjustment} a={AbilitySubject.InventoryAdjustment}
> >
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>

View File

@@ -18,8 +18,8 @@ import withDrawerActions from 'containers/Drawer/withDrawerActions';
import { If, Can, Icon, FormattedMessage as T } from 'components'; import { If, Can, Icon, FormattedMessage as T } from 'components';
import { import {
Invoice_Abilities, SaleInvoiceAction,
Payment_Receive_Abilities, PaymentReceiveAction,
AbilitySubject, AbilitySubject,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
@@ -83,7 +83,7 @@ function InvoiceDetailActionsBar({
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Can I={Invoice_Abilities.Edit} a={AbilitySubject.Invoice}> <Can I={SaleInvoiceAction.Edit} a={AbilitySubject.Invoice}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -93,7 +93,7 @@ function InvoiceDetailActionsBar({
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Payment_Receive_Abilities.Create} a={AbilitySubject.PaymentReceive}> <Can I={PaymentReceiveAction.Create} a={AbilitySubject.PaymentReceive}>
<If condition={invoice.is_delivered && !invoice.is_fully_paid}> <If condition={invoice.is_delivered && !invoice.is_fully_paid}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
@@ -104,7 +104,7 @@ function InvoiceDetailActionsBar({
</If> </If>
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Invoice_Abilities.View} a={AbilitySubject.Invoice}> <Can I={SaleInvoiceAction.View} a={AbilitySubject.Invoice}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="print-16" />} icon={<Icon icon="print-16" />}
@@ -112,7 +112,7 @@ function InvoiceDetailActionsBar({
onClick={handlePrintInvoice} onClick={handlePrintInvoice}
/> />
</Can> </Can>
<Can I={Invoice_Abilities.Delete} a={AbilitySubject.Invoice}> <Can I={SaleInvoiceAction.Delete} a={AbilitySubject.Invoice}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'trash-16'} iconSize={16} />} icon={<Icon icon={'trash-16'} iconSize={16} />}
@@ -122,7 +122,7 @@ function InvoiceDetailActionsBar({
/> />
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Invoice_Abilities.BadDebt} a={AbilitySubject.Invoice}> <Can I={SaleInvoiceAction.Writeoff} a={AbilitySubject.Invoice}>
<BadDebtMenuItem <BadDebtMenuItem
payload={{ payload={{
onBadDebt: handleBadDebtInvoice, onBadDebt: handleBadDebtInvoice,

View File

@@ -10,7 +10,7 @@ import {
import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
import { useItemDetailDrawerContext } from './ItemDetailDrawerProvider'; import { useItemDetailDrawerContext } from './ItemDetailDrawerProvider';
import { Item_Abilities, AbilitySubject } from '../../../common/abilityOption'; import { ItemAction, AbilitySubject } from '../../../common/abilityOption';
import withAlertsActions from 'containers/Alert/withAlertActions'; import withAlertsActions from 'containers/Alert/withAlertActions';
import withDrawerActions from 'containers/Drawer/withDrawerActions'; import withDrawerActions from 'containers/Drawer/withDrawerActions';
@@ -48,7 +48,7 @@ function ItemDetailActionsBar({
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Can I={Item_Abilities.Edit} a={AbilitySubject.Item}> <Can I={ItemAction.Edit} a={AbilitySubject.Item}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -58,7 +58,7 @@ function ItemDetailActionsBar({
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Item_Abilities.Delete} a={AbilitySubject.Item}> <Can I={ItemAction.Delete} a={AbilitySubject.Item}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'trash-16'} iconSize={16} />} icon={<Icon icon={'trash-16'} iconSize={16} />}

View File

@@ -16,7 +16,7 @@ import withDrawerActions from 'containers/Drawer/withDrawerActions';
import { useManualJournalDrawerContext } from './ManualJournalDrawerProvider'; import { useManualJournalDrawerContext } from './ManualJournalDrawerProvider';
import { import {
Manual_Journal_Abilities, ManualJournalAction,
AbilitySubject, AbilitySubject,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
@@ -49,7 +49,7 @@ function ManualJournalDrawerActionBar({
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Can I={Manual_Journal_Abilities.Edit} a={AbilitySubject.ManualJournal}> <Can I={ManualJournalAction.Edit} a={AbilitySubject.ManualJournal}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -58,10 +58,7 @@ function ManualJournalDrawerActionBar({
/> />
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can <Can I={ManualJournalAction.Delete} a={AbilitySubject.ManualJournal}>
I={Manual_Journal_Abilities.Delete}
a={AbilitySubject.ManualJournal}
>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="trash-16" iconSize={16} />} icon={<Icon icon="trash-16" iconSize={16} />}

View File

@@ -18,7 +18,7 @@ import withDrawerActions from 'containers/Drawer/withDrawerActions';
import { Can, Icon, FormattedMessage as T } from 'components'; import { Can, Icon, FormattedMessage as T } from 'components';
import { import {
Payment_Made_Abilities, PaymentMadeAction,
AbilitySubject, AbilitySubject,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
import { compose } from 'utils'; import { compose } from 'utils';
@@ -51,7 +51,7 @@ function PaymentMadeDetailActionsBar({
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Can I={Payment_Made_Abilities.Edit} a={AbilitySubject.PaymentMade}> <Can I={PaymentMadeAction.Edit} a={AbilitySubject.PaymentMade}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -60,7 +60,7 @@ function PaymentMadeDetailActionsBar({
/> />
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Payment_Made_Abilities.Delete} a={AbilitySubject.PaymentMade}> <Can I={PaymentMadeAction.Delete} a={AbilitySubject.PaymentMade}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'trash-16'} iconSize={16} />} icon={<Icon icon={'trash-16'} iconSize={16} />}

View File

@@ -17,7 +17,10 @@ import withAlertsActions from 'containers/Alert/withAlertActions';
import withDrawerActions from 'containers/Drawer/withDrawerActions'; import withDrawerActions from 'containers/Drawer/withDrawerActions';
import { Can, Icon, FormattedMessage as T, MoreMenuItems } from 'components'; import { Can, Icon, FormattedMessage as T, MoreMenuItems } from 'components';
import { Payment_Receive_Abilities, AbilitySubject } from '../../../common/abilityOption'; import {
PaymentReceiveAction,
AbilitySubject,
} from '../../../common/abilityOption';
import { compose } from 'utils'; import { compose } from 'utils';
@@ -58,7 +61,7 @@ function PaymentReceiveActionsBar({
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Can I={Payment_Receive_Abilities.Edit} a={AbilitySubject.PaymentReceive}> <Can I={PaymentReceiveAction.Edit} a={AbilitySubject.PaymentReceive}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -67,7 +70,7 @@ function PaymentReceiveActionsBar({
/> />
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Payment_Receive_Abilities.Delete} a={AbilitySubject.PaymentReceive}> <Can I={PaymentReceiveAction.Delete} a={AbilitySubject.PaymentReceive}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'trash-16'} iconSize={16} />} icon={<Icon icon={'trash-16'} iconSize={16} />}

View File

@@ -17,7 +17,7 @@ import withDrawerActions from 'containers/Drawer/withDrawerActions';
import { Can, Icon, FormattedMessage as T, MoreMenuItems } from 'components'; import { Can, Icon, FormattedMessage as T, MoreMenuItems } from 'components';
import { useReceiptDetailDrawerContext } from './ReceiptDetailDrawerProvider'; import { useReceiptDetailDrawerContext } from './ReceiptDetailDrawerProvider';
import { import {
Receipt_Abilities, SaleReceiptAction,
AbilitySubject, AbilitySubject,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
@@ -58,7 +58,7 @@ function ReceiptDetailActionBar({
return ( return (
<DashboardActionsBar> <DashboardActionsBar>
<NavbarGroup> <NavbarGroup>
<Can I={Receipt_Abilities.Edit} a={AbilitySubject.Receipt}> <Can I={SaleReceiptAction.Edit} a={AbilitySubject.Receipt}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -67,7 +67,7 @@ function ReceiptDetailActionBar({
/> />
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Receipt_Abilities.View} a={AbilitySubject.Receipt}> <Can I={SaleReceiptAction.View} a={AbilitySubject.Receipt}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="print-16" />} icon={<Icon icon="print-16" />}
@@ -75,7 +75,7 @@ function ReceiptDetailActionBar({
onClick={safeCallback(onPrintReceipt)} onClick={safeCallback(onPrintReceipt)}
/> />
</Can> </Can>
<Can I={Receipt_Abilities.Delete} a={AbilitySubject.Receipt}> <Can I={SaleReceiptAction.Delete} a={AbilitySubject.Receipt}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'trash-16'} iconSize={16} />} icon={<Icon icon={'trash-16'} iconSize={16} />}

View File

@@ -23,9 +23,9 @@ import withDrawerActions from 'containers/Drawer/withDrawerActions';
import { Can, Icon, FormattedMessage as T } from 'components'; import { Can, Icon, FormattedMessage as T } from 'components';
import { import {
AbilitySubject, AbilitySubject,
Invoice_Abilities, SaleInvoiceAction,
Payment_Made_Abilities, PaymentMadeAction,
Vendor_Abilities, VendorAction,
} from '../../../common/abilityOption'; } from '../../../common/abilityOption';
import { safeCallback, compose } from 'utils'; import { safeCallback, compose } from 'utils';
@@ -69,16 +69,13 @@ function VendorDetailsActionsBar({
<Popover <Popover
content={ content={
<Menu> <Menu>
<Can I={Invoice_Abilities.Create} a={AbilitySubject.Invoice}> <Can I={SaleInvoiceAction.Create} a={AbilitySubject.Invoice}>
<MenuItem <MenuItem
text={<T id={'vendor.drawer.action.new_invoice'} />} text={<T id={'vendor.drawer.action.new_invoice'} />}
onClick={handleNewInvoiceClick} onClick={handleNewInvoiceClick}
/> />
</Can> </Can>
<Can <Can I={PaymentMadeAction.Create} a={AbilitySubject.PaymentMade}>
I={Payment_Made_Abilities.Create}
a={AbilitySubject.PaymentMade}
>
<MenuItem <MenuItem
text={<T id={'vendor.drawer.action.new_payment'} />} text={<T id={'vendor.drawer.action.new_payment'} />}
onClick={handleNewPaymentClick} onClick={handleNewPaymentClick}
@@ -97,7 +94,7 @@ function VendorDetailsActionsBar({
/> />
</Popover> </Popover>
<NavbarDivider /> <NavbarDivider />
<Can I={Vendor_Abilities.Edit} a={AbilitySubject.Vendor}> <Can I={VendorAction.Edit} a={AbilitySubject.Vendor}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -106,7 +103,7 @@ function VendorDetailsActionsBar({
/> />
<NavbarDivider /> <NavbarDivider />
</Can> </Can>
<Can I={Vendor_Abilities.Delete} a={AbilitySubject.Vendor}> <Can I={VendorAction.Delete} a={AbilitySubject.Vendor}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'trash-16'} iconSize={16} />} icon={<Icon icon={'trash-16'} iconSize={16} />}

View File

@@ -23,10 +23,7 @@ import {
FormattedMessage as T, FormattedMessage as T,
} from 'components'; } from 'components';
import { import { ExpenseAction, AbilitySubject } from '../../../common/abilityOption';
Expense_Abilities,
AbilitySubject,
} from '../../../common/abilityOption';
import { useRefreshExpenses } from 'hooks/query/expenses'; import { useRefreshExpenses } from 'hooks/query/expenses';
import { useExpensesListContext } from './ExpensesListProvider'; import { useExpensesListContext } from './ExpensesListProvider';
@@ -97,7 +94,7 @@ function ExpensesActionsBar({
onChange={handleTabChange} onChange={handleTabChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Expense_Abilities.Create} a={AbilitySubject.Expense}> <Can I={ExpenseAction.Create} a={AbilitySubject.Expense}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="plus" />} icon={<Icon icon="plus" />}

View File

@@ -3,10 +3,7 @@ import { Button, Intent } from '@blueprintjs/core';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import { EmptyStatus } from 'components'; import { EmptyStatus } from 'components';
import { Can, FormattedMessage as T } from 'components'; import { Can, FormattedMessage as T } from 'components';
import { import { AbilitySubject, ExpenseAction } from '../../../common/abilityOption';
AbilitySubject,
Expense_Abilities,
} from '../../../common/abilityOption';
export default function InvoicesEmptyStatus() { export default function InvoicesEmptyStatus() {
const history = useHistory(); const history = useHistory();
@@ -21,7 +18,7 @@ export default function InvoicesEmptyStatus() {
} }
action={ action={
<> <>
<Can I={Expense_Abilities.Create} a={AbilitySubject.Expense}> <Can I={ExpenseAction.Create} a={AbilitySubject.Expense}>
<Button <Button
intent={Intent.PRIMARY} intent={Intent.PRIMARY}
large={true} large={true}

View File

@@ -12,10 +12,7 @@ import {
MenuDivider, MenuDivider,
} from '@blueprintjs/core'; } from '@blueprintjs/core';
import intl from 'react-intl-universal'; import intl from 'react-intl-universal';
import { import { ExpenseAction, AbilitySubject } from '../../../common/abilityOption';
Expense_Abilities,
AbilitySubject,
} from '../../../common/abilityOption';
import { import {
FormatDateCell, FormatDateCell,
FormattedMessage as T, FormattedMessage as T,
@@ -58,7 +55,7 @@ export function ActionsMenu({
text={intl.get('view_details')} text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, original)} onClick={safeCallback(onViewDetails, original)}
/> />
<Can I={Expense_Abilities.Edit} a={AbilitySubject.Expense}> <Can I={ExpenseAction.Edit} a={AbilitySubject.Expense}>
<MenuDivider /> <MenuDivider />
<If condition={!original.is_published}> <If condition={!original.is_published}>
<MenuItem <MenuItem
@@ -68,14 +65,14 @@ export function ActionsMenu({
/> />
</If> </If>
</Can> </Can>
<Can I={Expense_Abilities.Edit} a={AbilitySubject.Expense}> <Can I={ExpenseAction.Edit} a={AbilitySubject.Expense}>
<MenuItem <MenuItem
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
text={intl.get('edit_expense')} text={intl.get('edit_expense')}
onClick={safeCallback(onEdit, original)} onClick={safeCallback(onEdit, original)}
/> />
</Can> </Can>
<Can I={Expense_Abilities.Delete} a={AbilitySubject.Expense}> <Can I={ExpenseAction.Delete} a={AbilitySubject.Expense}>
<MenuItem <MenuItem
icon={<Icon icon="trash-16" iconSize={16} />} icon={<Icon icon="trash-16" iconSize={16} />}
text={intl.get('delete_expense')} text={intl.get('delete_expense')}

View File

@@ -17,7 +17,7 @@ import { isNumber } from 'lodash';
import { Icon, Money, If } from 'components'; import { Icon, Money, If } from 'components';
import { isBlank, safeCallback } from 'utils'; import { isBlank, safeCallback } from 'utils';
import { import {
Inventory_Adjustment_Abilities, InventoryAdjustmentAction,
AbilitySubject, AbilitySubject,
} from '../../common/abilityOption'; } from '../../common/abilityOption';
@@ -108,8 +108,8 @@ export const ActionsMenu = ({
/> />
<Can <Can
I={Inventory_Adjustment_Abilities.Create} I={InventoryAdjustmentAction.Create}
a={AbilitySubject.Inventory_Adjustment} a={AbilitySubject.InventoryAdjustment}
> >
<MenuDivider /> <MenuDivider />
<If condition={!original.is_published}> <If condition={!original.is_published}>
@@ -121,8 +121,8 @@ export const ActionsMenu = ({
</If> </If>
</Can> </Can>
<Can <Can
I={Inventory_Adjustment_Abilities.Delete} I={InventoryAdjustmentAction.Delete}
a={AbilitySubject.Inventory_Adjustment} a={AbilitySubject.InventoryAdjustment}
> >
<MenuItem <MenuItem
text={intl.get('delete_adjustment')} text={intl.get('delete_adjustment')}

View File

@@ -31,7 +31,7 @@ import withSettings from '../Settings/withSettings';
import { compose } from 'utils'; import { compose } from 'utils';
import withSettingsActions from '../Settings/withSettingsActions'; import withSettingsActions from '../Settings/withSettingsActions';
import { Item_Abilities, AbilitySubject } from '../../common/abilityOption'; import { ItemAction, AbilitySubject } from '../../common/abilityOption';
/** /**
* Items actions bar. * Items actions bar.
@@ -104,7 +104,7 @@ function ItemsActionsBar({
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Item_Abilities.Create} a={AbilitySubject.Item}> <Can I={ItemAction.Create} a={AbilitySubject.Item}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon="plus" />} icon={<Icon icon="plus" />}
@@ -153,7 +153,7 @@ function ItemsActionsBar({
onChange={handleTableRowSizeChange} onChange={handleTableRowSizeChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Item_Abilities.Edit} a={AbilitySubject.Item}> <Can I={ItemAction.Edit} a={AbilitySubject.Item}>
<Switch <Switch
labelElement={<T id={'inactive'} />} labelElement={<T id={'inactive'} />}
defaultChecked={itemsInactiveMode} defaultChecked={itemsInactiveMode}

View File

@@ -3,7 +3,7 @@ import { Button, Intent } from '@blueprintjs/core';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import { EmptyStatus } from 'components'; import { EmptyStatus } from 'components';
import { Can, FormattedMessage as T } from 'components'; import { Can, FormattedMessage as T } from 'components';
import { Item_Abilities, AbilitySubject } from '../../common/abilityOption'; import { ItemAction, AbilitySubject } from '../../common/abilityOption';
export default function ItemsEmptyStatus() { export default function ItemsEmptyStatus() {
const history = useHistory(); const history = useHistory();
@@ -18,7 +18,7 @@ export default function ItemsEmptyStatus() {
} }
action={ action={
<> <>
<Can I={Item_Abilities.Create} a={AbilitySubject.Item}> <Can I={ItemAction.Create} a={AbilitySubject.Item}>
<Button <Button
intent={Intent.PRIMARY} intent={Intent.PRIMARY}
large={true} large={true}

View File

@@ -16,8 +16,8 @@ import { FormattedMessage as T, Icon, Money, If, Can } from 'components';
import { isBlank, safeCallback } from 'utils'; import { isBlank, safeCallback } from 'utils';
import { import {
AbilitySubject, AbilitySubject,
Item_Abilities, ItemAction,
Inventory_Adjustment_Abilities, InventoryAdjustmentAction,
} from '../../common/abilityOption'; } from '../../common/abilityOption';
/** /**
@@ -95,7 +95,7 @@ export function ItemsActionMenuList({
text={<T id={'view_details'} />} text={<T id={'view_details'} />}
onClick={safeCallback(onViewDetails, original)} onClick={safeCallback(onViewDetails, original)}
/> />
<Can I={Item_Abilities.Edit} a={AbilitySubject.Item}> <Can I={ItemAction.Edit} a={AbilitySubject.Item}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -103,14 +103,14 @@ export function ItemsActionMenuList({
onClick={safeCallback(onEditItem, original)} onClick={safeCallback(onEditItem, original)}
/> />
</Can> </Can>
<Can I={Item_Abilities.Create} a={AbilitySubject.Item}> <Can I={ItemAction.Create} a={AbilitySubject.Item}>
<MenuItem <MenuItem
icon={<Icon icon="duplicate-16" />} icon={<Icon icon="duplicate-16" />}
text={intl.get('duplicate')} text={intl.get('duplicate')}
onClick={safeCallback(onDuplicate, original)} onClick={safeCallback(onDuplicate, original)}
/> />
</Can> </Can>
<Can I={Item_Abilities.Edit} a={AbilitySubject.Item}> <Can I={ItemAction.Edit} a={AbilitySubject.Item}>
<If condition={original.active}> <If condition={original.active}>
<MenuItem <MenuItem
text={intl.get('inactivate_item')} text={intl.get('inactivate_item')}
@@ -128,8 +128,8 @@ export function ItemsActionMenuList({
</If> </If>
</Can> </Can>
<Can <Can
I={Inventory_Adjustment_Abilities.Edit} I={InventoryAdjustmentAction.Edit}
a={AbilitySubject.Inventory_Adjustment} a={AbilitySubject.InventoryAdjustment}
> >
<If condition={original.type === 'inventory'}> <If condition={original.type === 'inventory'}>
<MenuItem <MenuItem
@@ -139,7 +139,7 @@ export function ItemsActionMenuList({
/> />
</If> </If>
</Can> </Can>
<Can I={Item_Abilities.Delete} a={AbilitySubject.Item}> <Can I={ItemAction.Delete} a={AbilitySubject.Item}>
<MenuItem <MenuItem
text={intl.get('delete_item')} text={intl.get('delete_item')}
icon={<Icon icon="trash-16" iconSize={16} />} icon={<Icon icon="trash-16" iconSize={16} />}

View File

@@ -21,7 +21,7 @@ import {
AdvancedFilterPopover, AdvancedFilterPopover,
DashboardRowsHeightButton, DashboardRowsHeightButton,
} from 'components'; } from 'components';
import { Bill_Abilities, AbilitySubject } from '../../../../common/abilityOption'; import { BillAction, AbilitySubject } from '../../../../common/abilityOption';
import withBillsActions from './withBillsActions'; import withBillsActions from './withBillsActions';
import withBills from './withBills'; import withBills from './withBills';
@@ -88,7 +88,7 @@ function BillActionsBar({
onChange={handleTabChange} onChange={handleTabChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Bill_Abilities.Create} a={AbilitySubject.Bill}> <Can I={BillAction.Create} a={AbilitySubject.Bill}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'plus'} />} icon={<Icon icon={'plus'} />}

View File

@@ -3,10 +3,7 @@ import { Button, Intent } from '@blueprintjs/core';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import { EmptyStatus } from 'components'; import { EmptyStatus } from 'components';
import { Can, FormattedMessage as T } from 'components'; import { Can, FormattedMessage as T } from 'components';
import { import { BillAction, AbilitySubject } from '../../../../common/abilityOption';
Bill_Abilities,
AbilitySubject,
} from '../../../../common/abilityOption';
export default function BillsEmptyStatus() { export default function BillsEmptyStatus() {
const history = useHistory(); const history = useHistory();
@@ -21,7 +18,7 @@ export default function BillsEmptyStatus() {
} }
action={ action={
<> <>
<Can I={Bill_Abilities.Create} a={AbilitySubject.Bill}> <Can I={BillAction.Create} a={AbilitySubject.Bill}>
<Button <Button
intent={Intent.PRIMARY} intent={Intent.PRIMARY}
large={true} large={true}

View File

@@ -20,8 +20,8 @@ import {
} from 'components'; } from 'components';
import { formattedAmount, safeCallback, isBlank, calculateStatus } from 'utils'; import { formattedAmount, safeCallback, isBlank, calculateStatus } from 'utils';
import { import {
Bill_Abilities, BillAction,
Payment_Made_Abilities, PaymentMadeAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -46,7 +46,7 @@ export function ActionsMenu({
text={intl.get('view_details')} text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, original)} onClick={safeCallback(onViewDetails, original)}
/> />
<Can I={Bill_Abilities.Edit} a={AbilitySubject.Bill}> <Can I={BillAction.Edit} a={AbilitySubject.Bill}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -62,7 +62,7 @@ export function ActionsMenu({
/> />
</If> </If>
</Can> </Can>
<Can I={Payment_Made_Abilities.Create} a={AbilitySubject.PaymentMade}> <Can I={PaymentMadeAction.Create} a={AbilitySubject.PaymentMade}>
<If condition={original.is_open && !original.is_fully_paid}> <If condition={original.is_open && !original.is_fully_paid}>
<MenuItem <MenuItem
icon={<Icon icon="quick-payment-16" iconSize={16} />} icon={<Icon icon="quick-payment-16" iconSize={16} />}
@@ -76,7 +76,7 @@ export function ActionsMenu({
text={intl.get('allocate_landed_coast')} text={intl.get('allocate_landed_coast')}
onClick={safeCallback(onAllocateLandedCost, original)} onClick={safeCallback(onAllocateLandedCost, original)}
/> />
<Can I={Bill_Abilities.Delete} a={AbilitySubject.Bill}> <Can I={BillAction.Delete} a={AbilitySubject.Bill}>
<MenuItem <MenuItem
text={intl.get('delete_bill')} text={intl.get('delete_bill')}
intent={Intent.DANGER} intent={Intent.DANGER}

View File

@@ -31,7 +31,7 @@ import withSettings from 'containers/Settings/withSettings';
import { usePaymentMadesListContext } from './PaymentMadesListProvider'; import { usePaymentMadesListContext } from './PaymentMadesListProvider';
import { useRefreshPaymentMades } from 'hooks/query/paymentMades'; import { useRefreshPaymentMades } from 'hooks/query/paymentMades';
import { import {
Payment_Made_Abilities, PaymentMadeAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -90,7 +90,7 @@ function PaymentMadeActionsBar({
onChange={handleTabChange} onChange={handleTabChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Payment_Made_Abilities.Create} a={AbilitySubject.PaymentMade}> <Can I={PaymentMadeAction.Create} a={AbilitySubject.PaymentMade}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'plus'} />} icon={<Icon icon={'plus'} />}

View File

@@ -4,7 +4,7 @@ import { useHistory } from 'react-router-dom';
import { EmptyStatus } from 'components'; import { EmptyStatus } from 'components';
import { Can, FormattedMessage as T } from 'components'; import { Can, FormattedMessage as T } from 'components';
import { import {
Payment_Made_Abilities, PaymentMadeAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -21,7 +21,7 @@ export default function PaymentMadesEmptyStatus() {
} }
action={ action={
<> <>
<Can I={Payment_Made_Abilities.Create} a={AbilitySubject.PaymentMade}> <Can I={PaymentMadeAction.Create} a={AbilitySubject.PaymentMade}>
<Button <Button
intent={Intent.PRIMARY} intent={Intent.PRIMARY}
large={true} large={true}

View File

@@ -12,7 +12,7 @@ import intl from 'react-intl-universal';
import { Icon, Money, FormatDateCell, Can } from 'components'; import { Icon, Money, FormatDateCell, Can } from 'components';
import { import {
Payment_Made_Abilities, PaymentMadeAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -37,7 +37,7 @@ export function ActionsMenu({
onClick={safeCallback(onViewDetails, original)} onClick={safeCallback(onViewDetails, original)}
/> />
<Can I={Payment_Made_Abilities.Edit} a={AbilitySubject.PaymentMade}> <Can I={PaymentMadeAction.Edit} a={AbilitySubject.PaymentMade}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -45,7 +45,7 @@ export function ActionsMenu({
onClick={safeCallback(onEdit, original)} onClick={safeCallback(onEdit, original)}
/> />
</Can> </Can>
<Can I={Payment_Made_Abilities.Delete} a={AbilitySubject.PaymentMade}> <Can I={PaymentMadeAction.Delete} a={AbilitySubject.PaymentMade}>
<MenuItem <MenuItem
text={intl.get('delete_payment_made')} text={intl.get('delete_payment_made')}
intent={Intent.DANGER} intent={Intent.DANGER}

View File

@@ -30,7 +30,7 @@ import withSettings from 'containers/Settings/withSettings';
import { useEstimatesListContext } from './EstimatesListProvider'; import { useEstimatesListContext } from './EstimatesListProvider';
import { useRefreshEstimates } from 'hooks/query/estimates'; import { useRefreshEstimates } from 'hooks/query/estimates';
import { import {
Estimate_Abilities, SaleEstimateAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -92,7 +92,7 @@ function EstimateActionsBar({
onChange={handleTabChange} onChange={handleTabChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Estimate_Abilities.Create} a={AbilitySubject.Estimate}> <Can I={SaleEstimateAction.Create} a={AbilitySubject.Estimate}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'plus'} />} icon={<Icon icon={'plus'} />}

View File

@@ -4,7 +4,7 @@ import { useHistory } from 'react-router-dom';
import { EmptyStatus } from 'components'; import { EmptyStatus } from 'components';
import { Can, FormattedMessage as T } from 'components'; import { Can, FormattedMessage as T } from 'components';
import { import {
Estimate_Abilities, SaleEstimateAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -20,7 +20,7 @@ export default function EstimatesEmptyStatus() {
} }
action={ action={
<> <>
<Can I={Estimate_Abilities.Create} a={AbilitySubject.Estimate}> <Can I={SaleEstimateAction.Create} a={AbilitySubject.Estimate}>
<Button <Button
intent={Intent.PRIMARY} intent={Intent.PRIMARY}
large={true} large={true}

View File

@@ -3,7 +3,7 @@ import { Intent, Tag, Menu, MenuItem, MenuDivider } from '@blueprintjs/core';
import intl from 'react-intl-universal'; import intl from 'react-intl-universal';
import clsx from 'classnames'; import clsx from 'classnames';
import { import {
Estimate_Abilities, SaleEstimateAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -73,7 +73,7 @@ export function ActionsMenu({
text={intl.get('view_details')} text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, original)} onClick={safeCallback(onViewDetails, original)}
/> />
<Can I={Estimate_Abilities.Edit} a={AbilitySubject.Estimate}> <Can I={SaleEstimateAction.Edit} a={AbilitySubject.Estimate}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -126,14 +126,14 @@ export function ActionsMenu({
</Choose.When> </Choose.When>
</Choose> </Choose>
</Can> </Can>
<Can I={Estimate_Abilities.View} a={AbilitySubject.Estimate}> <Can I={SaleEstimateAction.View} a={AbilitySubject.Estimate}>
<MenuItem <MenuItem
icon={<Icon icon={'print-16'} iconSize={16} />} icon={<Icon icon={'print-16'} iconSize={16} />}
text={intl.get('print')} text={intl.get('print')}
onClick={safeCallback(onPrint, original)} onClick={safeCallback(onPrint, original)}
/> />
</Can> </Can>
<Can I={Estimate_Abilities.Delete} a={AbilitySubject.Estimate}> <Can I={SaleEstimateAction.Delete} a={AbilitySubject.Estimate}>
<MenuItem <MenuItem
text={intl.get('delete_estimate')} text={intl.get('delete_estimate')}
intent={Intent.DANGER} intent={Intent.DANGER}

View File

@@ -20,7 +20,7 @@ import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
import { Can, If, DashboardActionViewsList } from 'components'; import { Can, If, DashboardActionViewsList } from 'components';
import { import {
Invoice_Abilities, SaleInvoiceAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -88,7 +88,7 @@ function InvoiceActionsBar({
onChange={handleTabChange} onChange={handleTabChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Invoice_Abilities.Create} a={AbilitySubject.Invoice}> <Can I={SaleInvoiceAction.Create} a={AbilitySubject.Invoice}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'plus'} />} icon={<Icon icon={'plus'} />}

View File

@@ -4,7 +4,7 @@ import { useHistory } from 'react-router-dom';
import { EmptyStatus } from 'components'; import { EmptyStatus } from 'components';
import { Can, FormattedMessage as T } from 'components'; import { Can, FormattedMessage as T } from 'components';
import { import {
Invoice_Abilities, SaleInvoiceAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -21,7 +21,7 @@ export default function EstimatesEmptyStatus() {
} }
action={ action={
<> <>
<Can I={Invoice_Abilities.Create} a={AbilitySubject.Invoice}> <Can I={SaleInvoiceAction.Create} a={AbilitySubject.Invoice}>
<Button <Button
intent={Intent.PRIMARY} intent={Intent.PRIMARY}
large={true} large={true}

View File

@@ -22,8 +22,8 @@ import {
} from 'components'; } from 'components';
import { formattedAmount, safeCallback, calculateStatus } from 'utils'; import { formattedAmount, safeCallback, calculateStatus } from 'utils';
import { import {
Invoice_Abilities, SaleInvoiceAction,
Payment_Receive_Abilities, PaymentReceiveAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -120,7 +120,7 @@ export function ActionsMenu({
text={intl.get('view_details')} text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, original)} onClick={safeCallback(onViewDetails, original)}
/> />
<Can I={Invoice_Abilities.Edit} a={AbilitySubject.Invoice}> <Can I={SaleInvoiceAction.Edit} a={AbilitySubject.Invoice}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -136,7 +136,7 @@ export function ActionsMenu({
/> />
</If> </If>
</Can> </Can>
<Can I={Payment_Receive_Abilities.Create} a={AbilitySubject.PaymentReceive}> <Can I={PaymentReceiveAction.Create} a={AbilitySubject.PaymentReceive}>
<If condition={original.is_delivered && !original.is_fully_paid}> <If condition={original.is_delivered && !original.is_fully_paid}>
<MenuItem <MenuItem
icon={<Icon icon="quick-payment-16" iconSize={16} />} icon={<Icon icon="quick-payment-16" iconSize={16} />}
@@ -145,14 +145,14 @@ export function ActionsMenu({
/> />
</If> </If>
</Can> </Can>
<Can I={Invoice_Abilities.View} a={AbilitySubject.Invoice}> <Can I={SaleInvoiceAction.View} a={AbilitySubject.Invoice}>
<MenuItem <MenuItem
icon={<Icon icon={'print-16'} iconSize={16} />} icon={<Icon icon={'print-16'} iconSize={16} />}
text={intl.get('print')} text={intl.get('print')}
onClick={safeCallback(onPrint, original)} onClick={safeCallback(onPrint, original)}
/> />
</Can> </Can>
<Can I={Invoice_Abilities.Delete} a={AbilitySubject.Invoice}> <Can I={SaleInvoiceAction.Delete} a={AbilitySubject.Invoice}>
<MenuItem <MenuItem
text={intl.get('delete_invoice')} text={intl.get('delete_invoice')}
intent={Intent.DANGER} intent={Intent.DANGER}

View File

@@ -27,7 +27,7 @@ import withPaymentReceives from './withPaymentReceives';
import withSettingsActions from 'containers/Settings/withSettingsActions'; import withSettingsActions from 'containers/Settings/withSettingsActions';
import withSettings from 'containers/Settings/withSettings'; import withSettings from 'containers/Settings/withSettings';
import { import {
Payment_Receive_Abilities, PaymentReceiveAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
import { compose } from 'utils'; import { compose } from 'utils';
@@ -88,7 +88,7 @@ function PaymentReceiveActionsBar({
onChange={handleTabChange} onChange={handleTabChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Payment_Receive_Abilities.Create} a={AbilitySubject.PaymentReceive}> <Can I={PaymentReceiveAction.Create} a={AbilitySubject.PaymentReceive}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'plus'} />} icon={<Icon icon={'plus'} />}

View File

@@ -4,7 +4,7 @@ import { useHistory } from 'react-router-dom';
import { EmptyStatus } from 'components'; import { EmptyStatus } from 'components';
import { Can, FormattedMessage as T } from 'components'; import { Can, FormattedMessage as T } from 'components';
import { import {
Payment_Receive_Abilities, PaymentReceiveAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -24,7 +24,7 @@ export default function PaymentReceivesEmptyStatus() {
action={ action={
<> <>
<Can <Can
I={Payment_Receive_Abilities.Create} I={PaymentReceiveAction.Create}
a={AbilitySubject.PaymentReceive} a={AbilitySubject.PaymentReceive}
> >
<Button <Button

View File

@@ -15,7 +15,7 @@ import { FormatDateCell, Money, Icon, Can } from 'components';
import { safeCallback } from 'utils'; import { safeCallback } from 'utils';
import { CLASSES } from '../../../../common/classes'; import { CLASSES } from '../../../../common/classes';
import { import {
Payment_Receive_Abilities, PaymentReceiveAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
/** /**
@@ -32,7 +32,7 @@ export function ActionsMenu({
text={intl.get('view_details')} text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, paymentReceive)} onClick={safeCallback(onViewDetails, paymentReceive)}
/> />
<Can I={Payment_Receive_Abilities.Edit} a={AbilitySubject.PaymentReceive}> <Can I={PaymentReceiveAction.Edit} a={AbilitySubject.PaymentReceive}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -40,7 +40,7 @@ export function ActionsMenu({
onClick={safeCallback(onEdit, paymentReceive)} onClick={safeCallback(onEdit, paymentReceive)}
/> />
</Can> </Can>
<Can I={Payment_Receive_Abilities.Delete} a={AbilitySubject.PaymentReceive}> <Can I={PaymentReceiveAction.Delete} a={AbilitySubject.PaymentReceive}>
<MenuItem <MenuItem
text={intl.get('delete_payment_receive')} text={intl.get('delete_payment_receive')}
intent={Intent.DANGER} intent={Intent.DANGER}

View File

@@ -29,7 +29,7 @@ import withSettings from 'containers/Settings/withSettings';
import { useReceiptsListContext } from './ReceiptsListProvider'; import { useReceiptsListContext } from './ReceiptsListProvider';
import { useRefreshReceipts } from 'hooks/query/receipts'; import { useRefreshReceipts } from 'hooks/query/receipts';
import { import {
Receipt_Abilities, SaleReceiptAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -92,7 +92,7 @@ function ReceiptActionsBar({
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Receipt_Abilities.Create} a={AbilitySubject.Receipt}> <Can I={SaleReceiptAction.Create} a={AbilitySubject.Receipt}>
<Button <Button
className={Classes.MINIMAL} className={Classes.MINIMAL}
icon={<Icon icon={'plus'} />} icon={<Icon icon={'plus'} />}

View File

@@ -4,7 +4,7 @@ import { useHistory } from 'react-router-dom';
import { EmptyStatus } from 'components'; import { EmptyStatus } from 'components';
import { Can, FormattedMessage as T } from 'components'; import { Can, FormattedMessage as T } from 'components';
import { import {
Receipt_Abilities, SaleReceiptAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -21,7 +21,7 @@ export default function ReceiptsEmptyStatus() {
} }
action={ action={
<> <>
<Can I={Receipt_Abilities.Create} a={AbilitySubject.Receipt}> <Can I={SaleReceiptAction.Create} a={AbilitySubject.Receipt}>
<Button <Button
intent={Intent.PRIMARY} intent={Intent.PRIMARY}
large={true} large={true}

View File

@@ -17,7 +17,7 @@ import { CLASSES } from '../../../../common/classes';
import { safeCallback } from 'utils'; import { safeCallback } from 'utils';
import { FormatDateCell, Choose, Money, Icon, If, Can } from 'components'; import { FormatDateCell, Choose, Money, Icon, If, Can } from 'components';
import { import {
Receipt_Abilities, SaleReceiptAction,
AbilitySubject, AbilitySubject,
} from '../../../../common/abilityOption'; } from '../../../../common/abilityOption';
@@ -32,7 +32,7 @@ export function ActionsMenu({
text={intl.get('view_details')} text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, receipt)} onClick={safeCallback(onViewDetails, receipt)}
/> />
<Can I={Receipt_Abilities.Edit} a={AbilitySubject.Receipt}> <Can I={SaleReceiptAction.Edit} a={AbilitySubject.Receipt}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -48,14 +48,14 @@ export function ActionsMenu({
/> />
</If> </If>
</Can> </Can>
<Can I={Receipt_Abilities.View} a={AbilitySubject.Receipt}> <Can I={SaleReceiptAction.View} a={AbilitySubject.Receipt}>
<MenuItem <MenuItem
icon={<Icon icon={'print-16'} iconSize={16} />} icon={<Icon icon={'print-16'} iconSize={16} />}
text={intl.get('print')} text={intl.get('print')}
onClick={safeCallback(onPrint, receipt)} onClick={safeCallback(onPrint, receipt)}
/> />
</Can> </Can>
<Can I={Receipt_Abilities.Delete} a={AbilitySubject.Receipt}> <Can I={SaleReceiptAction.Delete} a={AbilitySubject.Receipt}>
<MenuItem <MenuItem
text={intl.get('delete_receipt')} text={intl.get('delete_receipt')}
intent={Intent.DANGER} intent={Intent.DANGER}

View File

@@ -30,10 +30,7 @@ import withVendors from './withVendors';
import withSettingsActions from '../../Settings/withSettingsActions'; import withSettingsActions from '../../Settings/withSettingsActions';
import withSettings from '../../Settings/withSettings'; import withSettings from '../../Settings/withSettings';
import { import { VendorAction, AbilitySubject } from '../../../common/abilityOption';
Vendor_Abilities,
AbilitySubject,
} from '../../../common/abilityOption';
import { compose } from 'utils'; import { compose } from 'utils';
/** /**
@@ -142,7 +139,7 @@ function VendorActionsBar({
onChange={handleTableRowSizeChange} onChange={handleTableRowSizeChange}
/> />
<NavbarDivider /> <NavbarDivider />
<Can I={Vendor_Abilities.Edit} a={AbilitySubject.Vendor}> <Can I={VendorAction.Edit} a={AbilitySubject.Vendor}>
<Switch <Switch
labelElement={<T id={'inactive'} />} labelElement={<T id={'inactive'} />}
defaultChecked={vendorsInactiveMode} defaultChecked={vendorsInactiveMode}

View File

@@ -3,10 +3,7 @@ import { Button, Intent } from '@blueprintjs/core';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import { EmptyStatus } from 'components'; import { EmptyStatus } from 'components';
import { Can, FormattedMessage as T } from 'components'; import { Can, FormattedMessage as T } from 'components';
import { import { VendorAction, AbilitySubject } from '../../../common/abilityOption';
Vendor_Abilities,
AbilitySubject,
} from '../../../common/abilityOption';
export default function VendorsEmptyStatus() { export default function VendorsEmptyStatus() {
const history = useHistory(); const history = useHistory();
@@ -21,7 +18,7 @@ export default function VendorsEmptyStatus() {
} }
action={ action={
<> <>
<Can I={Vendor_Abilities.Create} a={AbilitySubject.Vendor}> <Can I={VendorAction.Create} a={AbilitySubject.Vendor}>
<Button <Button
intent={Intent.PRIMARY} intent={Intent.PRIMARY}
large={true} large={true}

View File

@@ -11,10 +11,7 @@ import {
import intl from 'react-intl-universal'; import intl from 'react-intl-universal';
import { Can, Icon, Money, If, AvaterCell } from 'components'; import { Can, Icon, Money, If, AvaterCell } from 'components';
import { import { VendorAction, AbilitySubject } from '../../../common/abilityOption';
Vendor_Abilities,
AbilitySubject,
} from '../../../common/abilityOption';
import { safeCallback, firstLettersArgs } from 'utils'; import { safeCallback, firstLettersArgs } from 'utils';
/** /**
@@ -38,7 +35,7 @@ export function ActionsMenu({
text={intl.get('view_details')} text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, original)} onClick={safeCallback(onViewDetails, original)}
/> />
<Can I={Vendor_Abilities.Edit} a={AbilitySubject.Vendor}> <Can I={VendorAction.Edit} a={AbilitySubject.Vendor}>
<MenuDivider /> <MenuDivider />
<MenuItem <MenuItem
icon={<Icon icon="pen-18" />} icon={<Icon icon="pen-18" />}
@@ -46,14 +43,14 @@ export function ActionsMenu({
onClick={safeCallback(onEdit, original)} onClick={safeCallback(onEdit, original)}
/> />
</Can> </Can>
<Can I={Vendor_Abilities.Create} a={AbilitySubject.Customer}> <Can I={VendorAction.Create} a={AbilitySubject.Customer}>
<MenuItem <MenuItem
icon={<Icon icon="duplicate-16" />} icon={<Icon icon="duplicate-16" />}
text={intl.get('duplicate')} text={intl.get('duplicate')}
onClick={safeCallback(onDuplicate, original)} onClick={safeCallback(onDuplicate, original)}
/> />
</Can> </Can>
<Can I={Vendor_Abilities.Edit} a={AbilitySubject.Vendor}> <Can I={VendorAction.Edit} a={AbilitySubject.Vendor}>
<If condition={original.active}> <If condition={original.active}>
<MenuItem <MenuItem
text={intl.get('inactivate_item')} text={intl.get('inactivate_item')}
@@ -69,7 +66,7 @@ export function ActionsMenu({
/> />
</If> </If>
</Can> </Can>
<Can I={Vendor_Abilities.Delete} a={AbilitySubject.Vendor}> <Can I={VendorAction.Delete} a={AbilitySubject.Vendor}>
<MenuItem <MenuItem
icon={<Icon icon="trash-16" iconSize={16} />} icon={<Icon icon="trash-16" iconSize={16} />}
text={intl.get('delete_vendor')} text={intl.get('delete_vendor')}