Skip to content

Commit c02d07d

Browse files
committed
nMembers
1 parent 1f4291e commit c02d07d

File tree

3 files changed

+33
-20
lines changed

3 files changed

+33
-20
lines changed

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

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,27 +41,30 @@ qx.Class.define("osparc.desktop.organizations.OrganizationDetails", {
4141
__templatesList: null,
4242
__servicesList: null,
4343

44-
setCurrentOrg: function(orgModel) {
45-
if (orgModel === null) {
44+
setCurrentOrg: function(organization) {
45+
if (organization === null) {
4646
return;
4747
}
48-
this.__orgModel = orgModel;
48+
this.__orgModel = organization;
4949

5050
const organizationListItem = this.__addOrganizationListItem();
51-
orgModel.bind("groupId", organizationListItem, "key");
52-
orgModel.bind("groupId", organizationListItem, "model");
53-
orgModel.bind("thumbnail", organizationListItem, "thumbnail");
54-
orgModel.bind("label", organizationListItem, "title");
55-
orgModel.bind("description", organizationListItem, "subtitle");
56-
orgModel.bind("groupMembers", organizationListItem, "role", {
57-
converter: groupMembers => groupMembers ? Object.keys(groupMembers).length + this.tr(" members") : "-"
58-
});
59-
orgModel.bind("accessRights", organizationListItem, "accessRights");
51+
organization.bind("groupId", organizationListItem, "key");
52+
organization.bind("groupId", organizationListItem, "model");
53+
organization.bind("thumbnail", organizationListItem, "thumbnail");
54+
organization.bind("label", organizationListItem, "title");
55+
organization.bind("description", organizationListItem, "subtitle");
56+
organization.bind("groupMembers", organizationListItem, "groupMembers");
57+
organization.bind("accessRights", organizationListItem, "accessRights");
58+
organizationListItem.updateNMembers();
59+
[
60+
"memberAdded",
61+
"memberRemoved",
62+
].forEach(ev => organization.addListener(ev, () => organizationListItem.updateNMembers()));
6063

6164
// set orgModel to the tab views
62-
this.__membersList.setCurrentOrg(orgModel);
63-
this.__templatesList.setCurrentOrg(orgModel);
64-
this.__servicesList.setCurrentOrg(orgModel);
65+
this.__membersList.setCurrentOrg(organization);
66+
this.__templatesList.setCurrentOrg(organization);
67+
this.__servicesList.setCurrentOrg(organization);
6568
},
6669

6770
__getTitleLayout: function() {

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,7 @@ qx.Class.define("osparc.desktop.organizations.OrganizationsList", {
135135
ctrl.bindProperty("thumbnail", "thumbnail", null, item, id);
136136
ctrl.bindProperty("label", "title", null, item, id);
137137
ctrl.bindProperty("description", "subtitle", null, item, id);
138-
ctrl.bindProperty("groupMembers", "role", {
139-
converter: groupMembers => groupMembers ? Object.keys(groupMembers).length + this.tr(" members") : "-"
140-
}, item, id);
138+
ctrl.bindProperty("groupMembers", "groupMembers", null, item, id);
141139
ctrl.bindProperty("accessRights", "accessRights", null, item, id);
142140
},
143141
configureItem: item => {

services/static-webserver/client/source/class/osparc/ui/list/OrganizationListItem.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,14 @@ qx.Class.define("osparc.ui.list.OrganizationListItem", {
2424
init: true,
2525
nullable: false,
2626
event: "changeShowDeleteButton"
27-
}
27+
},
28+
29+
groupMembers: {
30+
check: "Object",
31+
nullable: true,
32+
init: null,
33+
event: "changeGroupMembers",
34+
},
2835
},
2936

3037
events: {
@@ -39,6 +46,11 @@ qx.Class.define("osparc.ui.list.OrganizationListItem", {
3946
return;
4047
},
4148

49+
updateNMembers: function() {
50+
const roleText = this.getGroupMembers() ? Object.keys(this.getGroupMembers()).length + this.tr(" members") : "-";
51+
this.setRole(roleText);
52+
},
53+
4254
// overridden
4355
_getOptionsMenu: function() {
4456
let menu = null;
@@ -89,6 +101,6 @@ qx.Class.define("osparc.ui.list.OrganizationListItem", {
89101
thumbnail.setSource(osparc.utils.Icons.everyone(osparc.ui.list.ListItemWithMenu.ICON_SIZE));
90102
}
91103
}
92-
}
104+
},
93105
}
94106
});

0 commit comments

Comments
 (0)