From 27bd7ce2f9b558ebde4173cd37d315edec2f7c5f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Gr=C3=A9goire=20Aubert?= Date: Wed, 27 Feb 2019 10:26:55 +0100 Subject: [PATCH] SONARCLOUD-379 Display user sync warning message only if there are other members already --- .../organizationMembers/MembersPageHeader.tsx | 14 +++++++++++-- .../organizationMembers/SyncMemberForm.tsx | 21 ++++++++++++------- .../__tests__/SyncMemberForm-test.tsx | 2 ++ .../MembersPageHeader-test.tsx.snap | 2 ++ .../SyncMemberForm-test.tsx.snap | 2 +- .../resources/org/sonar/l10n/core.properties | 2 +- 6 files changed, 32 insertions(+), 11 deletions(-) diff --git a/server/sonar-web/src/main/js/apps/organizationMembers/MembersPageHeader.tsx b/server/sonar-web/src/main/js/apps/organizationMembers/MembersPageHeader.tsx index 5bf10ce8799..89fe2e97ce9 100644 --- a/server/sonar-web/src/main/js/apps/organizationMembers/MembersPageHeader.tsx +++ b/server/sonar-web/src/main/js/apps/organizationMembers/MembersPageHeader.tsx @@ -53,7 +53,12 @@ export default function MembersPageHeader(props: Props) { {almKey && isGithub(almKey) && !showSyncNotif && ( - + 1} + organization={organization} + refreshMembers={refreshMembers} + /> )} {!hasMemberSync && (
@@ -91,7 +96,12 @@ export default function MembersPageHeader(props: Props) { translate('organization', almKey) )} - + 1} + organization={organization} + refreshMembers={refreshMembers} + /> )} diff --git a/server/sonar-web/src/main/js/apps/organizationMembers/SyncMemberForm.tsx b/server/sonar-web/src/main/js/apps/organizationMembers/SyncMemberForm.tsx index 826f70a4b1c..5f38c424a8f 100644 --- a/server/sonar-web/src/main/js/apps/organizationMembers/SyncMemberForm.tsx +++ b/server/sonar-web/src/main/js/apps/organizationMembers/SyncMemberForm.tsx @@ -30,7 +30,9 @@ import { translate, translateWithParameters } from '../../helpers/l10n'; import { fetchOrganization } from '../../store/rootActions'; interface Props { + buttonText: string; fetchOrganization: (key: string) => void; + hasOtherMembers?: boolean; organization: T.Organization; refreshMembers: () => Promise; } @@ -91,8 +93,9 @@ export class SyncMemberForm extends React.PureComponent { renderModalBody = () => { const { membersSync } = this.state; - const { organization } = this.props; + const { hasOtherMembers, organization } = this.props; const almKey = organization.alm && sanitizeAlmId(organization.alm.key); + const showWarning = hasOtherMembers && organization.alm && !organization.alm.membersSync; return (
{
  • {translate('organization.members.management.choose_members_permissions')}
  • - {(!organization.alm || !organization.alm.membersSync) && ( - - {translate('organization.members.management.automatic.warning')} - - )} + {almKey && + showWarning && ( + + {translateWithParameters( + 'organization.members.management.automatic.warning_x', + translate('organization', almKey) + )} + + )}
    ); @@ -159,7 +166,7 @@ export class SyncMemberForm extends React.PureComponent { modalHeaderDescription={this.renderModalDescription()} onConfirm={this.handleConfirm} size={'medium'}> - {({ onClick }) => } + {({ onClick }) => } ); } diff --git a/server/sonar-web/src/main/js/apps/organizationMembers/__tests__/SyncMemberForm-test.tsx b/server/sonar-web/src/main/js/apps/organizationMembers/__tests__/SyncMemberForm-test.tsx index 2d959fdb109..8d9d9b55d25 100644 --- a/server/sonar-web/src/main/js/apps/organizationMembers/__tests__/SyncMemberForm-test.tsx +++ b/server/sonar-web/src/main/js/apps/organizationMembers/__tests__/SyncMemberForm-test.tsx @@ -69,7 +69,9 @@ it('should allow to switch to manual mode', async () => { function shallowRender(props: Partial = {}) { return shallow( - organization.members.management.automatic.warning + organization.members.management.automatic.warning_x.organization.github diff --git a/sonar-core/src/main/resources/org/sonar/l10n/core.properties b/sonar-core/src/main/resources/org/sonar/l10n/core.properties index 0aa845d5b52..6b3891f56d3 100644 --- a/sonar-core/src/main/resources/org/sonar/l10n/core.properties +++ b/sonar-core/src/main/resources/org/sonar/l10n/core.properties @@ -2689,7 +2689,7 @@ organization.members.management.manual.add_members_manually=Admin add members ma organization.members.management.automatic=Automatic sync with {0} organization.members.management.automatic.synchronized_from_x=Members are synchronized automatically from your {0} organization.members.management.automatic.members_changes_reflected.github=If you add or remove a member on GitHub, SonarCloud immediately reflects the changes -organization.members.management.automatic.warning=This will override your current Members and Permissions configuration +organization.members.management.automatic.warning_x=This will override your current Members, removing those that are not part of your {0}. organization.members.management.choose_members_permissions=Admin manages permissions for each member in SonarCloud organization.paid_plan.badge=Paid plan organization.default_visibility_of_new_projects=Default visibility of new projects: -- 2.39.5