@@ -231,15 +231,20 @@ export default class Search extends React.PureComponent<Props, State> { | |||
<td className="thin nowrap text-middle"> | |||
<Button | |||
className="js-bulk-apply-permission-template" | |||
disabled={this.props.total === 0} | |||
disabled={this.props.selection.length === 0} | |||
onClick={this.handleBulkApplyTemplateClick}> | |||
{translate('permission_templates.bulk_apply_permission_template')} | |||
</Button> | |||
{this.props.qualifiers === 'TRK' && ( | |||
<Button | |||
className="js-delete spacer-left button-red" | |||
disabled={this.props.total === 0} | |||
onClick={this.handleDeleteClick}> | |||
disabled={this.props.selection.length === 0} | |||
onClick={this.handleDeleteClick} | |||
title={ | |||
this.props.selection.length === 0 | |||
? translate('permission_templates.select_to_delete') | |||
: translate('permission_templates.delete_selected') | |||
}> | |||
{translate('delete')} | |||
</Button> | |||
)} |
@@ -28,6 +28,16 @@ it('renders', () => { | |||
expect(shallowRender()).toMatchSnapshot(); | |||
}); | |||
it('disables the delete and bulk apply buttons unless a project is selected', () => { | |||
const wrapper = shallowRender(); | |||
expect(wrapper.find('Button.js-delete').prop('disabled')).toBe(true); | |||
expect(wrapper.find('Button.js-bulk-apply-permission-template').prop('disabled')).toBe(true); | |||
wrapper.setProps({ selection: ['foo'] }); | |||
expect(wrapper.find('Button.js-delete').prop('disabled')).toBe(false); | |||
expect(wrapper.find('Button.js-bulk-apply-permission-template').prop('disabled')).toBe(false); | |||
}); | |||
it('render qualifiers filter', () => { | |||
expect(shallowRender({ topLevelQualifiers: ['TRK', 'VW', 'APP'] })).toMatchSnapshot(); | |||
}); |
@@ -155,15 +155,16 @@ exports[`render qualifiers filter 1`] = ` | |||
> | |||
<Button | |||
className="js-bulk-apply-permission-template" | |||
disabled={false} | |||
disabled={true} | |||
onClick={[Function]} | |||
> | |||
permission_templates.bulk_apply_permission_template | |||
</Button> | |||
<Button | |||
className="js-delete spacer-left button-red" | |||
disabled={false} | |||
disabled={true} | |||
onClick={[Function]} | |||
title="permission_templates.select_to_delete" | |||
> | |||
delete | |||
</Button> | |||
@@ -268,15 +269,16 @@ exports[`renders 1`] = ` | |||
> | |||
<Button | |||
className="js-bulk-apply-permission-template" | |||
disabled={false} | |||
disabled={true} | |||
onClick={[Function]} | |||
> | |||
permission_templates.bulk_apply_permission_template | |||
</Button> | |||
<Button | |||
className="js-delete spacer-left button-red" | |||
disabled={false} | |||
disabled={true} | |||
onClick={[Function]} | |||
title="permission_templates.select_to_delete" | |||
> | |||
delete | |||
</Button> |
@@ -2151,6 +2151,8 @@ permission_templates.project_creators.explanation.sonarcloud=When a new project | |||
permission_templates.bulk_apply_permission_template=Bulk Apply Permission Template | |||
permission_templates.bulk_apply_permission_template.apply_to_selected=You're about to apply the selected permission template to {0} selected item(s). | |||
permission_templates.bulk_apply_permission_template.apply_to_all=You're about to apply the selected permission template to {0} item(s). | |||
permission_templates.select_to_delete=You must select at least one item | |||
permission_templates.delete_selected=Delete all selected items | |||
#------------------------------------------------------------------------------ |