Skip to content

Commit 7282d24

Browse files
committed
postMember
1 parent 4c3149e commit 7282d24

File tree

2 files changed

+37
-12
lines changed

2 files changed

+37
-12
lines changed

services/static-webserver/client/source/class/osparc/desktop/organizations/MembersList.js

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -308,19 +308,11 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
308308
}
309309

310310
const orgId = this.__currentOrg.getGroupId();
311-
const params = {
312-
url: {
313-
"gid": orgId
314-
},
315-
data: {
316-
"email": orgMemberEmail
317-
}
318-
};
319-
osparc.data.Resources.fetch("organizationMembers", "post", params)
311+
const groupsStore = osparc.store.Groups.getInstance();
312+
groupsStore.postMember(orgId, orgMemberEmail)
320313
.then(newMember => {
321314
const text = orgMemberEmail + this.tr(" successfully added");
322315
osparc.FlashMessenger.getInstance().logAs(text);
323-
osparc.store.Store.getInstance().reset("organizationMembers");
324316
this.__reloadOrgMembers();
325317

326318
// push 'NEW_ORGANIZATION' notification

services/static-webserver/client/source/class/osparc/store/Groups.js

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,11 @@ qx.Class.define("osparc.store.Groups", {
108108
.then(orgMembers => {
109109
const group = this.getOrganization(groupId);
110110
if (group) {
111+
// reset group's group members
111112
group.setGroupMembers({});
112113
orgMembers.forEach(orgMember => {
113114
const user = new osparc.data.model.User(orgMember);
114-
group.getGroupMembers()[orgMember["gid"]] = user;
115-
this.getReachableUsers()[orgMember["gid"]] = user;
115+
this.__addToUsersCache(user, groupId);
116116
});
117117
}
118118
});
@@ -122,6 +122,7 @@ qx.Class.define("osparc.store.Groups", {
122122
return new Promise(resolve => {
123123
this.__fetchGroups()
124124
.then(orgs => {
125+
// reset Reachable Users
125126
this.resetReachableUsers();
126127
const promises = Object.keys(orgs).map(orgId => this.__fetchGroupMembers(orgId));
127128
Promise.all(promises)
@@ -286,6 +287,28 @@ qx.Class.define("osparc.store.Groups", {
286287
.catch(console.error);
287288
},
288289

290+
postMember: function(orgId, newMemberEmail) {
291+
const params = {
292+
url: {
293+
"gid": orgId
294+
},
295+
data: {
296+
"email": newMemberEmail
297+
}
298+
};
299+
osparc.data.Resources.fetch("organizationMembers", "post", params)
300+
.then(newMember => {
301+
const user = new osparc.data.model.User(newMember);
302+
this.__addToUsersCache(user, orgId);
303+
return user;
304+
})
305+
.catch(err => {
306+
const errorMessage = err["message"] || this.tr("Something went wrong adding the user");
307+
osparc.FlashMessenger.getInstance().logAs(errorMessage, "ERROR");
308+
console.error(err);
309+
});
310+
},
311+
289312
__addToGroupsCache: function(groupData, groupType) {
290313
let group = this.groupsCached.find(f => f.getGroupId() === groupData["gid"]);
291314
if (group) {
@@ -313,6 +336,16 @@ qx.Class.define("osparc.store.Groups", {
313336
return true;
314337
}
315338
return false;
339+
},
340+
341+
__addToUsersCache: function(user, orgId = null) {
342+
if (orgId) {
343+
const organization = this.getOrganization(orgId);
344+
if (organization) {
345+
organization.getGroupMembers()[user.getGroupId()] = user;
346+
}
347+
}
348+
this.getReachableUsers()[user.getGroupId()] = user;
316349
}
317350
}
318351
});

0 commit comments

Comments
 (0)