MM-30048 added thread related socket messages (#16234)
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
7b515d27f2
Коммит
cf4df5fcd2
@@ -83,6 +83,10 @@ const (
|
||||
GROUP_UNREAD_CHANNELS_DEFAULT_ON = "default_on"
|
||||
GROUP_UNREAD_CHANNELS_DEFAULT_OFF = "default_off"
|
||||
|
||||
COLLAPSED_THREADS_DISABLED = "disabled"
|
||||
COLLAPSED_THREADS_DEFAULT_ON = "default_on"
|
||||
COLLAPSED_THREADS_DEFAULT_OFF = "default_off"
|
||||
|
||||
EMAIL_BATCHING_BUFFER_SIZE = 256
|
||||
EMAIL_BATCHING_INTERVAL = 30
|
||||
|
||||
@@ -351,6 +355,7 @@ type ServiceSettings struct {
|
||||
FeatureFlagSyncIntervalSeconds *int `access:"environment,write_restrictable"`
|
||||
DebugSplit *bool `access:"environment,write_restrictable"`
|
||||
ThreadAutoFollow *bool `access:"experimental"`
|
||||
CollapsedThreads *string `access:"experimental"`
|
||||
ManagedResourcePaths *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
@@ -786,6 +791,10 @@ func (s *ServiceSettings) SetDefaults(isUpdate bool) {
|
||||
s.ThreadAutoFollow = NewBool(true)
|
||||
}
|
||||
|
||||
if s.CollapsedThreads == nil {
|
||||
s.CollapsedThreads = NewString(COLLAPSED_THREADS_DISABLED)
|
||||
}
|
||||
|
||||
if s.ManagedResourcePaths == nil {
|
||||
s.ManagedResourcePaths = NewString("")
|
||||
}
|
||||
@@ -3437,6 +3446,12 @@ func (s *ServiceSettings) isValid() *AppError {
|
||||
return NewAppError("Config.IsValid", "model.config.is_valid.group_unread_channels.app_error", nil, "", http.StatusBadRequest)
|
||||
}
|
||||
|
||||
if *s.CollapsedThreads != COLLAPSED_THREADS_DISABLED &&
|
||||
*s.CollapsedThreads != COLLAPSED_THREADS_DEFAULT_ON &&
|
||||
*s.CollapsedThreads != COLLAPSED_THREADS_DEFAULT_OFF {
|
||||
return NewAppError("Config.IsValid", "model.config.is_valid.collapsed_threads.app_error", nil, "", http.StatusBadRequest)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -13,20 +13,22 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW = "direct_channel_show"
|
||||
PREFERENCE_CATEGORY_GROUP_CHANNEL_SHOW = "group_channel_show"
|
||||
PREFERENCE_CATEGORY_TUTORIAL_STEPS = "tutorial_step"
|
||||
PREFERENCE_CATEGORY_ADVANCED_SETTINGS = "advanced_settings"
|
||||
PREFERENCE_CATEGORY_FLAGGED_POST = "flagged_post"
|
||||
PREFERENCE_CATEGORY_FAVORITE_CHANNEL = "favorite_channel"
|
||||
PREFERENCE_CATEGORY_SIDEBAR_SETTINGS = "sidebar_settings"
|
||||
PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW = "direct_channel_show"
|
||||
PREFERENCE_CATEGORY_GROUP_CHANNEL_SHOW = "group_channel_show"
|
||||
PREFERENCE_CATEGORY_TUTORIAL_STEPS = "tutorial_step"
|
||||
PREFERENCE_CATEGORY_ADVANCED_SETTINGS = "advanced_settings"
|
||||
PREFERENCE_CATEGORY_FLAGGED_POST = "flagged_post"
|
||||
PREFERENCE_CATEGORY_FAVORITE_CHANNEL = "favorite_channel"
|
||||
PREFERENCE_CATEGORY_SIDEBAR_SETTINGS = "sidebar_settings"
|
||||
PREFERENCE_CATEGORY_COLLAPSED_THREADS_SETTINGS = "collapsed_threads_settings"
|
||||
|
||||
PREFERENCE_CATEGORY_DISPLAY_SETTINGS = "display_settings"
|
||||
PREFERENCE_NAME_CHANNEL_DISPLAY_MODE = "channel_display_mode"
|
||||
PREFERENCE_NAME_COLLAPSE_SETTING = "collapse_previews"
|
||||
PREFERENCE_NAME_MESSAGE_DISPLAY = "message_display"
|
||||
PREFERENCE_NAME_NAME_FORMAT = "name_format"
|
||||
PREFERENCE_NAME_USE_MILITARY_TIME = "use_military_time"
|
||||
PREFERENCE_CATEGORY_DISPLAY_SETTINGS = "display_settings"
|
||||
PREFERENCE_NAME_COLLAPSED_THREADS_ENABLED = "collapsed_threads_enabled"
|
||||
PREFERENCE_NAME_CHANNEL_DISPLAY_MODE = "channel_display_mode"
|
||||
PREFERENCE_NAME_COLLAPSE_SETTING = "collapse_previews"
|
||||
PREFERENCE_NAME_MESSAGE_DISPLAY = "message_display"
|
||||
PREFERENCE_NAME_NAME_FORMAT = "name_format"
|
||||
PREFERENCE_NAME_USE_MILITARY_TIME = "use_military_time"
|
||||
|
||||
PREFERENCE_CATEGORY_THEME = "theme"
|
||||
// the name for theme props is the team id
|
||||
|
||||
@@ -56,6 +56,12 @@ func (o *Thread) ToJson() string {
|
||||
return string(b)
|
||||
}
|
||||
|
||||
func ThreadFromJson(s string) (*Thread, error) {
|
||||
var t Thread
|
||||
err := json.Unmarshal([]byte(s), &t)
|
||||
return &t, err
|
||||
}
|
||||
|
||||
func (o *Thread) Etag() string {
|
||||
return Etag(o.PostId, o.LastReplyAt)
|
||||
}
|
||||
|
||||
@@ -70,6 +70,9 @@ const (
|
||||
WEBSOCKET_WARN_METRIC_STATUS_RECEIVED = "warn_metric_status_received"
|
||||
WEBSOCKET_WARN_METRIC_STATUS_REMOVED = "warn_metric_status_removed"
|
||||
WEBSOCKET_EVENT_CLOUD_PAYMENT_STATUS_UPDATED = "cloud_payment_status_updated"
|
||||
WEBSOCKET_EVENT_THREAD_UPDATED = "thread_updated"
|
||||
WEBSOCKET_EVENT_THREAD_FOLLOW_CHANGED = "thread_follow_changed"
|
||||
WEBSOCKET_EVENT_THREAD_READ_CHANGED = "thread_read_changed"
|
||||
)
|
||||
|
||||
type WebSocketMessage interface {
|
||||
|
||||
Ссылка в новой задаче
Block a user