Changed how posts are marked ephemeral

Этот коммит содержится в:
hmhealey
2016-02-03 12:12:10 -05:00
родитель 994358c31a
Коммит 70c3715b96
6 изменённых файлов: 17 добавлений и 15 удалений

Просмотреть файл

@@ -764,9 +764,8 @@ func checkForOutOfChannelMentions(c *Context, post *model.Post, channel *model.C
Id: model.NewId(), Id: model.NewId(),
ChannelId: post.ChannelId, ChannelId: post.ChannelId,
Message: messageText, Message: messageText,
Type: model.POST_OUT_OF_CHANNEL_MENTION, Type: model.POST_EPHEMERAL,
CreateAt: post.CreateAt + 1, CreateAt: post.CreateAt + 1,
Ephemeral: true,
Props: model.StringInterface{}, Props: model.StringInterface{},
Filenames: []string{}, Filenames: []string{},
} }

Просмотреть файл

@@ -10,12 +10,13 @@ import (
) )
const ( const (
POST_SYSTEM_MESSAGE_PREFIX = "system_" POST_SYSTEM_MESSAGE_PREFIX = "system_"
POST_DEFAULT = "" POST_DEFAULT = ""
POST_SLACK_ATTACHMENT = "slack_attachment" POST_SLACK_ATTACHMENT = "slack_attachment"
POST_JOIN_LEAVE = "system_join_leave" POST_SYSTEM_GENERIC = "system_generic"
POST_HEADER_CHANGE = "system_header_change" POST_JOIN_LEAVE = "system_join_leave"
POST_OUT_OF_CHANNEL_MENTION = "system_out_of_channel_mention" POST_HEADER_CHANGE = "system_header_change"
POST_EPHEMERAL = "system_ephemeral"
) )
type Post struct { type Post struct {
@@ -34,7 +35,6 @@ type Post struct {
Hashtags string `json:"hashtags"` Hashtags string `json:"hashtags"`
Filenames StringArray `json:"filenames"` Filenames StringArray `json:"filenames"`
PendingPostId string `json:"pending_post_id" db:"-"` PendingPostId string `json:"pending_post_id" db:"-"`
Ephemeral bool `json:"ephemeral" db:"-"`
} }
func (o *Post) ToJson() string { func (o *Post) ToJson() string {

Просмотреть файл

@@ -30,7 +30,7 @@ export default class PostInfo extends React.Component {
var isOwner = UserStore.getCurrentId() === post.user_id; var isOwner = UserStore.getCurrentId() === post.user_id;
var isAdmin = Utils.isAdmin(UserStore.getCurrentUser().roles); var isAdmin = Utils.isAdmin(UserStore.getCurrentUser().roles);
if (post.state === Constants.POST_FAILED || post.state === Constants.POST_LOADING || post.ephemeral) { if (post.state === Constants.POST_FAILED || post.state === Constants.POST_LOADING || Utils.isPostEphemeral(post)) {
return ''; return '';
} }
@@ -171,7 +171,7 @@ export default class PostInfo extends React.Component {
EventHelpers.emitRemovePost(this.props.post); EventHelpers.emitRemovePost(this.props.post);
} }
createRemovePostButton(post) { createRemovePostButton(post) {
if (!post.ephemeral) { if (!Utils.isPostEphemeral(post)) {
return null; return null;
} }
@@ -198,7 +198,7 @@ export default class PostInfo extends React.Component {
commentCountText = ''; commentCountText = '';
} }
if (post.state !== Constants.POST_FAILED && post.state !== Constants.POST_LOADING && !post.ephemeral) { if (post.state !== Constants.POST_FAILED && post.state !== Constants.POST_LOADING && !Utils.isPostEphemeral(post)) {
comments = ( comments = (
<a <a
href='#' href='#'

Просмотреть файл

@@ -342,8 +342,7 @@ class PostStoreClass extends EventEmitter {
// make sure to copy the post so that component state changes work properly // make sure to copy the post so that component state changes work properly
postList.posts[post.id] = Object.assign({}, post, { postList.posts[post.id] = Object.assign({}, post, {
state: Constants.POST_DELETED, state: Constants.POST_DELETED,
filenames: [], filenames: []
ephemeral: true
}); });
} }
} }

Просмотреть файл

@@ -128,8 +128,8 @@ export default {
POST_LOADING: 'loading', POST_LOADING: 'loading',
POST_FAILED: 'failed', POST_FAILED: 'failed',
POST_DELETED: 'deleted', POST_DELETED: 'deleted',
POST_TYPE_JOIN_LEAVE: 'system_join_leave',
POST_TYPE_EPHEMERAL: 'system_ephemeral', POST_TYPE_EPHEMERAL: 'system_ephemeral',
POST_TYPE_JOIN_LEAVE: 'system_join_leave',
SYSTEM_MESSAGE_PREFIX: 'system_', SYSTEM_MESSAGE_PREFIX: 'system_',
SYSTEM_MESSAGE_PROFILE_NAME: 'System', SYSTEM_MESSAGE_PROFILE_NAME: 'System',
SYSTEM_MESSAGE_PROFILE_IMAGE: '/static/images/logo_compact.png', SYSTEM_MESSAGE_PROFILE_IMAGE: '/static/images/logo_compact.png',

Просмотреть файл

@@ -1355,3 +1355,7 @@ export function languages() {
] ]
); );
} }
export function isPostEphemeral(post) {
return post.type === Constants.POST_TYPE_EPHEMERAL || post.state === Constants.POST_DELETED;
}