diff --git a/packages/rocketchat-i18n/i18n/en.i18n.json b/packages/rocketchat-i18n/i18n/en.i18n.json index 3e7a6a21d211e..e85d3544ed445 100644 --- a/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/packages/rocketchat-i18n/i18n/en.i18n.json @@ -189,6 +189,7 @@ "All_users_in_the_channel_can_write_new_messages": "All users in the channel can write new messages", "Allow_Invalid_SelfSigned_Certs": "Allow Invalid Self-Signed Certs", "Allow_Invalid_SelfSigned_Certs_Description": "Allow invalid and self-signed SSL certificate's for link validation and previews.", + "Alphabetical": "Alphabetical", "Allow_switching_departments": "Allow Visitor to Switch Departments", "Always_open_in_new_window": "Always Open in New Window", "Analytics_features_enabled": "Features Enabled", @@ -701,6 +702,7 @@ "Facebook_Page": "Facebook Page", "False": "False", "Favorite_Rooms": "Enable Favorite Rooms", + "Favorite": "Favorite", "Favorites": "Favorites", "Features_Enabled": "Features Enabled", "Field": "Field", @@ -799,6 +801,7 @@ "GoogleVision_Type_Properties": "Properties (Color) Detection", "GoogleVision_Type_SafeSearch": "SafeSearch Detection", "GoogleVision_Type_Similar": "Search Similar Images", + "Group_by_Type": "Group by Type", "Group_mentions_only": "Group mentions only", "Guest_Pool": "Guest Pool", "Hash": "Hash", @@ -1222,6 +1225,7 @@ "Mentions": "Mentions", "Mentions_default": "Mentions (default)", "Mentions_only": "Mentions only", + "Merge_Channels": "Merge Channels", "Message": "Message", "Message_AllowBadWordsFilter": "Allow Message bad words filtering", "Message_AllowDeleting": "Allow Message Deleting", @@ -1702,6 +1706,7 @@ "Should_exists_a_user_with_this_username": "The user must already exist.", "Show_agent_email": "Show agent email", "Show_all": "Show All", + "Show_Avatars": "Show Avatars", "Show_counter": "Show counter", "Show_room_counter_on_sidebar": "Show room counter on sidebar", "Show_more": "Show more", @@ -1764,7 +1769,6 @@ "Sort_by_activity": "Sort by Activity", "Sound": "Sound", "Sound_File_mp3": "Sound File (mp3)", - "Split_by_categories": "Split by categories", "SSL": "SSL", "Star_Message": "Star Message", "Starred_Messages": "Starred Messages", @@ -1955,6 +1959,7 @@ "Unmute_user": "Unmute user", "Unnamed": "Unnamed", "Unpin_Message": "Unpin Message", + "Unread" : "Unread", "Unread_Count": "Unread Count", "Unread_Count_DM": "Unread Count for Direct Messages", "Unread_Messages": "Unread Messages", diff --git a/packages/rocketchat-lib/lib/roomTypes/channels.js b/packages/rocketchat-lib/lib/roomTypes/channels.js deleted file mode 100644 index 4d0fbcc1a837c..0000000000000 --- a/packages/rocketchat-lib/lib/roomTypes/channels.js +++ /dev/null @@ -1,18 +0,0 @@ -import { RoomTypeConfig } from '../RoomTypeConfig'; - -export class ChannelsRoomType extends RoomTypeConfig { - constructor() { - super({ - identifier: 'channels', - order: 30, - label: 'Channels' - }); - } - - condition() { - const user = Meteor.user(); - const roomsListExhibitionMode = RocketChat.getUserPreference(user, 'roomsListExhibitionMode'); - const mergeChannels = RocketChat.getUserPreference(user, 'mergeChannels'); - return ['unread', 'category'].includes(roomsListExhibitionMode) && mergeChannels; - } -} diff --git a/packages/rocketchat-lib/lib/roomTypes/conversation.js b/packages/rocketchat-lib/lib/roomTypes/conversation.js index 009dbf59ccbf5..6f7caa07bdc5d 100644 --- a/packages/rocketchat-lib/lib/roomTypes/conversation.js +++ b/packages/rocketchat-lib/lib/roomTypes/conversation.js @@ -3,7 +3,7 @@ import { RoomTypeConfig } from '../RoomTypeConfig'; export class ConversationRoomType extends RoomTypeConfig { constructor() { super({ - identifier: 'activity', + identifier: 'merged', order: 30, label: 'Conversations' }); @@ -11,6 +11,6 @@ export class ConversationRoomType extends RoomTypeConfig { condition() { const user = Meteor.user(); - return RocketChat.getUserPreference(user, 'roomsListExhibitionMode') === 'activity'; + return RocketChat.getUserPreference(user, 'mergeChannels'); } } diff --git a/packages/rocketchat-lib/lib/roomTypes/direct.js b/packages/rocketchat-lib/lib/roomTypes/direct.js index 3a8c6c8455f4c..44078e0e9190e 100644 --- a/packages/rocketchat-lib/lib/roomTypes/direct.js +++ b/packages/rocketchat-lib/lib/roomTypes/direct.js @@ -62,8 +62,8 @@ export class DirectMessageRoomType extends RoomTypeConfig { condition() { const user = Meteor.user(); - const roomsListExhibitionMode = RocketChat.getUserPreference(user, 'roomsListExhibitionMode'); - return !roomsListExhibitionMode || ['unread', 'category'].includes(roomsListExhibitionMode) && RocketChat.authz.hasAtLeastOnePermission(['view-d-room', 'view-joined-room']); + const mergeChannels = RocketChat.getUserPreference(user, 'mergeChannels'); + return !mergeChannels && RocketChat.authz.hasAtLeastOnePermission(['view-d-room', 'view-joined-room']); } getUserStatus(roomId) { diff --git a/packages/rocketchat-lib/lib/roomTypes/favorite.js b/packages/rocketchat-lib/lib/roomTypes/favorite.js index 55e061547d758..2b927c0767ad5 100644 --- a/packages/rocketchat-lib/lib/roomTypes/favorite.js +++ b/packages/rocketchat-lib/lib/roomTypes/favorite.js @@ -10,4 +10,8 @@ export class FavoriteRoomType extends RoomTypeConfig { label: 'Favorites' }); } + condition() { + const user = Meteor.user(); + return RocketChat.settings.get('Favorite_Rooms') && RocketChat.getUserPreference(user, 'sidebarShowFavorites'); + } } diff --git a/packages/rocketchat-lib/lib/roomTypes/index.js b/packages/rocketchat-lib/lib/roomTypes/index.js index 739421c89b38b..4c0fd94d732d1 100644 --- a/packages/rocketchat-lib/lib/roomTypes/index.js +++ b/packages/rocketchat-lib/lib/roomTypes/index.js @@ -1,4 +1,3 @@ -import { ChannelsRoomType } from './channels'; import { ConversationRoomType } from './conversation'; import { DirectMessageRoomType } from './direct'; import { FavoriteRoomType } from './favorite'; @@ -7,7 +6,6 @@ import { PublicRoomType } from './public'; import { UnreadRoomType } from './unread'; export { - ChannelsRoomType, ConversationRoomType, DirectMessageRoomType, FavoriteRoomType, diff --git a/packages/rocketchat-lib/lib/roomTypes/private.js b/packages/rocketchat-lib/lib/roomTypes/private.js index c0a3fdbfe2f48..5522d95a8110a 100644 --- a/packages/rocketchat-lib/lib/roomTypes/private.js +++ b/packages/rocketchat-lib/lib/roomTypes/private.js @@ -44,9 +44,8 @@ export class PrivateRoomType extends RoomTypeConfig { condition() { const user = Meteor.user(); - const roomsListExhibitionMode = RocketChat.getUserPreference(user, 'roomsListExhibitionMode'); const mergeChannels = RocketChat.getUserPreference(user, 'mergeChannels'); - return !roomsListExhibitionMode || ['unread', 'category'].includes(roomsListExhibitionMode) && !mergeChannels && RocketChat.authz.hasAllPermission('view-p-room'); + return !mergeChannels && RocketChat.authz.hasAllPermission('view-p-room'); } isGroupChat() { diff --git a/packages/rocketchat-lib/lib/roomTypes/public.js b/packages/rocketchat-lib/lib/roomTypes/public.js index 442423364c9df..fb9c9e277ad3d 100644 --- a/packages/rocketchat-lib/lib/roomTypes/public.js +++ b/packages/rocketchat-lib/lib/roomTypes/public.js @@ -42,9 +42,9 @@ export class PublicRoomType extends RoomTypeConfig { condition() { const user = Meteor.user(); - const roomsListExhibitionMode = RocketChat.getUserPreference(user, 'roomsListExhibitionMode'); + // const roomsListExhibitionMode = RocketChat.getUserPreference(user, 'roomsListExhibitionMode'); const mergeChannels = RocketChat.getUserPreference(user, 'mergeChannels'); - return !roomsListExhibitionMode || ['unread', 'category'].includes(roomsListExhibitionMode) && !mergeChannels && (RocketChat.authz.hasAtLeastOnePermission(['view-c-room', 'view-joined-room']) || RocketChat.settings.get('Accounts_AllowAnonymousRead') === true); + return !mergeChannels && (RocketChat.authz.hasAtLeastOnePermission(['view-c-room', 'view-joined-room']) || RocketChat.settings.get('Accounts_AllowAnonymousRead') === true); } showJoinLink(roomId) { diff --git a/packages/rocketchat-lib/lib/roomTypes/unread.js b/packages/rocketchat-lib/lib/roomTypes/unread.js index 395036c650888..0e15cf0aa6fa3 100644 --- a/packages/rocketchat-lib/lib/roomTypes/unread.js +++ b/packages/rocketchat-lib/lib/roomTypes/unread.js @@ -13,6 +13,6 @@ export class UnreadRoomType extends RoomTypeConfig { condition() { const user = Meteor.user(); - return RocketChat.getUserPreference(user, 'roomsListExhibitionMode') === 'unread'; + return RocketChat.getUserPreference(user, 'sidebarShowUnread'); } } diff --git a/packages/rocketchat-lib/package.js b/packages/rocketchat-lib/package.js index 606ec70fe7b95..b818099ae0027 100644 --- a/packages/rocketchat-lib/package.js +++ b/packages/rocketchat-lib/package.js @@ -43,7 +43,6 @@ Package.onUse(function(api) { // ROOM TYPES api.addFiles('lib/RoomTypeConfig.js'); api.addFiles([ - 'lib/roomTypes/channels.js', 'lib/roomTypes/conversation.js', 'lib/roomTypes/direct.js', 'lib/roomTypes/favorite.js', diff --git a/packages/rocketchat-lib/server/models/Users.js b/packages/rocketchat-lib/server/models/Users.js index 5381c8f7ce4df..ef78d79bb3fc9 100644 --- a/packages/rocketchat-lib/server/models/Users.js +++ b/packages/rocketchat-lib/server/models/Users.js @@ -436,10 +436,15 @@ class ModelUsers extends RocketChat.models._Base { } setPreferences(_id, preferences) { + const settings = Object.assign( + {}, + ...Object.keys(preferences).map(key => { + return {[`settings.preferences.${ key }`]: preferences[key]}; + }) + ); + const update = { - $set: { - 'settings.preferences': preferences - } + $set: settings }; return this.update(_id, update); diff --git a/packages/rocketchat-lib/startup/defaultRoomTypes.js b/packages/rocketchat-lib/startup/defaultRoomTypes.js index 3bb90fc292993..9f9e006f1324b 100644 --- a/packages/rocketchat-lib/startup/defaultRoomTypes.js +++ b/packages/rocketchat-lib/startup/defaultRoomTypes.js @@ -1,5 +1,4 @@ import { - ChannelsRoomType, ConversationRoomType, DirectMessageRoomType, FavoriteRoomType, @@ -11,7 +10,6 @@ import { RocketChat.roomTypes.add(new UnreadRoomType()); RocketChat.roomTypes.add(new FavoriteRoomType()); RocketChat.roomTypes.add(new ConversationRoomType()); -RocketChat.roomTypes.add(new ChannelsRoomType()); RocketChat.roomTypes.add(new PublicRoomType()); RocketChat.roomTypes.add(new PrivateRoomType()); RocketChat.roomTypes.add(new DirectMessageRoomType()); diff --git a/packages/rocketchat-livechat/.app/client/lib/tapi18n.js b/packages/rocketchat-livechat/.app/client/lib/tapi18n.js index 65a7357566e61..c1ded6b860504 100644 --- a/packages/rocketchat-livechat/.app/client/lib/tapi18n.js +++ b/packages/rocketchat-livechat/.app/client/lib/tapi18n.js @@ -23,6 +23,6 @@ this.tr = function(key, options, ...replaces) { }; this.isRtl = (lang) => { - const language = lang ? lang : localStorage.getItem('userLanguage'); + const language = lang ? lang : localStorage.getItem('userLanguage') ? localStorage.getItem('userLanguage') : 'en-US'; return ['ar', 'dv', 'fa', 'he', 'ku', 'ps', 'sd', 'ug', 'ur', 'yi'].includes(language.split('-').shift().toLowerCase()); }; diff --git a/packages/rocketchat-livechat/client/stylesheets/livechat.less b/packages/rocketchat-livechat/client/stylesheets/livechat.less index 7d2e34e950752..626d12b3cead8 100644 --- a/packages/rocketchat-livechat/client/stylesheets/livechat.less +++ b/packages/rocketchat-livechat/client/stylesheets/livechat.less @@ -623,7 +623,7 @@ } .livechat-section { - margin-bottom: 32px; + margin-bottom: 22px; } .livechat-status { diff --git a/packages/rocketchat-livechat/client/views/sideNav/livechat.html b/packages/rocketchat-livechat/client/views/sideNav/livechat.html index a895584a1ef38..d92756fbbb707 100644 --- a/packages/rocketchat-livechat/client/views/sideNav/livechat.html +++ b/packages/rocketchat-livechat/client/views/sideNav/livechat.html @@ -15,8 +15,6 @@
{{_ "No_livechats" }}
{{/each}}{{_ "No_livechats" }}
{{/each}} diff --git a/packages/rocketchat-livechat/client/views/sideNav/livechatFlex.html b/packages/rocketchat-livechat/client/views/sideNav/livechatFlex.html index bdf541b8e6c60..d64cd13bdf9cd 100644 --- a/packages/rocketchat-livechat/client/views/sideNav/livechatFlex.html +++ b/packages/rocketchat-livechat/client/views/sideNav/livechatFlex.html @@ -1,5 +1,5 @@ -