2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-06 10:50:21 +08:00

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 { propertyEqual } from 'discourse/lib/computed';
import { actionDescription } from "discourse/components/small-action"; import { actionDescription } from "discourse/components/small-action";
import { ajax } from 'discourse/lib/ajax';
export default Ember.Component.extend({ export default Ember.Component.extend({
classNameBindings: [":item", "item.hidden", "item.deleted:deleted", "moderatorAction"], classNameBindings: [":item", "item.hidden", "item.deleted:deleted", "moderatorAction"],
moderatorAction: propertyEqual("item.post_type", "site.post_types.moderator_action"), moderatorAction: propertyEqual("item.post_type", "site.post_types.moderator_action"),
actionDescription: actionDescription("item.action_code", "item.created_at", "item.username"), 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'> <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> <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> <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}} {{topic-status topic=item disableActions=true}}
<span class="title"> <span class="title">
<a href={{item.postUrl}}>{{{item.title}}}</a> <a href={{item.postUrl}}>{{{item.title}}}</a>
</span> </span>
<div class="category">{{category-link item.category}}</div> <div class="category">{{category-link item.category}}</div>
{{#if item.deleted_by}} {{#if item.deleted_by}}
<span class="delete-info"> <span class="delete-info">
{{fa-icon "trash-o"}} {{fa-icon "trash-o"}}

View file

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

View file

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

View file

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

View file

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