aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/apps
diff options
context:
space:
mode:
authorKevin Silva <kevin.silva@sonarsource.com>2023-12-04 20:09:08 +0100
committersonartech <sonartech@sonarsource.com>2023-12-05 20:02:45 +0000
commit63c8ed6ff56f63c66f953e01c1612993e6e02532 (patch)
treeb840c796a7cd3b0f1cba0986e588ede6783e7caa /server/sonar-web/src/main/js/apps
parent6b766c730dfd5fdc2c98ff4e13d5f740da3719e9 (diff)
downloadsonarqube-63c8ed6ff56f63c66f953e01c1612993e6e02532.tar.gz
sonarqube-63c8ed6ff56f63c66f953e01c1612993e6e02532.zip
SONAR-21068 Improve loading for Permission Template
Diffstat (limited to 'server/sonar-web/src/main/js/apps')
-rw-r--r--server/sonar-web/src/main/js/apps/permission-templates/components/Template.tsx36
1 files changed, 26 insertions, 10 deletions
diff --git a/server/sonar-web/src/main/js/apps/permission-templates/components/Template.tsx b/server/sonar-web/src/main/js/apps/permission-templates/components/Template.tsx
index 51a49681e57..58f4fde6206 100644
--- a/server/sonar-web/src/main/js/apps/permission-templates/components/Template.tsx
+++ b/server/sonar-web/src/main/js/apps/permission-templates/components/Template.tsx
@@ -163,6 +163,7 @@ export default class Template extends React.PureComponent<Props, State> {
this.setState(({ users }) => ({
users: this.addPermissionToEntity(users, login, permission),
+ loading: true,
}));
const request = isProjectCreator
@@ -173,11 +174,15 @@ export default class Template extends React.PureComponent<Props, State> {
permission,
});
- return request.then(this.props.refresh).catch(() => {
- this.setState(({ users }) => ({
- users: this.removePermissionFromEntity(users, login, permission),
- }));
- });
+ return request
+ .then(this.props.refresh)
+ .then(() => this.setState({ loading: false }))
+ .catch(() => {
+ this.setState(({ users }) => ({
+ users: this.removePermissionFromEntity(users, login, permission),
+ loading: false,
+ }));
+ });
};
revokePermissionFromUser = (login: string, permission: string) => {
@@ -186,6 +191,7 @@ export default class Template extends React.PureComponent<Props, State> {
this.setState(({ users }) => ({
users: this.removePermissionFromEntity(users, login, permission),
+ loading: true,
}));
const request = isProjectCreator
@@ -196,11 +202,15 @@ export default class Template extends React.PureComponent<Props, State> {
permission,
});
- return request.then(this.props.refresh).catch(() => {
- this.setState(({ users }) => ({
- users: this.addPermissionToEntity(users, login, permission),
- }));
- });
+ return request
+ .then(this.props.refresh)
+ .then(() => this.setState({ loading: false }))
+ .catch(() => {
+ this.setState(({ users }) => ({
+ users: this.addPermissionToEntity(users, login, permission),
+ loading: false,
+ }));
+ });
};
grantPermissionToGroup = (groupName: string, permission: string) => {
@@ -208,6 +218,7 @@ export default class Template extends React.PureComponent<Props, State> {
this.setState(({ groups }) => ({
groups: this.addPermissionToEntity(groups, groupName, permission),
+ loading: true,
}));
return api
@@ -217,9 +228,11 @@ export default class Template extends React.PureComponent<Props, State> {
permission,
})
.then(this.props.refresh)
+ .then(() => this.setState({ loading: false }))
.catch(() => {
this.setState(({ groups }) => ({
groups: this.removePermissionFromEntity(groups, groupName, permission),
+ loading: false,
}));
});
};
@@ -229,6 +242,7 @@ export default class Template extends React.PureComponent<Props, State> {
this.setState(({ groups }) => ({
groups: this.removePermissionFromEntity(groups, groupName, permission),
+ loading: true,
}));
return api
@@ -238,9 +252,11 @@ export default class Template extends React.PureComponent<Props, State> {
permission,
})
.then(this.props.refresh)
+ .then(() => this.setState({ loading: false }))
.catch(() => {
this.setState(({ groups }) => ({
groups: this.addPermissionToEntity(groups, groupName, permission),
+ loading: false,
}));
});
};