Browse Source

SONAR-12115 Disable delete button if no projects have been selected

tags/7.8
Wouter Admiraal 5 years ago
parent
commit
e5f61c4ab5

+ 8
- 3
server/sonar-web/src/main/js/apps/projectsManagement/Search.tsx View File

@@ -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>
)}

+ 10
- 0
server/sonar-web/src/main/js/apps/projectsManagement/__tests__/Search-test.tsx View File

@@ -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();
});

+ 6
- 4
server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/Search-test.tsx.snap View File

@@ -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>

+ 2
- 0
sonar-core/src/main/resources/org/sonar/l10n/core.properties View File

@@ -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


#------------------------------------------------------------------------------

Loading…
Cancel
Save