Skip to content

Commit 86ce5f1

Browse files
authored
✨ [Frontend] Plus buttons escalates to latest compatible (#6106)
1 parent b8f5c1c commit 86ce5f1

File tree

10 files changed

+45
-36
lines changed

10 files changed

+45
-36
lines changed

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/catalog/services.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ async def _call(
5353
user_id=user_id,
5454
limit=limit,
5555
offset=offset,
56-
timeout_s=2 * RPC_REQUEST_DEFAULT_TIMEOUT_S,
56+
timeout_s=4 * RPC_REQUEST_DEFAULT_TIMEOUT_S,
5757
)
5858

5959
result = await _call(

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

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -525,22 +525,27 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
525525
});
526526
},
527527

528-
__addNewStudyFromServiceButtons: function(serviceKey, newButtonInfo) {
529-
const mode = this._resourcesContainer.getMode();
530-
// Make sure we have access to that service
531-
const versions = osparc.service.Utils.getVersions(serviceKey);
528+
__addNewStudyFromServiceButtons: function(key, newButtonInfo) {
529+
const versions = osparc.service.Utils.getVersions(key);
532530
if (versions.length && newButtonInfo) {
533-
const title = newButtonInfo.title;
534-
const desc = newButtonInfo.description;
535-
const newStudyFromServiceButton = (mode === "grid") ? new osparc.dashboard.GridButtonNew(title, desc) : new osparc.dashboard.ListButtonNew(title, desc);
536-
newStudyFromServiceButton.setCardKey("new-"+serviceKey);
537-
osparc.utils.Utils.setIdToWidget(newStudyFromServiceButton, newButtonInfo.idToWidget);
538-
newStudyFromServiceButton.addListener("execute", () => this.__newStudyFromServiceBtnClicked(newStudyFromServiceButton, serviceKey, versions[0], newButtonInfo.newStudyLabel));
539-
if (this._resourcesContainer.getMode() === "list") {
540-
const width = this._resourcesContainer.getBounds().width - 15;
541-
newStudyFromServiceButton.setWidth(width);
542-
}
543-
this._resourcesContainer.addNonResourceCard(newStudyFromServiceButton);
531+
// scale to latest compatible
532+
const latestVersion = versions[0];
533+
const latestCompatible = osparc.service.Utils.getLatestCompatible(key, latestVersion);
534+
osparc.service.Store.getService(latestCompatible["key"], latestCompatible["version"])
535+
.then(latestMetadata => {
536+
const title = newButtonInfo.title + " " + osparc.service.Utils.extractVersionDisplay(latestMetadata);
537+
const desc = newButtonInfo.description;
538+
const mode = this._resourcesContainer.getMode();
539+
const newStudyFromServiceButton = (mode === "grid") ? new osparc.dashboard.GridButtonNew(title, desc) : new osparc.dashboard.ListButtonNew(title, desc);
540+
newStudyFromServiceButton.setCardKey("new-"+key);
541+
osparc.utils.Utils.setIdToWidget(newStudyFromServiceButton, newButtonInfo.idToWidget);
542+
newStudyFromServiceButton.addListener("execute", () => this.__newStudyFromServiceBtnClicked(newStudyFromServiceButton, latestMetadata["key"], latestMetadata["version"], newButtonInfo.newStudyLabel));
543+
if (this._resourcesContainer.getMode() === "list") {
544+
const width = this._resourcesContainer.getBounds().width - 15;
545+
newStudyFromServiceButton.setWidth(width);
546+
}
547+
this._resourcesContainer.addNonResourceCard(newStudyFromServiceButton);
548+
})
544549
}
545550
},
546551

services/static-webserver/client/source/class/osparc/data/Resources.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1274,7 +1274,7 @@ qx.Class.define("osparc.data.Resources", {
12741274
params["url"] = {};
12751275
}
12761276
params["url"]["offset"] = offset;
1277-
params["url"]["limit"] = 40;
1277+
params["url"]["limit"] = 20;
12781278
const endpoint = "getPage";
12791279
const options = {
12801280
resolveWResponse: true

services/static-webserver/client/source/class/osparc/data/model/IframeHandler.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,9 @@ qx.Class.define("osparc.data.model.IframeHandler", {
151151
if (status) {
152152
statusText = status.charAt(0).toUpperCase() + status.slice(1);
153153
}
154-
return statusText + " " + node.getLabel() + " <span style='font-size: 16px;font-weight: normal;'><sub>v" + node.getVersion() + "</sub></span>";
154+
const metadata = node.getMetaData();
155+
const versionDisplay = osparc.service.Utils.extractVersionDisplay(metadata);
156+
return statusText + " " + node.getLabel() + " <span style='font-size: 16px;font-weight: normal;'><sub>v" + versionDisplay + "</sub></span>";
155157
},
156158

157159
__nodeState: function(starting=true) {

services/static-webserver/client/source/class/osparc/info/ServiceLarge.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ qx.Class.define("osparc.info.ServiceLarge", {
399399

400400
__openVersionDisplayEditor: function() {
401401
const title = this.tr("Edit Version Display");
402-
const oldVersionDisplay = this.getService()["versionDisplay"] ? this.getService()["versionDisplay"] : "";
402+
const oldVersionDisplay = osparc.service.Utils.extractVersionDisplay(this.getService());
403403
const versionDisplayEditor = new osparc.widget.Renamer(oldVersionDisplay, null, title);
404404
versionDisplayEditor.addListener("labelChanged", e => {
405405
versionDisplayEditor.close();

services/static-webserver/client/source/class/osparc/info/ServiceUtils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ qx.Class.define("osparc.info.ServiceUtils", {
6565

6666
createVersionDisplay: function(key, version) {
6767
const versionDisplay = osparc.service.Utils.getVersionDisplay(key, version);
68-
const label = new qx.ui.basic.Label(versionDisplay ? versionDisplay : version);
68+
const label = new qx.ui.basic.Label(versionDisplay);
6969
osparc.utils.Utils.setIdToWidget(label, "serviceVersion");
7070
return label;
7171
},

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ qx.Class.define("osparc.metadata.ServicesInStudy", {
4646
if (servicesInStudy.length) {
4747
const promises = [];
4848
servicesInStudy.forEach(srv => promises.push(osparc.service.Store.getService(srv.key, srv.version)));
49-
Promise.all(servicesInStudy)
49+
Promise.all(promises)
5050
.then(() => this._populateLayout());
5151
} else {
5252
this.__populateEmptyLayout();

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

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -185,11 +185,11 @@ qx.Class.define("osparc.metadata.ServicesInStudyUpdate", {
185185
if (isUpdatable) {
186186
updatableServices.push(nodeId);
187187
}
188-
const currentVersionLabel = new qx.ui.basic.Label(node["version"]).set({
188+
const metadata = osparc.service.Store.getMetadata(node["key"], node["version"]);
189+
const currentVersionLabel = new qx.ui.basic.Label(osparc.service.Utils.extractVersionDisplay(metadata)).set({
189190
font: "text-14"
190191
});
191-
const nodeMetadata = osparc.service.Store.getMetadata(node["key"], node["version"]);
192-
this.self().colorVersionLabel(currentVersionLabel, nodeMetadata);
192+
this.self().colorVersionLabel(currentVersionLabel, metadata);
193193
this._servicesGrid.add(currentVersionLabel, {
194194
row: i,
195195
column: this.self().GRID_POS.CURRENT_VERSION
@@ -202,14 +202,15 @@ qx.Class.define("osparc.metadata.ServicesInStudyUpdate", {
202202
if (latestCompatible) {
203203
// updatable
204204
osparc.service.Store.getService(latestCompatible["key"], latestCompatible["version"])
205-
.then(metadata => {
206-
const label = node["key"] === metadata["key"] ? metadata["version"] : metadata["name"] + ":" + metadata["version"];
205+
.then(latestMetadata => {
206+
let label = node["key"] === latestMetadata["key"] ? "" : latestMetadata["name"];
207+
label += ":" + osparc.service.Utils.extractVersionDisplay(latestMetadata);
207208
compatibleVersionLabel.setValue(label);
208209
})
209210
.catch(err => console.error(err));
210-
} else if (nodeMetadata) {
211+
} else if (metadata) {
211212
// up to date
212-
compatibleVersionLabel.setValue(nodeMetadata["version"]);
213+
compatibleVersionLabel.setValue(metadata["version"]);
213214
} else {
214215
compatibleVersionLabel.setValue(this.tr("Unknown"));
215216
}

services/static-webserver/client/source/class/osparc/service/Utils.js

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -177,16 +177,16 @@ qx.Class.define("osparc.service.Utils", {
177177

178178
getVersionDisplay: function(key, version) {
179179
const services = osparc.service.Store.servicesCached;
180-
if (
181-
key in services &&
182-
version in services[key] &&
183-
"versionDisplay" in services[key][version]
184-
) {
185-
return services[key][version]["versionDisplay"];
180+
if (key in services && version in services[key]) {
181+
return this.extractVersionDisplay(services[key][version]);
186182
}
187183
return null;
188184
},
189185

186+
extractVersionDisplay: function(metadata) {
187+
return metadata["versionDisplay"] ? metadata["versionDisplay"] : metadata["version"];
188+
},
189+
190190
getReleasedDate: function(key, version) {
191191
const services = osparc.service.Store.servicesCached;
192192
if (
@@ -201,8 +201,7 @@ qx.Class.define("osparc.service.Utils", {
201201

202202
versionToListItem: function(key, version) {
203203
const versionDisplay = this.getVersionDisplay(key, version);
204-
const label = versionDisplay ? versionDisplay : version;
205-
const listItem = new qx.ui.form.ListItem(label);
204+
const listItem = new qx.ui.form.ListItem(versionDisplay);
206205
listItem.version = version;
207206
return listItem;
208207
},

services/static-webserver/client/source/class/osparc/share/PublishTemplate.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ qx.Class.define("osparc.share.PublishTemplate", {
4646
__selectedCollabs: null,
4747

4848
__buildLayout: function() {
49+
// mark it us template, so that testers can share it with product everyone
50+
this.__potentialTemplateData["resourceType"] = "template";
4951
const addCollaborators = new osparc.share.AddCollaborators(this.__potentialTemplateData);
5052
addCollaborators.getChildControl("intro-text").set({
5153
value: this.tr("Make the ") + osparc.product.Utils.getTemplateAlias() + this.tr(" also accessible to:"),

0 commit comments

Comments
 (0)