Skip to content

Commit cb9ec34

Browse files
committed
updatableNodeIds
1 parent 4d84a3a commit cb9ec34

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

services/static-webserver/client/source/class/osparc/dashboard/ResourceDetails.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,10 +174,15 @@ qx.Class.define("osparc.dashboard.ResourceDetails", {
174174
"studyId": this.__resourceData["uuid"]
175175
}
176176
};
177-
osparc.data.Resources.fetch("studies", "getOne", params)
178-
.then(updatedStudyData => {
177+
Promise.all([
178+
osparc.data.Resources.fetch("studies", "getOne", params),
179+
osparc.data.Resources.fetch("studies", "getServices", params)
180+
])
181+
.then(values => {
182+
const updatedStudyData = values[0];
183+
const servicesResp = values[1];
179184
openButton.setFetching(false);
180-
const updatableServices = osparc.metadata.ServicesInStudyUpdate.updatableNodeIds(updatedStudyData.workbench);
185+
const updatableServices = osparc.metadata.ServicesInStudyUpdate.updatableNodeIds(updatedStudyData.workbench, servicesResp["services"]);
181186
if (updatableServices.length && osparc.data.model.Study.canIWrite(updatedStudyData["accessRights"])) {
182187
this.__confirmUpdate();
183188
} else {

services/static-webserver/client/source/class/osparc/metadata/ServicesInStudyUpdate.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,12 @@ qx.Class.define("osparc.metadata.ServicesInStudyUpdate", {
2727
UPDATE_BUTTON: Object.keys(osparc.metadata.ServicesInStudy.GRID_POS).length+2
2828
},
2929

30-
updatableNodeIds: function(workbench) {
30+
updatableNodeIds: function(workbench, services) {
3131
const nodeIds = [];
3232
for (const nodeId in workbench) {
3333
const node = workbench[nodeId];
34-
if (osparc.service.Utils.isUpdatable(node)) {
34+
const serviceFound = services.find(service => service["key"] === node["key"] && service["release"]["version"] === node["version"]);
35+
if (serviceFound && serviceFound["release"] && serviceFound["release"]["compatibility"]) {
3536
nodeIds.push(nodeId);
3637
}
3738
}
@@ -167,6 +168,7 @@ qx.Class.define("osparc.metadata.ServicesInStudyUpdate", {
167168
const canIWrite = osparc.data.model.Study.canIWrite(this._studyData["accessRights"]);
168169

169170
let i = 0;
171+
const updatableServices = [];
170172
const workbench = this._studyData["workbench"];
171173
for (const nodeId in workbench) {
172174
i++;
@@ -208,8 +210,8 @@ qx.Class.define("osparc.metadata.ServicesInStudyUpdate", {
208210
});
209211

210212
if (latestCompatible && canIWrite) {
211-
const isUpdatable = osparc.service.Utils.isUpdatable(metadata);
212213
const updateButton = new osparc.ui.form.FetchButton(null, "@MaterialIcons/update/14");
214+
const isUpdatable = osparc.service.Utils.isUpdatable(metadata);
213215
updateButton.set({
214216
enabled: isUpdatable
215217
});
@@ -223,6 +225,7 @@ qx.Class.define("osparc.metadata.ServicesInStudyUpdate", {
223225
label: this.tr("Update"),
224226
center: true
225227
});
228+
updatableServices.push(nodeId);
226229
}
227230
updateButton.addListener("execute", () => this.__updateService(nodeId, node["key"], node["version"], updateButton), this);
228231
this._servicesGrid.add(updateButton, {
@@ -232,7 +235,6 @@ qx.Class.define("osparc.metadata.ServicesInStudyUpdate", {
232235
}
233236
}
234237

235-
const updatableServices = osparc.metadata.ServicesInStudyUpdate.updatableNodeIds(workbench);
236238
if (updatableServices.length && canIWrite) {
237239
const updateAllButton = this.__updateAllButton;
238240
updateAllButton.show();

0 commit comments

Comments
 (0)