FEATURE: Expand truncated posts in the user stream

This commit is contained in:
Robin Ward 2017-06-20 15:45:26 -04:00
parent ae7734707e
commit a289ae67e1
6 changed files with 39 additions and 2 deletions

View File

@ -1,8 +1,20 @@
import { propertyEqual } from 'discourse/lib/computed';
import { actionDescription } from "discourse/components/small-action";
import { ajax } from 'discourse/lib/ajax';
export default Ember.Component.extend({
classNameBindings: [":item", "item.hidden", "item.deleted:deleted", "moderatorAction"],
moderatorAction: propertyEqual("item.post_type", "site.post_types.moderator_action"),
actionDescription: actionDescription("item.action_code", "item.created_at", "item.username"),
actions: {
expandItem() {
const item = this.get('item');
return ajax(`/posts/${item.get('post_id')}/cooked.json`).then(result => {
item.set('truncated', false);
item.set('excerpt', result.cooked);
});
}
}
});

View File

@ -1,11 +1,17 @@
<div class='clearfix info'>
<a href={{item.userUrl}} data-user-card={{item.username}} class='avatar-link'><div class='avatar-wrapper'>{{avatar item imageSize="large" extraClasses="actor" ignoreTitle="true"}}</div></a>
<span class='time'>{{format-date item.created_at}}</span>
{{#if item.truncated}}
<a class="expand-item" href {{action "expandItem"}} title={{i18n "post.expand_collapse"}}>
{{fa-icon "chevron-down"}}
</a>
{{/if}}
{{topic-status topic=item disableActions=true}}
<span class="title">
<a href={{item.postUrl}}>{{{item.title}}}</a>
</span>
<div class="category">{{category-link item.category}}</div>
{{#if item.deleted_by}}
<span class="delete-info">
{{fa-icon "trash-o"}}

View File

@ -12,6 +12,12 @@
.avatar-link {
margin-right: 3px;
}
}
.user-stream .item .expand-item {
float: right;
margin-right: 0.5em;
color: $primary;
}
.user-main {

View File

@ -1,5 +1,4 @@
// styles that apply to the user page
.groups {
.group-link {
color: $tertiary;

View File

@ -4,6 +4,7 @@ class AdminUserActionSerializer < ApplicationSerializer
:id,
:created_at,
:post_number,
:post_id,
:name,
:username,
:avatar_template,
@ -11,6 +12,7 @@ class AdminUserActionSerializer < ApplicationSerializer
:slug,
:title,
:category_id,
:truncated,
:excerpt,
:hidden,
:moderator_action,
@ -21,6 +23,18 @@ class AdminUserActionSerializer < ApplicationSerializer
:action_type
)
def truncated
true
end
def post_id
object.id
end
def include_truncated?
object.excerpt != object.cooked
end
def deleted
deleted_at.present?
end

View File

@ -44,7 +44,7 @@ class UserActionSerializer < ApplicationSerializer
end
def include_truncated?
excerpt != cooked
cooked.length > 300
end
def avatar_template