Skip to content

Commit ffb56ae

Browse files
committed
[skip ci] modeling
1 parent ae4b74c commit ffb56ae

File tree

7 files changed

+77
-56
lines changed

7 files changed

+77
-56
lines changed

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
227227

228228
const params = {
229229
url: {
230-
"gid": orgModel.getGid()
230+
"gid": orgModel.getGroupId()
231231
}
232232
};
233233
osparc.data.Resources.get("organizationMembers", params)
@@ -311,7 +311,7 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
311311

312312
const groupsStore = osparc.store.Groups.getInstance();
313313
const productEveryone = groupsStore.getEveryoneProductGroup();
314-
const orgId = this.__currentOrg.getGid();
314+
const orgId = this.__currentOrg.getGroupId();
315315
const params = {
316316
url: {
317317
"gid": orgId
@@ -371,7 +371,7 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
371371

372372
const params = {
373373
url: {
374-
"gid": this.__currentOrg.getGid(),
374+
"gid": this.__currentOrg.getGroupId(),
375375
"uid": orgMember["id"]
376376
},
377377
data: {
@@ -397,7 +397,7 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
397397

398398
const params = {
399399
url: {
400-
"gid": this.__currentOrg.getGid(),
400+
"gid": this.__currentOrg.getGroupId(),
401401
"uid": "id" in orgMember ? orgMember["id"] : orgMember["key"]
402402
},
403403
data: {
@@ -426,7 +426,7 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
426426

427427
const params = {
428428
url: {
429-
"gid": this.__currentOrg.getGid(),
429+
"gid": this.__currentOrg.getGroupId(),
430430
"uid": orgMember["id"]
431431
},
432432
data: {
@@ -452,7 +452,7 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
452452

453453
const params = {
454454
url: {
455-
"gid": this.__currentOrg.getGid(),
455+
"gid": this.__currentOrg.getGroupId(),
456456
"uid": orgMember["id"]
457457
},
458458
data: {
@@ -478,7 +478,7 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
478478

479479
const params = {
480480
url: {
481-
"gid": this.__currentOrg.getGid(),
481+
"gid": this.__currentOrg.getGroupId(),
482482
"uid": orgMember["id"]
483483
},
484484
data: {
@@ -504,7 +504,7 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
504504

505505
const params = {
506506
url: {
507-
"gid": this.__currentOrg.getGid(),
507+
"gid": this.__currentOrg.getGroupId(),
508508
"uid": orgMember["id"]
509509
},
510510
data: {
@@ -526,7 +526,7 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
526526
__doDeleteMember: function(orgMember) {
527527
const params = {
528528
url: {
529-
"gid": this.__currentOrg.getGid(),
529+
"gid": this.__currentOrg.getGroupId(),
530530
"uid": orgMember["id"]
531531
}
532532
};
@@ -557,7 +557,7 @@ qx.Class.define("osparc.desktop.organizations.MembersList", {
557557

558558
const params = {
559559
url: {
560-
"gid": this.__currentOrg.getGid()
560+
"gid": this.__currentOrg.getGroupId()
561561
}
562562
};
563563
osparc.data.Resources.get("organizationMembers", params)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,13 @@ qx.Class.define("osparc.desktop.organizations.OrganizationDetails", {
104104
},
105105

106106
__updateOrganization: function(win, button, orgEditor) {
107-
const orgKey = orgEditor.getGid();
107+
const groupId = orgEditor.getGroupId();
108108
const name = orgEditor.getLabel();
109109
const description = orgEditor.getDescription();
110110
const thumbnail = orgEditor.getThumbnail();
111111
const params = {
112112
url: {
113-
"gid": orgKey
113+
"gid": groupId
114114
},
115115
data: {
116116
"label": name,

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

Lines changed: 23 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,11 @@ qx.Class.define("osparc.desktop.organizations.OrganizationsList", {
6565

6666
statics: {
6767
sortOrganizations: function(a, b) {
68-
const sorted = osparc.share.Collaborators.sortByAccessRights(a["accessRights"], b["accessRights"]);
68+
const sorted = osparc.share.Collaborators.sortByAccessRights(a.getAccessRights(), b.getAccessRights());
6969
if (sorted !== 0) {
7070
return sorted;
7171
}
72-
if (("label" in a) && ("label" in b)) {
73-
return a["label"].localeCompare(b["label"]);
74-
}
75-
return 0;
72+
return a.getLabel().localeCompare(b.getLabel());
7673
}
7774
},
7875

@@ -83,7 +80,7 @@ qx.Class.define("osparc.desktop.organizations.OrganizationsList", {
8380
getOrgModel: function(orgId) {
8481
let org = null;
8582
this.__orgsModel.forEach(orgModel => {
86-
if (orgModel.getGid() === parseInt(orgId)) {
83+
if (orgModel.getGroupId() === parseInt(orgId)) {
8784
org = orgModel;
8885
}
8986
});
@@ -133,8 +130,8 @@ qx.Class.define("osparc.desktop.organizations.OrganizationsList", {
133130
orgsCtrl.setDelegate({
134131
createItem: () => new osparc.ui.list.OrganizationListItem(),
135132
bindItem: (ctrl, item, id) => {
136-
ctrl.bindProperty("gid", "key", null, item, id);
137-
ctrl.bindProperty("gid", "model", null, item, id);
133+
ctrl.bindProperty("groupId", "key", null, item, id);
134+
ctrl.bindProperty("groupId", "model", null, item, id);
138135
ctrl.bindProperty("thumbnail", "thumbnail", null, item, id);
139136
ctrl.bindProperty("label", "title", null, item, id);
140137
ctrl.bindProperty("description", "subtitle", null, item, id);
@@ -180,28 +177,19 @@ qx.Class.define("osparc.desktop.organizations.OrganizationsList", {
180177
const orgsModel = this.__orgsModel;
181178
orgsModel.removeAll();
182179

183-
const useCache = false;
184-
osparc.data.Resources.get("organizations", {}, useCache)
185-
.then(async respOrgs => {
186-
const orgs = respOrgs["organizations"];
187-
const promises = await orgs.map(async org => {
188-
const params = {
189-
url: {
190-
gid: org["gid"]
191-
}
192-
};
193-
const respOrgMembers = await osparc.data.Resources.get("organizationMembers", params);
194-
org["nMembers"] = Object.keys(respOrgMembers).length + this.tr(" members");
195-
return org;
196-
});
197-
const orgsList = await Promise.all(promises);
198-
orgsList.sort(this.self().sortOrganizations);
199-
orgsList.forEach(org => orgsModel.append(qx.data.marshal.Json.createModel(org)));
200-
this.setOrganizationsLoaded(true);
201-
if (orgId) {
202-
this.fireDataEvent("organizationSelected", orgId);
203-
}
204-
});
180+
const groupsStore = osparc.store.Groups.getInstance();
181+
const orgs = Object.values(groupsStore.getOrganizations());
182+
const orgsList = orgs.map(org => {
183+
const respOrgMembers = groupsStore.getOrganizationMembers(org["gid"]);
184+
org["nMembers"] = Object.keys(respOrgMembers).length + this.tr(" members");
185+
return org;
186+
});
187+
orgsList.sort(this.self().sortOrganizations);
188+
orgsList.forEach(org => orgsModel.append(org));
189+
this.setOrganizationsLoaded(true);
190+
if (orgId) {
191+
this.fireDataEvent("organizationSelected", orgId);
192+
}
205193
},
206194

207195
__openEditOrganization: function(orgId) {
@@ -222,7 +210,7 @@ qx.Class.define("osparc.desktop.organizations.OrganizationsList", {
222210
__deleteOrganization: function(orgKey) {
223211
let org = null;
224212
this.__orgsModel.forEach(orgModel => {
225-
if (orgModel.getGid() === parseInt(orgKey)) {
213+
if (orgModel.getGroupId() === parseInt(orgKey)) {
226214
org = orgModel;
227215
}
228216
});
@@ -267,13 +255,13 @@ qx.Class.define("osparc.desktop.organizations.OrganizationsList", {
267255
},
268256

269257
__createOrganization: function(win, button, orgEditor) {
270-
const orgKey = orgEditor.getGid();
258+
const groupId = orgEditor.getGroupId();
271259
const name = orgEditor.getLabel();
272260
const description = orgEditor.getDescription();
273261
const thumbnail = orgEditor.getThumbnail();
274262
const params = {
275263
url: {
276-
"gid": orgKey
264+
"gid": groupId
277265
},
278266
data: {
279267
"label": name,
@@ -305,13 +293,13 @@ qx.Class.define("osparc.desktop.organizations.OrganizationsList", {
305293
},
306294

307295
__updateOrganization: function(win, button, orgEditor) {
308-
const orgKey = orgEditor.getGid();
296+
const groupId = orgEditor.getGroupId();
309297
const name = orgEditor.getLabel();
310298
const description = orgEditor.getDescription();
311299
const thumbnail = orgEditor.getThumbnail();
312300
const params = {
313301
url: {
314-
"gid": orgKey
302+
"gid": groupId
315303
},
316304
data: {
317305
"label": name,

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,19 +114,19 @@ qx.Class.define("osparc.desktop.organizations.ServicesList", {
114114
return;
115115
}
116116

117-
const gid = orgModel.getGid();
117+
const groupId = orgModel.getGroupId();
118118
osparc.store.Services.getServicesLatest()
119119
.then(servicesLatest => {
120120
const orgServices = [];
121121
Object.keys(servicesLatest).forEach(key => {
122122
const serviceLatest = servicesLatest[key];
123-
if (gid in serviceLatest["accessRights"]) {
123+
if (groupId in serviceLatest["accessRights"]) {
124124
orgServices.push(serviceLatest);
125125
}
126126
});
127127
orgServices.forEach(orgService => {
128128
const orgServiceCopy = osparc.utils.Utils.deepCloneObject(orgService);
129-
orgServiceCopy["orgId"] = gid;
129+
orgServiceCopy["orgId"] = groupId;
130130
if (orgServiceCopy["thumbnail"] === null) {
131131
orgServiceCopy["thumbnail"] = osparc.dashboard.CardBase.PRODUCT_ICON;
132132
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,13 @@ qx.Class.define("osparc.desktop.organizations.TemplatesList", {
113113
return;
114114
}
115115

116-
const gid = orgModel.getGid();
116+
const groupId = orgModel.getGroupId();
117117
osparc.data.Resources.getInstance().getAllPages("templates")
118118
.then(templates => {
119-
const orgTemplates = templates.filter(template => gid in template["accessRights"]);
119+
const orgTemplates = templates.filter(template => groupId in template["accessRights"]);
120120
orgTemplates.forEach(orgTemplate => {
121121
const orgTemplateCopy = osparc.utils.Utils.deepCloneObject(orgTemplate);
122-
orgTemplateCopy["orgId"] = gid;
122+
orgTemplateCopy["orgId"] = groupId;
123123
templatesModel.append(qx.data.marshal.Json.createModel(orgTemplateCopy));
124124
});
125125
});

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

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,41 @@ qx.Class.define("osparc.store.Groups", {
103103
});
104104
},
105105

106+
__fetchGroupMembers: function(groupId) {
107+
const params = {
108+
url: {
109+
gid: groupId
110+
}
111+
};
112+
return osparc.data.Resources.get("organizationMembers", params)
113+
.then(orgMembers => {
114+
this.getOrganizationMembers()[groupId] = {};
115+
orgMembers.forEach(orgMember => {
116+
orgMember["label"] = osparc.utils.Utils.firstsUp(
117+
`${"first_name" in orgMember && orgMember["first_name"] != null ? orgMember["first_name"] : orgMember["login"]}`,
118+
`${orgMember["last_name"] ? orgMember["last_name"] : ""}`
119+
);
120+
this.getOrganizationMembers()[groupId][orgMember["gid"]] = orgMember;
121+
});
122+
});
123+
},
124+
106125
fetchAll: function() {
107126
this.fetchGroups()
108127
.then(orgs => {
128+
this.resetOrganizationMembers();
129+
this.resetReachableMembers();
130+
const memberPromises = Object.keys(orgs).map(orgId => this.__fetchGroupMembers(orgId));
131+
Promise.all(memberPromises)
132+
.then(() => {
133+
Object.values(this.getOrganizationMembers()).forEach(orgMembers => {
134+
Object.values(orgMembers).forEach(reachableMember => {
135+
this.getReachableMembers()[reachableMember["gid"]] = reachableMember;
136+
});
137+
});
138+
});
139+
140+
/*
109141
const orgMembersPromises = [];
110142
Object.keys(orgs).forEach(gid => {
111143
const params = {
@@ -129,6 +161,7 @@ qx.Class.define("osparc.store.Groups", {
129161
});
130162
this.setReachableMembers(reachableMembers);
131163
});
164+
*/
132165
});
133166
},
134167

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,23 +43,23 @@ qx.Class.define("osparc.ui.list.OrganizationListItem", {
4343
_getOptionsMenu: function() {
4444
let menu = null;
4545
const accessRights = this.getAccessRights();
46-
if (accessRights.getWrite()) {
46+
if (accessRights["write"]) {
4747
const optionsMenu = this.getChildControl("options");
4848
optionsMenu.show();
4949

5050
menu = new qx.ui.menu.Menu().set({
5151
position: "bottom-right"
5252
});
5353

54-
if (accessRights.getWrite()) {
54+
if (accessRights["write"]) {
5555
const editOrgButton = new qx.ui.menu.Button(this.tr("Edit details..."));
5656
editOrgButton.addListener("execute", () => {
5757
this.fireDataEvent("openEditOrganization", this.getKey());
5858
});
5959
menu.add(editOrgButton);
6060
}
6161

62-
if (accessRights.getDelete()) {
62+
if (accessRights["delete"]) {
6363
const deleteOrgButton = new qx.ui.menu.Button(this.tr("Delete"));
6464
this.bind("showDeleteButton", deleteOrgButton, "visibility", {
6565
converter: show => show ? "visible" : "excluded"

0 commit comments

Comments
 (0)