Skip to content

Commit 56be07c

Browse files
committed
minor
1 parent 49ea719 commit 56be07c

File tree

6 files changed

+57
-23
lines changed

6 files changed

+57
-23
lines changed

services/static-webserver/client/source/class/osparc/jobs/RunsTable.js

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ qx.Class.define("osparc.jobs.RunsTable", {
6969
STATE: {
7070
id: "state",
7171
column: 2,
72-
label: qx.locale.Manager.tr("State"),
72+
label: qx.locale.Manager.tr("Status"),
7373
width: 170
7474
},
7575
SUBMIT: {
@@ -144,14 +144,7 @@ qx.Class.define("osparc.jobs.RunsTable", {
144144
const rowData = this.getTableModel().getRowData(row);
145145
switch (action) {
146146
case "info": {
147-
this.fireDataEvent("runSelected", rowData["projectUuid"]);
148-
/*
149-
const subJobsTable = new osparc.jobs.SubRunsTable(rowData["projectUuid"]);
150-
osparc.ui.window.Window.popUpInWindow(subJobsTable, rowData["projectName"], 1000, 500).set({
151-
clickAwayClose: false,
152-
showClose: true
153-
});
154-
*/
147+
this.fireDataEvent("runSelected", rowData);
155148
break;
156149
}
157150
case "stop":

services/static-webserver/client/source/class/osparc/jobs/RunsWindow.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ qx.Class.define("osparc.jobs.RunsWindow", {
5555
stack.add(subRunsBrowser);
5656

5757
runsAndClusters.addListener("runSelected", e => {
58-
const projectUuid = e.getData();
59-
subRunsBrowser.setProjectUuid(projectUuid);
60-
this.getChildControl("title").setValue(this.tr("Runs asdf"));
58+
const project = e.getData();
59+
subRunsBrowser.setProject(project);
60+
this.getChildControl("title").setValue(this.tr("Runs"));
6161
stack.setSelection([subRunsBrowser]);
6262
});
6363

services/static-webserver/client/source/class/osparc/jobs/SubRunsBrowser.js

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,13 @@ qx.Class.define("osparc.jobs.SubRunsBrowser", {
3333
},
3434

3535
members: {
36+
__titleLabel: null,
37+
__subRunsTable: null,
38+
3639
__createTitleLayout: function() {
37-
const titleLayout = new qx.ui.container.Composite(new qx.ui.layout.HBox(5));
40+
const titleLayout = new qx.ui.container.Composite(new qx.ui.layout.HBox(5).set({
41+
alignY: "middle",
42+
}));
3843

3944
const prevBtn = new qx.ui.form.Button().set({
4045
toolTipText: this.tr("Return to Runs and Clusters"),
@@ -44,16 +49,25 @@ qx.Class.define("osparc.jobs.SubRunsBrowser", {
4449
prevBtn.addListener("execute", () => this.fireEvent("backToRuns"));
4550
titleLayout.add(prevBtn);
4651

52+
const titleLabel = this.__titleLabel = new qx.ui.basic.Label().set({
53+
font: "text-14",
54+
});
55+
titleLayout.add(titleLabel, {
56+
flex: 1
57+
});
58+
4759
return titleLayout;
4860
},
4961

50-
setProjectUuid: function(projectUuid) {
62+
setProject: function(project) {
5163
if (this.__subRunsTable) {
5264
this._remove(this.__subRunsTable);
5365
this.__subRunsTable = null;
5466
}
5567

56-
const subRunsTable = this.__subRunsTable = new osparc.jobs.SubRunsTable(projectUuid);
68+
this.__titleLabel.setValue(project["projectName"])
69+
70+
const subRunsTable = this.__subRunsTable = new osparc.jobs.SubRunsTable(project["projectUuid"]);
5771
this._add(subRunsTable, {
5872
flex: 1
5973
});

services/static-webserver/client/source/class/osparc/jobs/SubRunsTable.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,12 @@ qx.Class.define("osparc.jobs.SubRunsTable", {
6868
id: "solver",
6969
column: 3,
7070
label: qx.locale.Manager.tr("Solver"),
71-
width: 300
71+
width: 150
7272
},
7373
STATE: {
7474
id: "state",
7575
column: 4,
76-
label: qx.locale.Manager.tr("State"),
76+
label: qx.locale.Manager.tr("Status"),
7777
width: 100
7878
},
7979
PROGRESS: {
@@ -94,9 +94,15 @@ qx.Class.define("osparc.jobs.SubRunsTable", {
9494
label: qx.locale.Manager.tr("Ended"),
9595
width: 130
9696
},
97+
DURATION: {
98+
id: "duration",
99+
column: 8,
100+
label: qx.locale.Manager.tr("Duration"),
101+
width: 70
102+
},
97103
IMAGE: {
98104
id: "image",
99-
column: 8,
105+
column: 9,
100106
label: qx.locale.Manager.tr("Info"),
101107
width: 40
102108
},

services/static-webserver/client/source/class/osparc/jobs/SubRunsTableModel.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,28 @@ qx.Class.define("osparc.jobs.SubRunsTableModel", {
7373
const data = [];
7474
const subJobsCols = osparc.jobs.SubRunsTable.COLS;
7575
subJobs.forEach(subJob => {
76+
const nodeName = subJob.getImage()["name"].split("/").pop();
77+
const version = osparc.store.Services.getVersionDisplay(subJob.getImage()["name"], subJob.getImage()["tag"]) || subJob.getImage()["tag"];
78+
const startedAt = subJob.getStartedAt();
79+
const endedAt = subJob.getEndedAt();
80+
let duration = "-";
81+
if (startedAt && endedAt) {
82+
const diffMs = endedAt - startedAt; // Difference in milliseconds
83+
const diffSeconds = Math.floor(diffMs / 1000) % 60;
84+
const diffMinutes = Math.floor(diffMs / (1000 * 60)) % 60;
85+
const diffHours = Math.floor(diffMs / (1000 * 60 * 60));
86+
duration = `${String(diffHours).padStart(2, "0")}:${String(diffMinutes).padStart(2, "0")}:${String(diffSeconds).padStart(2, "0")}`;
87+
}
7688
data.push({
7789
[subJobsCols.PROJECT_UUID.id]: subJob.getProjectUuid(),
7890
[subJobsCols.NODE_ID.id]: subJob.getNodeId(),
7991
[subJobsCols.NODE_NAME.id]: subJob.getNodeName(),
80-
[subJobsCols.SOLVER.id]: subJob.getImage()["name"] + ":" + subJob.getImage()["tag"],
92+
[subJobsCols.SOLVER.id]: nodeName + ":" + version,
8193
[subJobsCols.STATE.id]: subJob.getState(),
8294
[subJobsCols.PROGRESS.id]: subJob.getProgress() * 100 + "%",
83-
[subJobsCols.START.id]: subJob.getStartedAt() ? osparc.utils.Utils.formatDateAndTime(subJob.getStartedAt()) : "-",
84-
[subJobsCols.END.id]: subJob.getEndedAt() ? osparc.utils.Utils.formatDateAndTime(subJob.getEndedAt()) : "-",
95+
[subJobsCols.START.id]: startedAt ? osparc.utils.Utils.formatDateAndTime(startedAt) : "-",
96+
[subJobsCols.END.id]: endedAt ? osparc.utils.Utils.formatDateAndTime(endedAt) : "-",
97+
[subJobsCols.DURATION.id]: duration,
8598
[subJobsCols.IMAGE.id]: subJob.getImage() ? osparc.utils.Utils.formatDateAndTime(subJob.getEndedAt()) : "-",
8699
});
87100
});

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ qx.Class.define("osparc.utils.Utils", {
506506
* @param value {Date Object} Date Object
507507
*/
508508
formatDate: function(value) {
509-
// create a date format like "Oct. 19, 2018 11:31 AM"
509+
// create a date format like "Oct. 19, 11:31 AM" if it's this year
510510
const dateFormat = new qx.util.format.DateFormat(
511511
qx.locale.Date.getDateFormat("medium")
512512
);
@@ -517,14 +517,22 @@ qx.Class.define("osparc.utils.Utils", {
517517
yesterday.setDate(yesterday.getDate() - 1);
518518
const tomorrow = new Date();
519519
tomorrow.setDate(tomorrow.getDate() + 1);
520+
520521
if (today.toDateString() === value.toDateString()) {
521522
dateStr = qx.locale.Manager.tr("Today");
522523
} else if (yesterday.toDateString() === value.toDateString()) {
523524
dateStr = qx.locale.Manager.tr("Yesterday");
524525
} else if (tomorrow.toDateString() === value.toDateString()) {
525526
dateStr = qx.locale.Manager.tr("Tomorrow");
526527
} else {
527-
dateStr = dateFormat.format(value);
528+
const currentYear = today.getFullYear();
529+
if (value.getFullYear() === currentYear) {
530+
// Remove the year if it's the current year
531+
const shortDateFormat = new qx.util.format.DateFormat("MMM d");
532+
dateStr = shortDateFormat.format(value);
533+
} else {
534+
dateStr = dateFormat.format(value);
535+
}
528536
}
529537
return dateStr;
530538
},

0 commit comments

Comments
 (0)