Skip to content

Commit ceff1fb

Browse files
committed
more refactoring
1 parent d8b65ff commit ceff1fb

File tree

5 files changed

+50
-68
lines changed

5 files changed

+50
-68
lines changed

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

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -314,24 +314,15 @@ qx.Class.define("osparc.dashboard.NewPlusMenu", {
314314
menuButton.setEnabled(false);
315315

316316
const key = newStudyData["expectedKey"];
317-
// Include deprecated versions, they should all be updatable to a non deprecated version
318-
const versions = osparc.store.Services.getVersions(key, false);
319-
if (versions.length && newStudyData) {
320-
// scale to latest compatible
321-
const latestVersion = versions[0];
322-
const latestCompatible = osparc.store.Services.getLatestCompatible(key, latestVersion);
323-
osparc.store.Services.getService(latestCompatible["key"], latestCompatible["version"])
324-
.then(latestMetadata => {
325-
// make sure this one is not deprecated
326-
if (osparc.service.Utils.isDeprecated(latestMetadata)) {
327-
return;
328-
}
329-
menuButton.setEnabled(true);
330-
this.__addIcon(menuButton, newStudyData, latestMetadata);
331-
this.__addFromResourceButton(menuButton, newStudyData["category"]);
332-
addListenerToButton(menuButton, latestMetadata);
333-
});
317+
const latestMetadata = osparc.store.Services.getLatest(key);
318+
// make sure this one is not deprecated
319+
if (osparc.service.Utils.isDeprecated(latestMetadata)) {
320+
return;
334321
}
322+
menuButton.setEnabled(true);
323+
this.__addIcon(menuButton, newStudyData, latestMetadata);
324+
this.__addFromResourceButton(menuButton, newStudyData["category"]);
325+
addListenerToButton(menuButton, latestMetadata);
335326
} else if ("myMostUsed" in newStudyData) {
336327
const excludeFrontend = true;
337328
const excludeDeprecated = true

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ qx.Class.define("osparc.dashboard.ResourceDetails", {
270270
hBox.add(versionsBox);
271271

272272

273-
osparc.store.Services.getVersions2(this.__resourceData["key"], this.__resourceData["version"])
273+
osparc.store.Services.getVersions(this.__resourceData["key"], this.__resourceData["version"])
274274
.then(versions => {
275275
let selectedItem = null;
276276

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

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -953,30 +953,21 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
953953
__addNewStudyFromServiceButton: function(newStudyData) {
954954
if ("expectedKey" in newStudyData) {
955955
const key = newStudyData["expectedKey"];
956-
// Include deprecated versions, they should all be updatable to a non deprecated version
957-
const versions = osparc.store.Services.getVersions(key, false);
958-
if (versions.length && newStudyData) {
959-
// scale to latest compatible
960-
const latestVersion = versions[0];
961-
const latestCompatible = osparc.store.Services.getLatestCompatible(key, latestVersion);
962-
osparc.store.Services.getService(latestCompatible["key"], latestCompatible["version"])
963-
.then(latestMetadata => {
964-
// make sure this one is not deprecated
965-
if (osparc.service.Utils.isDeprecated(latestMetadata)) {
966-
return;
967-
}
968-
const title = newStudyData.title + " " + osparc.service.Utils.extractVersionDisplay(latestMetadata);
969-
const desc = newStudyData.description;
970-
const mode = this._resourcesContainer.getMode();
971-
const newStudyFromServiceButton = (mode === "grid") ? new osparc.dashboard.GridButtonNew(title, desc) : new osparc.dashboard.ListButtonNew(title, desc);
972-
newStudyFromServiceButton.setCardKey("new-"+key);
973-
if (newStudyData["idToWidget"]) {
974-
osparc.utils.Utils.setIdToWidget(newStudyFromServiceButton, newStudyData["idToWidget"]);
975-
}
976-
newStudyFromServiceButton.addListener("tap", () => this.__newStudyFromServiceBtnClicked(latestMetadata["key"], latestMetadata["version"], newStudyData.newStudyLabel));
977-
this._resourcesContainer.addNonResourceCard(newStudyFromServiceButton);
978-
})
956+
const latestMetadata = osparc.store.Services.getLatest(key);
957+
// make sure this one is not deprecated
958+
if (osparc.service.Utils.isDeprecated(latestMetadata)) {
959+
return;
960+
}
961+
const title = newStudyData.title + " " + osparc.service.Utils.extractVersionDisplay(latestMetadata);
962+
const desc = newStudyData.description;
963+
const mode = this._resourcesContainer.getMode();
964+
const newStudyFromServiceButton = (mode === "grid") ? new osparc.dashboard.GridButtonNew(title, desc) : new osparc.dashboard.ListButtonNew(title, desc);
965+
newStudyFromServiceButton.setCardKey("new-"+key);
966+
if (newStudyData["idToWidget"]) {
967+
osparc.utils.Utils.setIdToWidget(newStudyFromServiceButton, newStudyData["idToWidget"]);
979968
}
969+
newStudyFromServiceButton.addListener("tap", () => this.__newStudyFromServiceBtnClicked(latestMetadata["key"], latestMetadata["version"], newStudyData.newStudyLabel));
970+
this._resourcesContainer.addNonResourceCard(newStudyFromServiceButton);
980971
} else if ("myMostUsed" in newStudyData) {
981972
const excludeFrontend = true;
982973
const excludeDeprecated = true

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

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,29 @@ qx.Class.define("osparc.store.Services", {
5151
});
5252
},
5353

54+
__getVersions: function(key, filterDeprecated = true) {
55+
const services = this.__servicesCached;
56+
let versions = [];
57+
if (key in services) {
58+
const serviceVersions = services[key];
59+
versions = versions.concat(Object.keys(serviceVersions));
60+
if (filterDeprecated) {
61+
versions = versions.filter(version => {
62+
if (services[key][version]["retired"]) {
63+
return false;
64+
}
65+
return true;
66+
});
67+
}
68+
versions.sort(osparc.utils.Utils.compareVersionNumbers);
69+
}
70+
return versions.reverse();
71+
},
72+
5473
getLatest: function(key) {
5574
const services = this.__servicesCached;
5675
if (key in services) {
57-
const versions = this.getVersions(key, true);
76+
const versions = this.__getVersions(key);
5877
if (versions.length) {
5978
return services[key][versions[0]];
6079
}
@@ -134,40 +153,21 @@ qx.Class.define("osparc.store.Services", {
134153
return [];
135154
},
136155

137-
getVersions2: function(key, version, filterDeprecated = true) {
156+
getVersions: function(key, version, filterDeprecated = true) {
138157
return new Promise(resolve => {
139-
if (this.__isInCache(key, version)) {
158+
const returnFromCache = () => {
140159
const versions = this.__getVersionsFromCache(key, version, filterDeprecated);
141160
resolve(versions);
161+
};
162+
if (this.__servicesCached[key][version]["history"]) {
163+
returnFromCache();
142164
} else {
143165
this.getService(key, version)
144-
.then(() => {
145-
const versions = this.__getVersionsFromCache(key, version, filterDeprecated);
146-
resolve(versions);
147-
});
166+
.then(() => returnFromCache());
148167
}
149168
});
150169
},
151170

152-
getVersions: function(key, filterDeprecated = true) {
153-
const services = this.__servicesCached;
154-
let versions = [];
155-
if (key in services) {
156-
const serviceVersions = services[key];
157-
versions = versions.concat(Object.keys(serviceVersions));
158-
if (filterDeprecated) {
159-
versions = versions.filter(version => {
160-
if (services[key][version]["retired"]) {
161-
return false;
162-
}
163-
return true;
164-
});
165-
}
166-
versions.sort(osparc.utils.Utils.compareVersionNumbers);
167-
}
168-
return versions.reverse();
169-
},
170-
171171
getServicesLatestList: function(excludeFrontend = true, excludeDeprecated = true) {
172172
return new Promise(resolve => {
173173
const servicesList = [];

services/static-webserver/client/source/class/osparc/workbench/ServiceCatalog.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ qx.Class.define("osparc.workbench.ServiceCatalog", {
247247
const latest = new qx.ui.form.ListItem(this.self().LATEST);
248248
latest.version = this.self().LATEST;
249249
selectBox.add(latest);
250-
osparc.store.Services.getVersions2(key, version)
250+
osparc.store.Services.getVersions(key, version)
251251
.then(versions => {
252252
versions.forEach(vrsn => {
253253
const listItem = osparc.service.Utils.versionToListItem(key, vrsn);

0 commit comments

Comments
 (0)