Skip to content

Commit 70b62b0

Browse files
committed
dynamic More
1 parent bb84c08 commit 70b62b0

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

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

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -194,13 +194,27 @@ qx.Class.define("osparc.dashboard.NewPlusMenu", {
194194
appearance: "menu-wider",
195195
});
196196

197-
const templatesButton = this.self().createMenuButton("@FontAwesome5Solid/copy/16", this.tr("Tutorials..."));
198-
templatesButton.addListener("execute", () => this.fireDataEvent("changeTab", "templatesTab"), this);
199-
moreMenu.add(templatesButton);
197+
const permissions = osparc.data.Permissions.getInstance();
198+
if (permissions.canDo("dashboard.templates.read")) {
199+
const templatesButton = this.self().createMenuButton("@FontAwesome5Solid/copy/16", this.tr("Tutorials..."));
200+
templatesButton.addListener("execute", () => this.fireDataEvent("changeTab", "templatesTab"), this);
201+
moreMenu.add(templatesButton);
202+
203+
const hypertoolsButton = this.self().createMenuButton("@FontAwesome5Solid/copy/16", this.tr("Hypertools..."));
204+
hypertoolsButton.addListener("execute", () => this.fireDataEvent("changeTab", "hypertoolsTab"), this);
205+
const hypertools = osparc.store.Templates.getInstance().getTemplatesByType(osparc.data.model.StudyUI.HYPERTOOL_TYPE);
206+
if (hypertools.length) {
207+
moreMenu.add(hypertoolsButton);
208+
}
209+
}
210+
211+
if (permissions.canDo("dashboard.services.read")) {
212+
const servicesButton = this.self().createMenuButton("@FontAwesome5Solid/cog/16", this.tr("Services..."));
213+
servicesButton.addListener("execute", () => this.fireDataEvent("changeTab", "servicesTab"), this);
214+
moreMenu.add(servicesButton);
215+
}
200216

201-
const servicesButton = this.self().createMenuButton("@FontAwesome5Solid/cog/16", this.tr("Services..."));
202-
servicesButton.addListener("execute", () => this.fireDataEvent("changeTab", "servicesTab"), this);
203-
moreMenu.add(servicesButton);
217+
moreMenuButton.setVisibility(moreMenu.getChildren().length ? "visible" : "excluded");
204218

205219
moreMenuButton.setMenu(moreMenu);
206220
},

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ qx.Class.define("osparc.store.Templates", {
4848
return this.__templates;
4949
},
5050

51+
getTemplatesByType: function(type) {
52+
return this.__templates.filter(t => osparc.study.Utils.extractTemplateType(t) === type);
53+
},
54+
5155
getTemplate: function(templateId) {
5256
return this.__templates.find(t => t.uuid === templateId);
5357
},

0 commit comments

Comments
 (0)