mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-20 14:50:32 +00:00
feat: add account ability.
This commit is contained in:
@@ -15,6 +15,7 @@ import { FormattedMessage as T } from 'components';
|
|||||||
import {
|
import {
|
||||||
AdvancedFilterPopover,
|
AdvancedFilterPopover,
|
||||||
If,
|
If,
|
||||||
|
Can,
|
||||||
DashboardActionViewsList,
|
DashboardActionViewsList,
|
||||||
DashboardFilterButton,
|
DashboardFilterButton,
|
||||||
DashboardRowsHeightButton,
|
DashboardRowsHeightButton,
|
||||||
@@ -30,6 +31,8 @@ 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 { compose } from 'utils';
|
import { compose } from 'utils';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -116,13 +119,14 @@ function AccountsActionsBar({
|
|||||||
onChange={handleTabChange}
|
onChange={handleTabChange}
|
||||||
/>
|
/>
|
||||||
<NavbarDivider />
|
<NavbarDivider />
|
||||||
|
<Can I={Account_Abilities.Create} a={AbilitySubject.Account}>
|
||||||
<Button
|
<Button
|
||||||
className={Classes.MINIMAL}
|
className={Classes.MINIMAL}
|
||||||
icon={<Icon icon="plus" />}
|
icon={<Icon icon="plus" />}
|
||||||
text={<T id={'new_account'} />}
|
text={<T id={'new_account'} />}
|
||||||
onClick={onClickNewAccount}
|
onClick={onClickNewAccount}
|
||||||
/>
|
/>
|
||||||
|
</Can>
|
||||||
<AdvancedFilterPopover
|
<AdvancedFilterPopover
|
||||||
advancedFilterProps={{
|
advancedFilterProps={{
|
||||||
conditions: accountsFilterConditions,
|
conditions: accountsFilterConditions,
|
||||||
@@ -183,11 +187,13 @@ function AccountsActionsBar({
|
|||||||
onChange={handleTableRowSizeChange}
|
onChange={handleTableRowSizeChange}
|
||||||
/>
|
/>
|
||||||
<NavbarDivider />
|
<NavbarDivider />
|
||||||
|
<Can I={Account_Abilities.Edit} a={AbilitySubject.Account}>
|
||||||
<Switch
|
<Switch
|
||||||
labelElement={<T id={'inactive'} />}
|
labelElement={<T id={'inactive'} />}
|
||||||
defaultChecked={accountsInactiveMode}
|
defaultChecked={accountsInactiveMode}
|
||||||
onChange={handleInactiveSwitchChange}
|
onChange={handleInactiveSwitchChange}
|
||||||
/>
|
/>
|
||||||
|
</Can>
|
||||||
</NavbarGroup>
|
</NavbarGroup>
|
||||||
<NavbarGroup align={Alignment.RIGHT}>
|
<NavbarGroup align={Alignment.RIGHT}>
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ import {
|
|||||||
MenuDivider,
|
MenuDivider,
|
||||||
Intent,
|
Intent,
|
||||||
} from '@blueprintjs/core';
|
} from '@blueprintjs/core';
|
||||||
import { 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';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Accounts table actions menu.
|
* Accounts table actions menu.
|
||||||
@@ -34,18 +35,22 @@ 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}>
|
||||||
<MenuDivider />
|
<MenuDivider />
|
||||||
<MenuItem
|
<MenuItem
|
||||||
icon={<Icon icon="pen-18" />}
|
icon={<Icon icon="pen-18" />}
|
||||||
text={intl.get('edit_account')}
|
text={intl.get('edit_account')}
|
||||||
onClick={safeCallback(onEdit, original)}
|
onClick={safeCallback(onEdit, original)}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<MenuItem
|
<MenuItem
|
||||||
icon={<Icon icon="plus" />}
|
icon={<Icon icon="plus" />}
|
||||||
text={intl.get('new_child_account')}
|
text={intl.get('new_child_account')}
|
||||||
onClick={safeCallback(onNewChild, original)}
|
onClick={safeCallback(onNewChild, original)}
|
||||||
/>
|
/>
|
||||||
<MenuDivider />
|
<MenuDivider />
|
||||||
|
</Can>
|
||||||
|
<Can I={Account_Abilities.Edit} a={AbilitySubject.Account}>
|
||||||
<If condition={original.active}>
|
<If condition={original.active}>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
text={intl.get('inactivate_account')}
|
text={intl.get('inactivate_account')}
|
||||||
@@ -60,12 +65,15 @@ export function ActionsMenu({
|
|||||||
onClick={safeCallback(onActivate, original)}
|
onClick={safeCallback(onActivate, original)}
|
||||||
/>
|
/>
|
||||||
</If>
|
</If>
|
||||||
|
</Can>
|
||||||
|
<Can I={Account_Abilities.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} />}
|
||||||
intent={Intent.DANGER}
|
intent={Intent.DANGER}
|
||||||
onClick={safeCallback(onDelete, original)}
|
onClick={safeCallback(onDelete, original)}
|
||||||
/>
|
/>
|
||||||
|
</Can>
|
||||||
</Menu>
|
</Menu>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,13 +7,17 @@ import {
|
|||||||
Intent,
|
Intent,
|
||||||
NavbarDivider,
|
NavbarDivider,
|
||||||
} from '@blueprintjs/core';
|
} from '@blueprintjs/core';
|
||||||
import { FormattedMessage as T } from 'components';
|
import { Can, FormattedMessage as T } from 'components';
|
||||||
|
|
||||||
import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
|
import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
|
||||||
import withDialogActions from 'containers/Dialog/withDialogActions';
|
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 {
|
||||||
|
Account_Abilities,
|
||||||
|
AbilitySubject,
|
||||||
|
} from '../../../common/abilityOption';
|
||||||
|
|
||||||
import { compose } from 'utils';
|
import { compose } from 'utils';
|
||||||
import { useAccountDrawerContext } from './AccountDrawerProvider';
|
import { useAccountDrawerContext } from './AccountDrawerProvider';
|
||||||
@@ -53,12 +57,14 @@ function AccountDrawerActionBar({
|
|||||||
return (
|
return (
|
||||||
<DashboardActionsBar>
|
<DashboardActionsBar>
|
||||||
<NavbarGroup>
|
<NavbarGroup>
|
||||||
|
<Can I={Account_Abilities.Edit} a={AbilitySubject.Account}>
|
||||||
<Button
|
<Button
|
||||||
className={Classes.MINIMAL}
|
className={Classes.MINIMAL}
|
||||||
icon={<Icon icon="pen-18" />}
|
icon={<Icon icon="pen-18" />}
|
||||||
text={<T id={'edit_account'} />}
|
text={<T id={'edit_account'} />}
|
||||||
onClick={safeCallback(onEditAccount)}
|
onClick={safeCallback(onEditAccount)}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
className={Classes.MINIMAL}
|
className={Classes.MINIMAL}
|
||||||
icon={<Icon icon="plus" />}
|
icon={<Icon icon="plus" />}
|
||||||
@@ -66,6 +72,8 @@ function AccountDrawerActionBar({
|
|||||||
onClick={safeCallback(onNewChildAccount)}
|
onClick={safeCallback(onNewChildAccount)}
|
||||||
/>
|
/>
|
||||||
<NavbarDivider />
|
<NavbarDivider />
|
||||||
|
</Can>
|
||||||
|
<Can I={Account_Abilities.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} />}
|
||||||
@@ -73,6 +81,7 @@ function AccountDrawerActionBar({
|
|||||||
intent={Intent.DANGER}
|
intent={Intent.DANGER}
|
||||||
onClick={safeCallback(onDeleteAccount)}
|
onClick={safeCallback(onDeleteAccount)}
|
||||||
/>
|
/>
|
||||||
|
</Can>
|
||||||
</NavbarGroup>
|
</NavbarGroup>
|
||||||
</DashboardActionsBar>
|
</DashboardActionsBar>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user