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() }; }