Skip to content

Commit cd8718d

Browse files
committed
removeMember
1 parent 7282d24 commit cd8718d

File tree

2 files changed

+35
-20
lines changed

2 files changed

+35
-20
lines changed

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

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
151151
membersCtrl.setDelegate({
152152
createItem: () => new osparc.ui.list.MemberListItem(),
153153
bindItem: (ctrl, item, id) => {
154-
ctrl.bindProperty("groupId", "model", null, item, id);
155-
ctrl.bindProperty("groupId", "key", null, item, id);
154+
ctrl.bindProperty("userId", "model", null, item, id);
155+
ctrl.bindProperty("userId", "key", null, item, id);
156156
ctrl.bindProperty("thumbnail", "thumbnail", null, item, id);
157157
ctrl.bindProperty("name", "title", null, item, id);
158158
ctrl.bindProperty("accessRights", "accessRights", null, item, id);
@@ -229,6 +229,7 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
229229
const groupMembers = organization.getGroupMembers();
230230
Object.values(groupMembers).forEach(groupMember => {
231231
const member = {};
232+
member["userId"] = groupMember.getUserId();
232233
member["groupId"] = groupMember.getGroupId();
233234
member["thumbnail"] = groupMember.getThumbnail();
234235
member["name"] = groupMember.getLabel();
@@ -485,17 +486,11 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
485486
},
486487

487488
__doDeleteMember: function(listedMember) {
488-
const params = {
489-
url: {
490-
"gid": this.__currentOrg.getGroupId(),
491-
"uid": listedMember["id"]
492-
}
493-
};
494-
return osparc.data.Resources.fetch("organizationMembers", "delete", params)
489+
const groupsStore = osparc.store.Groups.getInstance();
490+
return groupsStore.removeMember(this.__currentOrg.getGroupId(), listedMember["id"])
495491
.then(() => {
496-
// OM not sure
497492
osparc.FlashMessenger.getInstance().logAs(listedMember["name"] + this.tr(" successfully removed"));
498-
osparc.store.Store.getInstance().reset("organizationMembers");
493+
this.__reloadOrgMembers();
499494
})
500495
.catch(err => {
501496
osparc.FlashMessenger.getInstance().logAs(this.tr("Something went wrong removing ") + listedMember["name"], "ERROR");

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

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -290,22 +290,30 @@ qx.Class.define("osparc.store.Groups", {
290290
postMember: function(orgId, newMemberEmail) {
291291
const params = {
292292
url: {
293-
"gid": orgId
293+
"gid": parseInt(orgId)
294294
},
295295
data: {
296296
"email": newMemberEmail
297297
}
298298
};
299-
osparc.data.Resources.fetch("organizationMembers", "post", params)
299+
return osparc.data.Resources.fetch("organizationMembers", "post", params)
300300
.then(newMember => {
301301
const user = new osparc.data.model.User(newMember);
302-
this.__addToUsersCache(user, orgId);
302+
this.__addToUsersCache(parseInt(user), parseInt(orgId));
303303
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);
304+
});
305+
},
306+
307+
removeMember: function(orgId, userId) {
308+
const params = {
309+
url: {
310+
"gid": parseInt(orgId),
311+
"uid": parseInt(userId),
312+
}
313+
};
314+
return osparc.data.Resources.fetch("organizationMembers", "delete", params)
315+
.then(() => {
316+
this.__removeUserFromCache(parseInt(userId), parseInt(orgId));
309317
});
310318
},
311319

@@ -346,6 +354,18 @@ qx.Class.define("osparc.store.Groups", {
346354
}
347355
}
348356
this.getReachableUsers()[user.getGroupId()] = user;
349-
}
357+
},
358+
359+
__removeUserFromCache: function(userId, orgId) {
360+
if (orgId) {
361+
const organization = this.getOrganization(orgId);
362+
if (organization) {
363+
const groupMember = Object.values(organization.getGroupMembers()).find(user => user.getUserId() === userId);
364+
if (groupMember) {
365+
delete organization.getGroupMembers()[groupMember.getGroupId()]
366+
}
367+
}
368+
}
369+
},
350370
}
351371
});

0 commit comments

Comments
 (0)