Merge pull request #4285 from tgxworld/fix_polls_not_cooked

FIX: Incorrect model for embedded post widget.
This commit is contained in:
Guo Xiang Tan 2016-06-27 13:31:03 +08:00 committed by GitHub
commit 5ba12840e0
3 changed files with 12 additions and 3 deletions

View File

@ -19,7 +19,7 @@ export function includeAttributes(...attributes) {
export function transformBasicPost(post) {
// Note: it can be dangerous to not use `get` in Ember code, but this is significantly
// faster and has tests to confirm it works. We only call `get` when the property is a CP
return {
const postAtts = {
id: post.id,
hidden: post.hidden,
deleted: post.get('deleted'),
@ -73,6 +73,9 @@ export function transformBasicPost(post) {
replyCount: post.reply_count,
};
_additionalAttributes.forEach(a => postAtts[a] = post[a]);
return postAtts;
}

View File

@ -267,7 +267,9 @@ createWidget('post-contents', {
const repliesBelow = state.repliesBelow;
if (repliesBelow.length) {
result.push(h('section.embedded-posts.bottom', repliesBelow.map(p => this.attach('embedded-post', p))));
result.push(h('section.embedded-posts.bottom', repliesBelow.map(p => {
return this.attach('embedded-post', p, { model: this.store.createRecord('post', p) });
})));
}
return result;
@ -338,7 +340,10 @@ createWidget('post-article', {
html(attrs, state) {
const rows = [h('a.tabLoc', { attributes: { href: ''} })];
if (state.repliesAbove.length) {
const replies = state.repliesAbove.map(p => this.attach('embedded-post', p, { state: { above: true } }));
const replies = state.repliesAbove.map(p => {
return this.attach('embedded-post', p, { model: this.store.createRecord('post', p), state: { above: true } });
});
rows.push(h('div.row', h('section.embedded-posts.top.topic-body.offset2', replies)));
}

View File

@ -108,6 +108,7 @@ function initializePolls(api) {
_pollViews = postPollViews;
}
api.includePostAttributes("polls", "polls_votes");
api.decorateCooked(createPollViews, { onlyStream: true });
api.cleanupStream(cleanUpPollViews);
}