Skip to content

Commit f2a3fd7

Browse files
authored
🐛 [Frontend] Fix: Remove Task (#7451)
1 parent 3ad2eec commit f2a3fd7

File tree

5 files changed

+41
-15
lines changed

5 files changed

+41
-15
lines changed

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

+10
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,16 @@ qx.Class.define("osparc.dashboard.ResourceBrowserBase", {
500500
return taskCard;
501501
},
502502

503+
_removeTaskCard: function(task) {
504+
if (task) {
505+
const taskPlaceholders = this._resourcesContainer.getCards().filter(card => osparc.dashboard.ResourceBrowserBase.isCardTaskPlaceholder(card));
506+
const taskCard = taskPlaceholders.find(taskPlaceholder => taskPlaceholder.getTask() === task);
507+
if (taskCard) {
508+
this._resourcesContainer.removeNonResourceCard(taskCard);
509+
}
510+
}
511+
},
512+
503513
_populateCardMenu: function(card) {
504514
throw new Error("Abstract method called!");
505515
},

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

+15-10
Original file line numberDiff line numberDiff line change
@@ -121,29 +121,34 @@ qx.Class.define("osparc.dashboard.ResourceContainerManager", {
121121

122122
addNonResourceCard: function(card) {
123123
if (osparc.dashboard.CardContainer.isValidCard(card)) {
124+
let groupContainer = null;
125+
let contentContainer = null;
124126
if (this.getGroupBy()) {
125127
// it will always go to the no-group group
126-
const noGroupContainer = this.__getGroupContainer("no-group");
127-
this.__addCardToContainer(card, noGroupContainer);
128-
this.self().sortListByPriority(noGroupContainer.getContentContainer());
128+
groupContainer = this.__getGroupContainer("no-group");
129+
contentContainer = groupContainer.getContentContainer();
129130
} else {
130-
this.__addCardToContainer(card, this.__nonGroupedContainer);
131-
this.self().sortListByPriority(this.__nonGroupedContainer);
131+
groupContainer = this.__nonGroupedContainer;
132+
contentContainer = this.__nonGroupedContainer;
132133
}
134+
this.__addCardToContainer(card, groupContainer);
135+
this.self().sortListByPriority(contentContainer);
133136
} else {
134137
console.error("CardContainer only allows CardBase as its children.");
135138
}
136139
},
137140

138141
removeNonResourceCard: function(card) {
139142
if (osparc.dashboard.CardContainer.isValidCard(card)) {
143+
let contentContainer = null;
140144
if (this.getGroupBy()) {
141145
const noGroupContainer = this.__getGroupContainer("no-group");
142-
if (noGroupContainer.getContentContainer().getChildren().indexOf(card) > -1) {
143-
noGroupContainer.getContentContainer().remove(card);
144-
}
145-
} else if (this.__nonGroupedContainer.getChildren().indexOf(card) > -1) {
146-
this.__nonGroupedContainer.remove(card);
146+
contentContainer = noGroupContainer.getContentContainer();
147+
} else {
148+
contentContainer = this.__nonGroupedContainer;
149+
}
150+
if (contentContainer && contentContainer.getChildren().indexOf(card) > -1) {
151+
contentContainer.remove(card);
147152
}
148153
} else {
149154
console.error("CardContainer only allows CardBase as its children.");

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

+5-3
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,8 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
375375

376376
this.__addNewStudyButtons();
377377

378+
this.__tasksToCards();
379+
378380
const loadMoreBtn = this.__createLoadMoreButton();
379381
loadMoreBtn.set({
380382
fetching,
@@ -2132,18 +2134,18 @@ qx.Class.define("osparc.dashboard.StudyBrowser", {
21322134
const cardTitle = this.tr("Duplicating ") + studyName;
21332135
const duplicatingStudyCard = this._addTaskCard(task, cardTitle, osparc.task.Duplicate.ICON);
21342136
if (duplicatingStudyCard) {
2135-
this.__attachDuplicateEventHandler(task, duplicateTaskUI, duplicatingStudyCard);
2137+
this.__attachDuplicateEventHandler(task, duplicateTaskUI);
21362138
}
21372139
},
21382140

2139-
__attachDuplicateEventHandler: function(task, taskUI, duplicatingStudyCard) {
2141+
__attachDuplicateEventHandler: function(task, taskUI) {
21402142
const finished = (msg, msgLevel) => {
21412143
if (msg) {
21422144
osparc.FlashMessenger.logAs(msg, msgLevel);
21432145
}
21442146
osparc.store.PollTasks.getInstance().removeTask(task);
21452147
osparc.task.TasksContainer.getInstance().removeTaskUI(taskUI);
2146-
this._resourcesContainer.removeNonResourceCard(duplicatingStudyCard);
2148+
this._removeTaskCard(task);
21472149
};
21482150

21492151
task.addListener("taskAborted", () => {

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

+8
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,14 @@ qx.Class.define("osparc.store.PollTasks", {
5555
});
5656
},
5757

58+
removeTask: function(task) {
59+
const tasks = this.getTasks();
60+
const index = tasks.findIndex(t => t.getTaskId() === task.getTaskId());
61+
if (index > -1) {
62+
tasks.splice(index, 1);
63+
}
64+
},
65+
5866
__addTask: function(taskData, interval = 1000) {
5967
const tasks = this.getTasks();
6068
const index = tasks.findIndex(t => t.getTaskId() === taskData["task_id"]);

services/static-webserver/client/source/class/osparc/task/TasksButton.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,11 @@ qx.Class.define("osparc.task.TasksButton", {
5757
case "number":
5858
control = new qx.ui.basic.Label().set({
5959
backgroundColor: "background-main-1",
60+
paddingLeft: 4,
6061
font: "text-12"
6162
});
6263
control.getContentElement().setStyles({
63-
"border-radius": "4px"
64+
"border-radius": "8px"
6465
});
6566
this._add(control, {
6667
bottom: 8,
@@ -72,7 +73,7 @@ qx.Class.define("osparc.task.TasksButton", {
7273
},
7374

7475
__updateTasksButton: function() {
75-
this._createChildControlImpl("icon");
76+
this.getChildControl("icon");
7677
const number = this.getChildControl("number");
7778

7879
const tasks = osparc.task.TasksContainer.getInstance();

0 commit comments

Comments
 (0)