diff --git a/packages/rocketchat-theme/client/imports/components/table.css b/packages/rocketchat-theme/client/imports/components/table.css
index 09389a82e333a..add356aaad008 100644
--- a/packages/rocketchat-theme/client/imports/components/table.css
+++ b/packages/rocketchat-theme/client/imports/components/table.css
@@ -12,7 +12,7 @@
}
& tbody {
- & tr {
+ & tr:not(.table-loading) {
cursor: pointer;
&:hover {
@@ -203,3 +203,11 @@
text-overflow: ellipsis;
text-transform: capitalize;
}
+
+.table-loading {
+ height: 10px;
+}
+
+.table-loading-td {
+ position: relative;
+}
diff --git a/packages/rocketchat-ui/client/components/table.js b/packages/rocketchat-ui/client/components/table.js
index 9922e7202c5e8..878e0650c443e 100644
--- a/packages/rocketchat-ui/client/components/table.js
+++ b/packages/rocketchat-ui/client/components/table.js
@@ -16,7 +16,7 @@ Template.table.onDestroyed(function() {
});
Template.table.events({
- 'click tbody tr'(e, t) { t.data.onItemClick && t.data.onItemClick(this); },
+ 'click tbody tr:not(.table-loading)'(e, t) { t.data.onItemClick && t.data.onItemClick(this); },
'scroll .table-scroll': _.debounce((e, t) => t.data.onScroll && t.data.onScroll(e.currentTarget), 300),
'click .js-sort'(e, t) { t.data.onSort(e.currentTarget.dataset.sort); }
});
diff --git a/packages/rocketchat-ui/client/views/app/directory.html b/packages/rocketchat-ui/client/views/app/directory.html
index 90b303724c263..431e408c5cc37 100644
--- a/packages/rocketchat-ui/client/views/app/directory.html
+++ b/packages/rocketchat-ui/client/views/app/directory.html
@@ -56,6 +56,11 @@
{{topic}} |
{{/each}}
+ {{#if isLoading}}
+
+ | {{> loading}} |
+
+ {{/if}}
{{/table}}
{{/if}}
@@ -92,8 +97,8 @@
{{/each}}
{{#if isLoading}}
-
- | {{> loading}} |
+
+ | {{> loading}} |
{{/if}}
diff --git a/packages/rocketchat-ui/client/views/app/directory.js b/packages/rocketchat-ui/client/views/app/directory.js
index 1f37772074901..9f65e546d25dd 100644
--- a/packages/rocketchat-ui/client/views/app/directory.js
+++ b/packages/rocketchat-ui/client/views/app/directory.js
@@ -14,7 +14,7 @@ function directorySearch(config, cb) {
if (config.type === 'channels') {
return {
name: result.name,
- users: result.usernames.length,
+ users: (result.usernames ? result.usernames.length : result.usersCount) || 0,
createdAt: timeAgo(result.ts),
lastMessage: result.lastMessage && timeAgo(result.lastMessage.ts),
description: result.description,
diff --git a/server/methods/browseChannels.js b/server/methods/browseChannels.js
index 3cb4338f49295..6f8be8edf325f 100644
--- a/server/methods/browseChannels.js
+++ b/server/methods/browseChannels.js
@@ -56,19 +56,23 @@ Meteor.methods({
return;
}
return {
- results: RocketChat.models.Rooms.findByNameAndType(regex, 'c', {
- ...options,
- sort,
- fields: {
- description: 1,
- topic: 1,
- name: 1,
- lastMessage: 1,
- ts: 1,
- archived: 1,
- usernames: 1
- }
- }).fetch(),
+ results: RocketChat.models.Rooms.findByNameAndType(
+ regex,
+ 'c',
+ {
+ ...options,
+ sort,
+ fields: {
+ description: 1,
+ topic: 1,
+ name: 1,
+ lastMessage: 1,
+ ts: 1,
+ archived: 1,
+ usernames: 1,
+ usersCount: 1
+ }
+ }).fetch(),
total: RocketChat.models.Rooms.findByNameAndType(regex, 'c').count()
};
}