Skip to content

Commit eb3dd87

Browse files
Add empty state placeholder for message list
1 parent 0316183 commit eb3dd87

2 files changed

Lines changed: 51 additions & 0 deletions

File tree

scripts/messages/messageList.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,13 @@ mhelper.init();
521521

522522
row = $('<tr></tr>').addClass('msgList-body').appendTo(tbody);
523523
td = $('<td></td>').addClass('msgList-body').appendTo(row);
524+
525+
// Add empty state placeholder
526+
var emptyPlaceholder = $('<div class="msgList-empty-placeholder"></div>').appendTo(td).show();
527+
$('<div class="empty-icon"><i class="fas fa-inbox"></i></div>').appendTo(emptyPlaceholder);
528+
$('<div class="empty-message">Start or load a message capture.</div>').appendTo(emptyPlaceholder);
529+
$('<div class="empty-message">Click on any row to bring up more details.</div>').appendTo(emptyPlaceholder);
530+
524531
var vlist = $('<div></div>').css({ width: '100%', height: '100%' }).appendTo(td).virtualList({
525532
selectionType: 'single',
526533
columns: [
@@ -1049,6 +1056,7 @@ mhelper.init();
10491056
o.messageKeys = {};
10501057
o.rowIds = [];
10511058
o.ports = [];
1059+
self._toggleEmptyPlaceholder(true);
10521060
},
10531061
clearOutbound: function () {
10541062
var self = this, o = self.options, el = self.element;
@@ -1061,24 +1069,41 @@ mhelper.init();
10611069
},
10621070
addMessage: function (msg) {
10631071
var self = this, o = self.options, el = self.element;
1072+
self._toggleEmptyPlaceholder(false);
10641073
el.find('div.picVirtualList')[0].addRow(msg);
10651074
},
10661075
addApiCall: function (call) {
10671076
var self = this, o = self.options, el = self.element;
1077+
self._toggleEmptyPlaceholder(false);
10681078
el.find('div.picVirtualList')[0].addRow(call);
10691079
},
10701080
addBulkMessage: function (msg) {
10711081
var self = this, o = self.options, el = self.element;
1082+
self._toggleEmptyPlaceholder(false);
10721083
el.find('div.picVirtualList:first')[0].addRows([msg]);
10731084
},
10741085
addBulkApiCall: function (call) {
10751086
var self = this, o = self.options, el = self.element;
1087+
self._toggleEmptyPlaceholder(false);
10761088
el.find('div.picVirtualList:first')[0].addRows([call]);
10771089
},
10781090
commitBulkMessages: function () {
10791091
var self = this, o = self.options, el = self.element;
10801092
el.find('div.picVirtualList:first')[0].render(true);
10811093
},
1094+
_toggleEmptyPlaceholder: function(show) {
1095+
var self = this, o = self.options, el = self.element;
1096+
var placeholder = el.find('div.msgList-empty-placeholder');
1097+
var vlist = el.find('div.picVirtualList');
1098+
1099+
if (show) {
1100+
placeholder.show();
1101+
vlist.hide();
1102+
} else {
1103+
placeholder.hide();
1104+
vlist.show();
1105+
}
1106+
},
10821107
_scrollToRow: function (row) {
10831108
var self = this, o = self.options, el = self.element;
10841109
//var pos = row.position();

themes/messageManager.css

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,32 @@ td.msgList-body {
175175
width: 100%;
176176
vertical-align: top;
177177
overflow: hidden;
178+
position: relative;
179+
}
180+
181+
/* Empty state placeholder */
182+
div.msgList-empty-placeholder {
183+
position: absolute;
184+
top: 50%;
185+
left: 50%;
186+
transform: translate(-50%, -50%);
187+
text-align: center;
188+
color: #999;
189+
display: block;
190+
z-index: 10;
191+
pointer-events: none;
192+
}
193+
194+
div.msgList-empty-placeholder div.empty-icon {
195+
font-size: 4rem;
196+
margin-bottom: 1rem;
197+
color: #ccc;
198+
}
199+
200+
div.msgList-empty-placeholder div.empty-message {
201+
font-size: 1rem;
202+
margin: 0.5rem 0;
203+
color: #666;
178204
}
179205

180206
/* Message Row Column Widths and Alignment */

0 commit comments

Comments
 (0)