[MM-41115] Add server-side username colorize preference (#19382)
* Server support for collapse consecutive preference * Add server-side username colorize preference
Этот коммит содержится в:
@@ -46,6 +46,12 @@ var exportablePreferences = map[ComparablePreference]string{{
|
||||
}: "MessageDisplay", {
|
||||
Category: model.PreferenceCategoryDisplaySettings,
|
||||
Name: "channel_display_mode",
|
||||
}: "CollapseConsecutive", {
|
||||
Category: model.PreferenceCategoryDisplaySettings,
|
||||
Name: "collapse_consecutive_messages",
|
||||
}: "ColorizeUsernames", {
|
||||
Category: model.PreferenceCategoryDisplaySettings,
|
||||
Name: "colorize_usernames",
|
||||
}: "ChannelDisplayMode", {
|
||||
Category: model.PreferenceCategoryTutorialSteps,
|
||||
Name: "",
|
||||
|
||||
@@ -79,6 +79,7 @@ func ImportLineFromUser(user *model.User, exportedPrefs map[string]*string) *Lin
|
||||
UseMilitaryTime: exportedPrefs["UseMilitaryTime"],
|
||||
CollapsePreviews: exportedPrefs["CollapsePreviews"],
|
||||
MessageDisplay: exportedPrefs["MessageDisplay"],
|
||||
ColorizeUsernames: exportedPrefs["ColorizeUsernames"],
|
||||
ChannelDisplayMode: exportedPrefs["ChannelDisplayMode"],
|
||||
TutorialStep: exportedPrefs["TutorialStep"],
|
||||
EmailInterval: exportedPrefs["EmailInterval"],
|
||||
|
||||
@@ -635,6 +635,24 @@ func (a *App) importUser(data *UserImportData, dryRun bool) *model.AppError {
|
||||
})
|
||||
}
|
||||
|
||||
if data.CollapseConsecutive != nil {
|
||||
preferences = append(preferences, model.Preference{
|
||||
UserId: savedUser.Id,
|
||||
Category: model.PreferenceCategoryDisplaySettings,
|
||||
Name: model.PreferenceNameCollapseConsecutive,
|
||||
Value: *data.CollapseConsecutive,
|
||||
})
|
||||
}
|
||||
|
||||
if data.ColorizeUsernames != nil {
|
||||
preferences = append(preferences, model.Preference{
|
||||
UserId: savedUser.Id,
|
||||
Category: model.PreferenceCategoryDisplaySettings,
|
||||
Name: model.PreferenceNameColorizeUsernames,
|
||||
Value: *data.ColorizeUsernames,
|
||||
})
|
||||
}
|
||||
|
||||
if data.ChannelDisplayMode != nil {
|
||||
preferences = append(preferences, model.Preference{
|
||||
UserId: savedUser.Id,
|
||||
|
||||
@@ -1155,6 +1155,7 @@ func TestImportImportUser(t *testing.T) {
|
||||
UseMilitaryTime: ptrStr("true"),
|
||||
CollapsePreviews: ptrStr("true"),
|
||||
MessageDisplay: ptrStr("compact"),
|
||||
ColorizeUsernames: ptrStr("true"),
|
||||
ChannelDisplayMode: ptrStr("centered"),
|
||||
TutorialStep: ptrStr("3"),
|
||||
UseMarkdownPreview: ptrStr("true"),
|
||||
@@ -1173,6 +1174,7 @@ func TestImportImportUser(t *testing.T) {
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryDisplaySettings, model.PreferenceNameUseMilitaryTime, *data.UseMilitaryTime)
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryDisplaySettings, model.PreferenceNameCollapseSetting, *data.CollapsePreviews)
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryDisplaySettings, model.PreferenceNameMessageDisplay, *data.MessageDisplay)
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryDisplaySettings, model.PreferenceNameColorizeUsernames, *data.ColorizeUsernames)
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryDisplaySettings, model.PreferenceNameChannelDisplayMode, *data.ChannelDisplayMode)
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryTutorialSteps, user.Id, *data.TutorialStep)
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryAdvancedSettings, "feature_enabled_markdown_preview", *data.UseMarkdownPreview)
|
||||
@@ -1188,6 +1190,7 @@ func TestImportImportUser(t *testing.T) {
|
||||
UseMilitaryTime: ptrStr("false"),
|
||||
CollapsePreviews: ptrStr("false"),
|
||||
MessageDisplay: ptrStr("clean"),
|
||||
ColorizeUsernames: ptrStr("false"),
|
||||
ChannelDisplayMode: ptrStr("full"),
|
||||
TutorialStep: ptrStr("2"),
|
||||
EmailInterval: ptrStr("hour"),
|
||||
@@ -1200,6 +1203,7 @@ func TestImportImportUser(t *testing.T) {
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryDisplaySettings, model.PreferenceNameUseMilitaryTime, *data.UseMilitaryTime)
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryDisplaySettings, model.PreferenceNameCollapseSetting, *data.CollapsePreviews)
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryDisplaySettings, model.PreferenceNameMessageDisplay, *data.MessageDisplay)
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryDisplaySettings, model.PreferenceNameColorizeUsernames, *data.ColorizeUsernames)
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryDisplaySettings, model.PreferenceNameChannelDisplayMode, *data.ChannelDisplayMode)
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryTutorialSteps, user.Id, *data.TutorialStep)
|
||||
checkPreference(t, th.App, user.Id, model.PreferenceCategoryNotifications, model.PreferenceNameEmailInterval, "3600")
|
||||
|
||||
@@ -64,13 +64,15 @@ type UserImportData struct {
|
||||
|
||||
Teams *[]UserTeamImportData `json:"teams,omitempty"`
|
||||
|
||||
Theme *string `json:"theme,omitempty"`
|
||||
UseMilitaryTime *string `json:"military_time,omitempty"`
|
||||
CollapsePreviews *string `json:"link_previews,omitempty"`
|
||||
MessageDisplay *string `json:"message_display,omitempty"`
|
||||
ChannelDisplayMode *string `json:"channel_display_mode,omitempty"`
|
||||
TutorialStep *string `json:"tutorial_step,omitempty"`
|
||||
EmailInterval *string `json:"email_interval,omitempty"`
|
||||
Theme *string `json:"theme,omitempty"`
|
||||
UseMilitaryTime *string `json:"military_time,omitempty"`
|
||||
CollapsePreviews *string `json:"link_previews,omitempty"`
|
||||
MessageDisplay *string `json:"message_display,omitempty"`
|
||||
CollapseConsecutive *string `json:"collapse_consecutive_messages,omitempty"`
|
||||
ColorizeUsernames *string `json:"colorize_usernames,omitempty"`
|
||||
ChannelDisplayMode *string `json:"channel_display_mode,omitempty"`
|
||||
TutorialStep *string `json:"tutorial_step,omitempty"`
|
||||
EmailInterval *string `json:"email_interval,omitempty"`
|
||||
|
||||
NotifyProps *UserNotifyPropsImportData `json:"notify_props,omitempty"`
|
||||
}
|
||||
|
||||
@@ -26,6 +26,8 @@ const (
|
||||
PreferenceNameChannelDisplayMode = "channel_display_mode"
|
||||
PreferenceNameCollapseSetting = "collapse_previews"
|
||||
PreferenceNameMessageDisplay = "message_display"
|
||||
PreferenceNameCollapseConsecutive = "collapse_consecutive_messages"
|
||||
PreferenceNameColorizeUsernames = "colorize_usernames"
|
||||
PreferenceNameNameFormat = "name_format"
|
||||
PreferenceNameUseMilitaryTime = "use_military_time"
|
||||
PreferenceRecommendedNextSteps = "recommended_next_steps"
|
||||
|
||||
Ссылка в новой задаче
Block a user