Skip to content

Feature/Flash Messenger #286

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 199 commits into from
Oct 26, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
199 commits
Select commit Hold shift + click to select a range
9f8ffd4
initial
oetiker Jun 13, 2018
bc72477
first complete schema
oetiker Jun 13, 2018
05a998c
renamed
oetiker Jun 13, 2018
013f76a
renamed
oetiker Jun 13, 2018
1c9800f
Initial import of comp. services
Jun 13, 2018
7e2a2e3
Adapt sidecar to dockerfile/compose layout
Jun 13, 2018
ca2a7ad
fix requirements
Jun 13, 2018
52bb450
Merge branch 'master' into json-schema
oetiker Jun 13, 2018
5fab282
added key property
oetiker Jun 13, 2018
b8f4bb7
Add server parts needed for comp. backend
Jun 13, 2018
ca84ccf
added initial Avj wrapper
oetiker Jun 13, 2018
76ab87f
rename source --> src
Jun 13, 2018
e84ff9b
added a little validation test to the main app ...
oetiker Jun 13, 2018
ba51898
fix publish/subscribe initialization and add up to date mockup data
Jun 14, 2018
80d8b4a
change default indentation for python in vscode-tmplate
Jun 14, 2018
f3ec478
change build context for services such that we can copy files from th…
Jun 14, 2018
2edb5fb
minor cleanup
Jun 14, 2018
2043c59
change build context for server
Jun 14, 2018
a76d220
rename debug to devel
Jun 14, 2018
8034118
Adds code coverage output
Jun 14, 2018
8c46412
Add local minio for devel and template with credentials
Jun 14, 2018
c6fee87
update readme
Jun 14, 2018
01b8569
WIP: improving first web/client qx docker. Minor cleanup in compose f…
Jun 14, 2018
e9131db
fix JS syntax
oetiker Jun 15, 2018
e4facd8
Merge branch 'master' into comp_backend
Jun 15, 2018
2bc95bb
Improved server/client qx compiler container. - non-root user - dev/p…
Jun 15, 2018
8aaa103
Renamed web/client dockerfile. Emphasizes that it is only to build th…
Jun 15, 2018
703ad74
Adds log messages while installing qx contribs
Jun 15, 2018
92c0d73
Renamed client dockerfile since it is multitarget
Jun 15, 2018
e836528
Renamed webserver dockerfile since it targets ci
Jun 15, 2018
95c8a0a
docker ci version of webserver builds
Jun 15, 2018
dafd2ea
WIP: Implementing webserver devel docker
Jun 15, 2018
bbe1287
Deploying Web-server in devel mode.
Jun 18, 2018
8590498
Deploying web server:
Jun 18, 2018
38534f9
Fixed mounted volumes
Jun 18, 2018
cf21f31
Removed tmp scripts and added mask to ignore them
Jun 18, 2018
b8c833f
Merged git://github.com/mguidon/osparc-simcore.git comp_backend branc…
Jun 18, 2018
b229dac
Fixes bind mount from source-ouput into server's client folder
Jun 18, 2018
8c60310
Merge branch 'master' into comp_backend
pcrespov Jun 19, 2018
9743a72
fix merge conflict
Jun 19, 2018
4d73bbb
Merge branch 'pcrespov-mguidon-comp_backend' into comp_backend
Jun 19, 2018
596ab2d
Mising file save
Jun 19, 2018
a581a53
Merge branch 'master' into comp_backend
pcrespov Jun 19, 2018
0014d1b
TODO for logger
Jun 20, 2018
4ca7852
Merge branch 'comp_backend' of github.com:mguidon/osparc-simcore into…
Jun 20, 2018
7154ee0
Merge branch 'master' into json-schema
oetiker Jun 20, 2018
c0c7180
Add repo query
Jun 20, 2018
0da30c6
filter for comp in image name
Jun 20, 2018
e236426
Merge branch 'master' into registry_api
Jun 20, 2018
f5baa3e
fix too-many-nested-blocks
Jun 20, 2018
b97373b
provide a map between input/output keys and actual files
oetiker Jun 20, 2018
bb8be98
Merge branch 'master' into json-schema
oetiker Jun 20, 2018
f489eb3
fix mapping syntax
oetiker Jun 20, 2018
4bff0a3
fix file2key map logic
oetiker Jun 20, 2018
e218c56
minor
Jun 20, 2018
9ec61e8
Merge branch 'mguidon-registry_api'
Jun 20, 2018
c2851b3
minor
Jun 20, 2018
e11a2fc
switch to pattern properties and add displayOrder key for ordering
oetiker Jun 20, 2018
1db7403
"desc" -> "description"
Jun 20, 2018
05147dd
Create metadata dynamically
Jun 20, 2018
bc1cd61
minor fix
Jun 20, 2018
b9cb303
added integer type
oetiker Jun 21, 2018
69fd030
Merge branch 'mguidon-registry_api'
Jun 21, 2018
8ece964
Merge remote-tracking branch 'upstream/master'
Jun 22, 2018
b0d711e
Merge remote-tracking branch 'upstream/master'
Jun 22, 2018
56daabd
Merge remote-tracking branch 'upstream/master'
Jun 25, 2018
371a24f
Merge remote-tracking branch 'upstream/master'
Jun 25, 2018
98f1fc0
Merge remote-tracking branch 'upstream/master'
Jun 25, 2018
9b4c875
Merge remote-tracking branch 'upstream/master'
Jun 26, 2018
23ef557
Merge branch 'master' into json-schema
oetiker Jun 26, 2018
b470a0e
Merge remote-tracking branch 'upstream/master'
Jun 26, 2018
bc19e81
Merge remote-tracking branch 'upstream/master'
Jun 26, 2018
197d142
Merge remote-tracking branch 'upstream/master'
Jun 27, 2018
ef98049
Merge remote-tracking branch 'upstream/master'
Jun 27, 2018
aa217d0
Merge remote-tracking branch 'upstream/master'
Jun 29, 2018
59a04fb
Merge branch 'master' of github.com:ITISFoundation/osparc-simcore
Jun 29, 2018
c0b99f9
add pattern check to the displayOrder property
oetiker Jul 4, 2018
44f097a
Merge branch 'master' into json-schema
oetiker Jul 4, 2018
3a75c75
Update Application.js
oetiker Jul 4, 2018
aaa831e
Merge remote-tracking branch 'upstream/master'
Jul 4, 2018
145dd64
add content-type definition
oetiker Jul 4, 2018
fbf945d
Update node-meta-v0.0.1.json
oetiker Jul 4, 2018
c5a4ee9
Update node-meta-v0.0.1.json
oetiker Jul 4, 2018
5fa7ad1
Merge branch 'master' into json-schema
oetiker Jul 4, 2018
d4d3fca
Update node-meta-v0.0.1.json
oetiker Jul 4, 2018
9e87235
Update node-meta-v0.0.1.json
oetiker Jul 4, 2018
960a854
Update node-meta-v0.0.1.json
oetiker Jul 4, 2018
19027eb
Update node-meta-v0.0.1.json
oetiker Jul 4, 2018
3c2a75e
allow for longer keys
oetiker Jul 4, 2018
34f5781
Merge remote-tracking branch 'upstream/master'
Jul 4, 2018
da9f8c5
updated fake data
oetiker Jul 4, 2018
5160f12
Merge branch 'master' into settings-updates
oetiker Jul 4, 2018
e2b6211
Merge remote-tracking branch 'upstream/master'
Jul 4, 2018
1583f03
added new project schema
oetiker Jul 4, 2018
67c8609
switch to explicit types
oetiker Jul 4, 2018
48c0697
Merge branch 'master' into settings-updates
oetiker Jul 4, 2018
4786ae0
update samples
oetiker Jul 4, 2018
1b7a3fb
updated examples
oetiker Jul 4, 2018
8e35bc1
Merge remote-tracking branch 'upstream/master'
Jul 9, 2018
9181e7d
Nodeports allow update to s3 (#150)
sanderegg Jul 4, 2018
64d2a8a
Celery stability (#158)
mguidon Jul 5, 2018
ad93fb9
Feature/fakeserver for authentication (#106)
pcrespov Jul 6, 2018
c8bea96
Socket io (#159)
mguidon Jul 6, 2018
e88e3a8
Fixes typos in client after bad merge (#160)
pcrespov Jul 6, 2018
ec9418e
#5 kember postprocessing (#157)
sanderegg Jul 6, 2018
9234201
Login hotfix (#161)
mguidon Jul 6, 2018
8479659
updated fake data
oetiker Jul 4, 2018
e551c5e
update samples
oetiker Jul 4, 2018
95d796b
updated examples
oetiker Jul 4, 2018
b077469
Merge branch 'master' into settings-updates
oetiker Jul 10, 2018
8f5a9f6
Merge branch 'master' into json-schema
oetiker Jul 10, 2018
b90e304
don't need Fake.js anymore ...
oetiker Jul 10, 2018
c01aa84
remove inband signalling
oetiker Jul 10, 2018
366a1f0
Merge branch 'json-schema' into settings-updates
oetiker Jul 10, 2018
a32c604
cleanup formats and sync fake data
oetiker Jul 10, 2018
55551a9
allow comalCase properties
oetiker Jul 10, 2018
2a56a1e
fix syntax
oetiker Jul 10, 2018
5c1e487
make os check more portable
oetiker Jul 10, 2018
8424c89
move schema check so that it actually gets executed
oetiker Jul 10, 2018
cd15a2d
fix path
oetiker Jul 10, 2018
0fafacf
fiz schema and sample data to actually comply
oetiker Jul 10, 2018
b359359
Merge branch 'master' into settings-updates
oetiker Jul 10, 2018
9ca35a1
Merge branch 'master' into settings-updates
oetiker Jul 11, 2018
fa090dc
fix syntax so that the generator does not complain
oetiker Jul 11, 2018
23daa9f
sync
oetiker Jul 11, 2018
6b240e5
fix coding style compliance
oetiker Jul 11, 2018
d1e473c
Merge remote-tracking branch 'upstream/master'
Jul 13, 2018
b6c6976
Merge branch 'master' into settings-updates
oetiker Jul 17, 2018
3113966
Merge remote-tracking branch 'upstream/master'
Jul 17, 2018
2d16d82
merged
oetiker Jul 17, 2018
89e3a85
I think we can use the content element directly
oetiker Jul 17, 2018
68b33a6
create a new project editor for each project
oetiker Jul 17, 2018
5127674
we get to know the project at creation time
oetiker Jul 17, 2018
3e256de
we get to know the project at creation time
oetiker Jul 17, 2018
717d2ac
switch to new 'compliant' data model
oetiker Jul 17, 2018
7f185e4
lets call it 'projectId'
oetiker Jul 17, 2018
146e14b
ignore backup files
oetiker Jul 17, 2018
790da50
moved functionality to nodeBase
oetiker Jul 18, 2018
5a38ca1
lets call it metaData
oetiker Jul 18, 2018
1b67fa6
improve consistancy
oetiker Jul 18, 2018
47850d8
WIP sync to for rebase
oetiker Jul 18, 2018
5e2b367
SettingsEditionDone -> SettingsEdited
oetiker Jul 18, 2018
6b2e817
Merge remote-tracking branch 'upstream/master'
Jul 18, 2018
42ce306
Merge branch 'master' of github.com:ITISFoundation/osparc-simcore
Aug 6, 2018
1d5f0b4
sync updates
oetiker Aug 7, 2018
e434ae4
Merge branch 'master' into settings-updates
oetiker Aug 7, 2018
c3cde78
Merge branch 'master' of github.com:ITISFoundation/osparc-simcore
Aug 7, 2018
5605cb1
Merge branch 'master' into settings-updates
oetiker Aug 7, 2018
b6300f4
sorting input and outputs
oetiker Aug 7, 2018
d098bd3
make settings view shows again with new data model
oetiker Aug 7, 2018
4c77aa1
Merge branch 'master' into settings-updates
oetiker Aug 7, 2018
2599eaf
Load Data from project file into nodes
oetiker Aug 7, 2018
f53184c
fix linting problems
oetiker Aug 7, 2018
76333ef
Merge branch 'master' of github.com:ITISFoundation/osparc-simcore
Aug 8, 2018
81041b8
Merge branch 'master' into settings-updates
oetiker Aug 9, 2018
fd7f6eb
get settings view to work
oetiker Aug 9, 2018
fab8c7c
Merge remote-tracking branch 'upstream/master'
Aug 15, 2018
099c451
Merge branch 'settings-updates' of https://github.com/oetiker/osparc-…
Aug 15, 2018
9bcbfb4
Merge remote-tracking branch 'upstream/master'
Aug 21, 2018
8bfbaf8
Merge remote-tracking branch 'upstream/master'
Aug 23, 2018
a14f91c
Merge remote-tracking branch 'upstream/master'
Sep 4, 2018
72c7c7b
Merge remote-tracking branch 'upstream/master'
Sep 14, 2018
44f7372
Merge remote-tracking branch 'upstream/master'
Sep 17, 2018
c6d351c
Merge remote-tracking branch 'upstream/master'
Sep 18, 2018
1edc2ea
Merge remote-tracking branch 'upstream/master'
Sep 18, 2018
2e06b65
Merge remote-tracking branch 'upstream/master'
Sep 18, 2018
8b59e86
Merge remote-tracking branch 'upstream/master'
Oct 12, 2018
3c985a7
Merge remote-tracking branch 'upstream/master'
Oct 17, 2018
45dfea4
Merge remote-tracking branch 'upstream/master'
Oct 18, 2018
f1c4448
Merge remote-tracking branch 'upstream/master'
Oct 19, 2018
52cb648
Merge remote-tracking branch 'upstream/master'
Oct 22, 2018
8b2218f
Merge branch 'master' of github.com:ITISFoundation/osparc-simcore
Oct 24, 2018
f9505f1
dy-modeling client follows similar dockerfile to the one used in the …
Oct 24, 2018
74150ba
dependencies label added to dy-modeling image
Oct 24, 2018
79bc052
dy-modeling key and tag fixed
Oct 24, 2018
a5bc95c
dy-modeling client fixed
Oct 24, 2018
4c1df41
check "io.simcore.dependencies" label for getting dependencies
Oct 24, 2018
18cb605
Merge branch 'master' into feature/modeler-back
odeimaiz Oct 24, 2018
fdfae9d
moved to get_depedencies function
Oct 24, 2018
3101ee7
removed unsed code
Oct 24, 2018
46515b0
io.simcore.dependencies -> simcore.service.dependencies
Oct 24, 2018
e5f5628
webserver needs to know about the OSPARC_PUBLIC_URL
Oct 24, 2018
3bcc7d2
webserver needs to know about the OSPARC_PUBLIC_URL
Oct 24, 2018
c87d419
Use specific tag number intead of "latest" for dependencies
Oct 25, 2018
d85b1fb
increase PLATFORM_VERSION number
Oct 25, 2018
952bec3
Modeler has one input and one output
Oct 25, 2018
8e81704
Increased Modeler's version number
Oct 25, 2018
7579059
Merge remote-tracking branch 'upstream/master'
Oct 25, 2018
04c3c5b
fixed the hostname to xrpc-worker
Oct 25, 2018
e957a23
Show fancy-dummy screenshots in right-middle view
Oct 25, 2018
2b6b30a
Merge branch 'feature/modeler-back' into feature/fancy_extra_view
Oct 25, 2018
7136631
increase platform version number
Oct 25, 2018
ea45f69
minor
Oct 26, 2018
bac5dd2
Getting rid of hardcoded sizes. Side panel divided in three equal parts
Oct 26, 2018
882ed0b
Merge remote-tracking branch 'upstream/master'
Oct 26, 2018
d4dfae7
Merge branch 'master' into feature/fancy_extra_view
Oct 26, 2018
952058a
Flash messenger working
Oct 26, 2018
9519433
Fixes and fixmes
Oct 26, 2018
7162706
Director doesn't need to know about the OSPARC_PUBLIC_URL
Oct 26, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ test:
make run_test
make after_test

PLATFORM_VERSION=3.16
PLATFORM_VERSION=3.17

push_platform_images:
${DOCKER} login masu.speag.com
Expand Down
1 change: 0 additions & 1 deletion services/docker-compose.deploy.devel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ services:
- node.platform.os == linux
- node.role == manager
environment:
- OSPARC_PUBLIC_URL=http://osparc01.itis.ethz.ch:9081
- POSTGRES_ENDPOINT=postgres
- POSTGRES_USER=simcore
- POSTGRES_PASSWORD=simcore
Expand Down
1 change: 0 additions & 1 deletion services/docker-compose.deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ services:
- node.platform.os == linux
- node.role == manager
environment:
- OSPARC_PUBLIC_URL=http://osparc01.itis.ethz.ch:9081
- POSTGRES_ENDPOINT=postgres
- POSTGRES_USER=simcore
- POSTGRES_PASSWORD=simcore
Expand Down
5 changes: 3 additions & 2 deletions services/web/client/source/class/qxapp/auth/Manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ qx.Class.define("qxapp.auth.Manager", {
// TODO: validate data against specs???
// TODO: activate tokens!?
this.__loginUser(email, data.token || "fake token");
successCbk.call(context, data.message);
successCbk.call(context, data);
}, this);

this.__bindDefaultFailCallback(request, failCbk, context);
Expand Down Expand Up @@ -110,6 +110,7 @@ qx.Class.define("qxapp.auth.Manager", {
} = e.getTarget().getResponse();

// TODO: validate data against specs???
// FIXME: Data is an object
successCbk.call(context, data);
}, this);
},
Expand All @@ -126,7 +127,7 @@ qx.Class.define("qxapp.auth.Manager", {
msg = msg + error.errors[i].message + " ";
}
}

// FIXME: Data is an object
failCbk.call(context, msg);
}, this);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,8 @@ qx.Class.define("qxapp.auth.ui.RegistrationPage", {
let manager = qxapp.auth.Manager.getInstance();

let successFun = function(log) {
// TODO: add flash
this.fireDataEvent("done", log.message);
qxapp.component.widget.FlashMessenger.getInstance().log(log);
};

let failFun = function(msg) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
qx.Class.define("qxapp.component.widget.FlashMessenger", {
extend: qx.ui.window.Window,

type: "singleton",

construct: function() {
this.base();

this.set({
appearance: "window-small-cap",
showMinimize: false,
showMaximize: false,
allowMaximize: false,
showStatusbar: false,
resizable: false,
contentPadding: 0,
caption: "Logger",
layout: new qx.ui.layout.VBox()
});
},

members: {
log: function(logMessage) {
const message = logMessage.message;
const level = logMessage.level; // "DEBUG", "INFO", "WARNING", "ERROR"
const logger = logMessage.logger;

let label = new qx.ui.basic.Label(logger + ": " + message).set({
allowGrowX: true,
allowGrowY: true,
alignX: "center",
textAlign: "center",
padding: 5
});
this.add(label);

switch (level) {
case "DEBUG":
label.setBackgroundColor("blue");
label.setTextColor("white");
break;
case "INFO":
label.setBackgroundColor("blue");
label.setTextColor("white");
break;
case "WARNING":
label.setBackgroundColor("yellow");
label.setTextColor("black");
break;
case "ERROR":
label.setBackgroundColor("red");
label.setTextColor("black");
break;
}

if (this.getVisibility() !== "visible") {
this.__toTopCenter();
this.open();
}

const time = 3000;
qx.event.Timer.once(e => {
this.remove(label);
if (this.getChildren().length === 0) {
this.close();
}
}, this, time);
},

__toTopCenter: function() {
const parent = this.getLayoutParent();
if (parent) {
const bounds = parent.getBounds();
if (bounds) {
const hint = this.getSizeHint();
const left = Math.round((bounds.width - hint.width) / 2);
const top = 50;
this.moveTo(left, top);
return;
}
}
this.center();
}
}
});
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ qx.Class.define("qxapp.desktop.NavigationBar", {
this.add(new qx.ui.toolbar.Separator());

let forumBtn = new qx.ui.form.Button(this.tr("Forum"));
forumBtn.addListener("execute", function() {
window.open("https://forum.zmt.swiss/");
}, this);
forumBtn.set(commonBtnSettings);
this.add(forumBtn);

Expand Down
34 changes: 34 additions & 0 deletions services/web/client/source/class/qxapp/desktop/PrjEditor.js
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,31 @@ qx.Class.define("qxapp.desktop.PrjEditor", {
this.__workbenchView.loadModel(nodeModel);
}
}

// SHow screenshots in the ExtraView
if (nodeId === "root") {
this.showScreenshotInExtraView("workbench");
} else {
let nodeModel = this.getProjectModel().getWorkbenchModel().getNodeModel(nodeId);
if (nodeModel.isContainer()) {
this.showScreenshotInExtraView("container");
} else {
let nodeKey = nodeModel.getMetaData().key;
if (nodeKey.includes("file-picker")) {
this.showScreenshotInExtraView("file-picker");
} else if (nodeKey.includes("modeler")) {
this.showScreenshotInExtraView("modeler");
} else if (nodeKey.includes("3d-viewer")) {
this.showScreenshotInExtraView("postpro");
} else if (nodeKey.includes("viewer")) {
this.showScreenshotInExtraView("notebook");
} else if (nodeKey.includes("jupyter")) {
this.showScreenshotInExtraView("notebook");
} else {
this.showScreenshotInExtraView("form");
}
}
}
},

__workbenchModelChanged: function() {
Expand All @@ -199,6 +224,15 @@ qx.Class.define("qxapp.desktop.PrjEditor", {
this.__sidePanel.setMidView(widget);
},

showScreenshotInExtraView: function(name) {
let imageWidget = new qx.ui.basic.Image("qxapp/screenshot_"+name+".png").set({
scale: true,
allowShrinkX: true,
allowShrinkY: true
});
this.__sidePanel.setMidView(imageWidget);
},

getLogger: function() {
return this.__loggerView;
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,15 @@ qx.Class.define("qxapp.desktop.sidePanel.SidePanel", {
let bottomView = new qx.ui.core.Widget();

this._add(topView, {
height: "33%",
flex: 1
});
this._add(midView, {
height: "33%",
flex: 1
});
this._add(bottomView, {
height: "33%",
flex: 1
});
},
Expand Down Expand Up @@ -60,7 +63,8 @@ qx.Class.define("qxapp.desktop.sidePanel.SidePanel", {
if (this._indexOf(newWidget) !== indexOf) {
this._removeAt(indexOf);
this._addAt(newWidget, indexOf, {
height: "33%"
height: "33%",
flex: 1
});
}
}
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.