Skip to content

Commit 6bcbe8c

Browse files
committed
refactor
1 parent c261002 commit 6bcbe8c

File tree

2 files changed

+48
-30
lines changed

2 files changed

+48
-30
lines changed

services/static-webserver/client/source/class/osparc/support/Conversation.js

Lines changed: 46 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -49,23 +49,34 @@ qx.Class.define("osparc.support.Conversation", {
4949
members: {
5050
__messages: null,
5151
__nextRequestParams: null,
52-
__messageScroll: null,
53-
__messagesList: null,
54-
__loadMoreMessages: null,
5552

56-
__buildLayout: function() {
57-
this.__messagesList = new qx.ui.container.Composite(new qx.ui.layout.VBox(5)).set({
58-
alignY: "middle"
59-
});
60-
const scrollView = this.__messageScroll = new qx.ui.container.Scroll();
61-
scrollView.add(this.__messagesList);
62-
this._add(scrollView, {
63-
flex: 1
64-
});
53+
_createChildControlImpl: function(id) {
54+
let control;
55+
switch (id) {
56+
case "messages-container-scroll":
57+
control = new qx.ui.container.Scroll();
58+
this._add(control, {
59+
flex: 1
60+
});
61+
break;
62+
case "messages-container":
63+
control = new qx.ui.container.Composite(new qx.ui.layout.VBox(5)).set({
64+
alignY: "middle"
65+
});
66+
this.getChildControl("messages-container-scroll").add(control);
67+
break;
68+
case "load-more-button":
69+
control = new osparc.ui.form.FetchButton(this.tr("Load more messages..."));
70+
control.addListener("execute", () => this.__reloadMessages(false));
71+
this._add(control);
72+
break;
73+
}
74+
return control || this.base(arguments, id);
75+
},
6576

66-
this.__loadMoreMessages = new osparc.ui.form.FetchButton(this.tr("Load more messages..."));
67-
this.__loadMoreMessages.addListener("execute", () => this.__reloadMessages(false));
68-
this._add(this.__loadMoreMessages);
77+
__buildLayout: function() {
78+
this.getChildControl("messages-container");
79+
this.getChildControl("load-more-button");
6980

7081
const addMessages = new osparc.conversation.AddMessage().set({
7182
padding: 10,
@@ -108,31 +119,33 @@ qx.Class.define("osparc.support.Conversation", {
108119
},
109120

110121
__reloadMessages: function(removeMessages = true) {
122+
const messagesContainer = this.getChildControl("messages-container");
123+
const loadMoreMessages = this.getChildControl("load-more-button");
111124
if (this.getConversationId() === null) {
112-
this.__messagesList.hide();
113-
this.__loadMoreMessages.hide();
125+
messagesContainer.hide();
126+
loadMoreMessages.hide();
114127
return;
115128
}
116129

117-
this.__messagesList.show();
118-
this.__loadMoreMessages.show();
119-
this.__loadMoreMessages.setFetching(true);
130+
messagesContainer.show();
131+
loadMoreMessages.show();
132+
loadMoreMessages.setFetching(true);
120133

121134
if (removeMessages) {
122135
this.__messages = [];
123-
this.__messagesList.removeAll();
136+
messagesContainer.removeAll();
124137
}
125138

126139
this.__getNextRequest()
127140
.then(resp => {
128141
const messages = resp["data"];
129142
messages.forEach(message => this.addMessage(message));
130143
this.__nextRequestParams = resp["_links"]["next"];
131-
if (this.__nextRequestParams === null && this.__loadMoreMessages) {
132-
this.__loadMoreMessages.exclude();
144+
if (this.__nextRequestParams === null && loadMoreMessages) {
145+
loadMoreMessages.exclude();
133146
}
134147
})
135-
.finally(() => this.__loadMoreMessages.setFetching(false));
148+
.finally(() => loadMoreMessages.setFetching(false));
136149
},
137150

138151
addMessage: function(message) {
@@ -166,13 +179,15 @@ qx.Class.define("osparc.support.Conversation", {
166179
}
167180
if (control) {
168181
// insert into the UI at the same position
169-
this.__messagesList.addAt(control, insertAt);
182+
const messagesContainer = this.getChildControl("messages-container");
183+
messagesContainer.addAt(control, insertAt);
170184
}
171185

172186
// scroll to bottom
173187
// add timeout to ensure the scroll happens after the UI is updated
174188
setTimeout(() => {
175-
this.__messageScroll.scrollToY(this.__messageScroll.getChildControl("pane").getScrollMaxY());
189+
const messagesScroll = this.getChildControl("messages-container-scroll");
190+
messagesScroll.scrollToY(messagesScroll.getChildControl("pane").getScrollMaxY());
176191
}, 50);
177192
},
178193

@@ -185,12 +200,13 @@ qx.Class.define("osparc.support.Conversation", {
185200
this.__messages.splice(messageIndex, 1);
186201

187202
// Remove the UI element from the messages list
188-
const children = this.__messagesList.getChildren();
203+
const messagesContainer = this.getChildControl("messages-container");
204+
const children = messagesContainer.getChildren();
189205
const controlIndex = children.findIndex(
190206
ctrl => ("getMessage" in ctrl && ctrl.getMessage()["messageId"] === message["messageId"])
191207
);
192208
if (controlIndex > -1) {
193-
this.__messagesList.remove(children[controlIndex]);
209+
messagesContainer.remove(children[controlIndex]);
194210
}
195211
},
196212

@@ -203,7 +219,8 @@ qx.Class.define("osparc.support.Conversation", {
203219
this.__messages[messageIndex] = message;
204220

205221
// Update the UI element from the messages list
206-
this.__messagesList.getChildren().forEach(control => {
222+
const messagesContainer = this.getChildControl("messages-container");
223+
messagesContainer.getChildren().forEach(control => {
207224
if ("getMessage" in control && control.getMessage()["messageId"] === message["messageId"]) {
208225
control.setMessage(message);
209226
return;

services/static-webserver/client/source/class/osparc/support/SupportCenter.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ qx.Class.define("osparc.support.SupportCenter", {
119119
center: true,
120120
alignX: "center",
121121
});
122-
control.addListener("execute", () => this.__createConversation(), this);
122+
// control.addListener("execute", () => this.__createConversation(), this);
123+
control.addListener("execute", () => this.__openConversation(null), this);
123124
this.getChildControl("conversations-layout").add(control);
124125
break;
125126
case "conversation-page":

0 commit comments

Comments
 (0)