PLT-3366 Holding down the ALT key and clicking on a message adds a new messages indicator (squashed) (#3374)
Этот коммит содержится в:
коммит произвёл
Joram Wilander
родитель
6abc9601be
Коммит
9b9facd3d2
@@ -856,6 +856,58 @@ func (s SqlChannelStore) CheckOpenChannelPermissions(teamId string, channelId st
|
||||
return storeChannel
|
||||
}
|
||||
|
||||
func (s SqlChannelStore) SetLastViewedAt(channelId string, userId string, newLastViewedAt int64) StoreChannel {
|
||||
storeChannel := make(StoreChannel)
|
||||
|
||||
go func() {
|
||||
result := StoreResult{}
|
||||
|
||||
var query string
|
||||
|
||||
if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_POSTGRES {
|
||||
query = `UPDATE
|
||||
ChannelMembers
|
||||
SET
|
||||
MentionCount = 0,
|
||||
MsgCount = Channels.TotalMsgCount - (SELECT COUNT(*)
|
||||
FROM Posts
|
||||
WHERE ChannelId = :ChannelId
|
||||
AND CreateAt > :NewLastViewedAt),
|
||||
LastViewedAt = :NewLastViewedAt
|
||||
FROM
|
||||
Channels
|
||||
WHERE
|
||||
Channels.Id = ChannelMembers.ChannelId
|
||||
AND UserId = :UserId
|
||||
AND ChannelId = :ChannelId`
|
||||
} else if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_MYSQL {
|
||||
query = `UPDATE
|
||||
ChannelMembers, Channels
|
||||
SET
|
||||
ChannelMembers.MentionCount = 0,
|
||||
ChannelMembers.MsgCount = Channels.TotalMsgCount - (SELECT COUNT(*)
|
||||
FROM Posts
|
||||
WHERE ChannelId = :ChannelId
|
||||
AND CreateAt > :NewLastViewedAt),
|
||||
ChannelMembers.LastViewedAt = :NewLastViewedAt
|
||||
WHERE
|
||||
Channels.Id = ChannelMembers.ChannelId
|
||||
AND UserId = :UserId
|
||||
AND ChannelId = :ChannelId`
|
||||
}
|
||||
|
||||
_, err := s.GetMaster().Exec(query, map[string]interface{}{"ChannelId": channelId, "UserId": userId, "NewLastViewedAt": newLastViewedAt})
|
||||
if err != nil {
|
||||
result.Err = model.NewLocAppError("SqlChannelStore.SetLastViewedAt", "store.sql_channel.set_last_viewed_at.app_error", nil, "channel_id="+channelId+", user_id="+userId+", "+err.Error())
|
||||
}
|
||||
|
||||
storeChannel <- result
|
||||
close(storeChannel)
|
||||
}()
|
||||
|
||||
return storeChannel
|
||||
}
|
||||
|
||||
func (s SqlChannelStore) UpdateLastViewedAt(channelId string, userId string) StoreChannel {
|
||||
storeChannel := make(StoreChannel)
|
||||
|
||||
|
||||
@@ -99,6 +99,7 @@ type ChannelStore interface {
|
||||
CheckOpenChannelPermissions(teamId string, channelId string) StoreChannel
|
||||
CheckPermissionsToByName(teamId string, channelName string, userId string) StoreChannel
|
||||
UpdateLastViewedAt(channelId string, userId string) StoreChannel
|
||||
SetLastViewedAt(channelId string, userId string, newLastViewedAt int64) StoreChannel
|
||||
IncrementMentionCount(channelId string, userId string) StoreChannel
|
||||
AnalyticsTypeCount(teamId string, channelType string) StoreChannel
|
||||
ExtraUpdateByUser(userId string, time int64) StoreChannel
|
||||
|
||||
Ссылка в новой задаче
Block a user