The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Rocket.Chat/server/methods/saveUserPreferences.js

96 lines
2.9 KiB

Meteor.methods({
saveUserPreferences(settings) {
check(settings, Object);
if (Meteor.userId()) {
const preferences = {};
if (settings.language != null) {
RocketChat.models.Users.setLanguage(Meteor.userId(), settings.language);
}
if (settings.newRoomNotification) {
preferences.newRoomNotification = settings.newRoomNotification;
}
if (settings.newMessageNotification) {
preferences.newMessageNotification = settings.newMessageNotification;
}
if (settings.useEmojis) {
preferences.useEmojis = settings.useEmojis === '1' ? true : false;
}
if (settings.convertAsciiEmoji) {
preferences.convertAsciiEmoji = settings.convertAsciiEmoji === '1' ? true : false;
}
if (settings.saveMobileBandwidth) {
preferences.saveMobileBandwidth = settings.saveMobileBandwidth === '1' ? true : false;
}
if (settings.collapseMediaByDefault) {
preferences.collapseMediaByDefault = settings.collapseMediaByDefault === '1' ? true : false;
}
if (settings.autoImageLoad) {
preferences.autoImageLoad = settings.autoImageLoad === '1' ? true : false;
}
if (settings.emailNotificationMode) {
preferences.emailNotificationMode = settings.emailNotificationMode;
}
if (settings.mergeChannels !== '-1') {
preferences.mergeChannels = settings.mergeChannels === '1';
} else {
delete preferences.mergeChannels;
}
preferences.roomsListExhibitionMode = ['category', 'unread', 'activity'].includes(settings.roomsListExhibitionMode) ? settings.roomsListExhibitionMode : 'category';
if (settings.unreadAlert) {
preferences.unreadAlert = settings.unreadAlert === '1' ? true : false;
}
if (settings.notificationsSoundVolume) {
preferences.notificationsSoundVolume = settings.notificationsSoundVolume;
}
8 years ago
if (settings.audioNotifications) {
preferences.audioNotifications = settings.audioNotifications;
}
if (settings.desktopNotifications) {
preferences.desktopNotifications = settings.desktopNotifications;
}
if (settings.mobileNotifications) {
preferences.mobileNotifications = settings.mobileNotifications;
}
if (settings.idleTimeLimit) {
preferences.idleTimeLimit = settings.idleTimeLimit;
}
preferences.enableAutoAway = settings.enableAutoAway === '1';
if (settings.highlights) {
preferences.highlights = settings.highlights;
}
preferences.desktopNotificationDuration = settings.desktopNotificationDuration - 0;
preferences.viewMode = settings.viewMode || 0;
preferences.hideUsernames = settings.hideUsernames === '1';
preferences.hideRoles = settings.hideRoles === '1';
preferences.hideAvatars = settings.hideAvatars === '1';
preferences.hideFlexTab = settings.hideFlexTab === '1';
preferences.sendOnEnter = settings.sendOnEnter;
preferences.roomCounterSidebar = settings.roomCounterSidebar === '1';
RocketChat.models.Users.setPreferences(Meteor.userId(), preferences);
return true;
}
}
});