From 5b13acd5e3448c7e77433eb85ffc9fcae6b2c70d Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Thu, 14 May 2015 23:10:50 +0930 Subject: [PATCH] Add excerpt to sticky discussions --- extensions/sticky/js/bootstrap.js | 16 ++++++++++++++++ extensions/sticky/less/sticky.less | 8 ++++++++ 2 files changed, 24 insertions(+) diff --git a/extensions/sticky/js/bootstrap.js b/extensions/sticky/js/bootstrap.js index 0eac2c264..d7ba8d882 100644 --- a/extensions/sticky/js/bootstrap.js +++ b/extensions/sticky/js/bootstrap.js @@ -2,6 +2,7 @@ import { extend } from 'flarum/extension-utils'; import Model from 'flarum/model'; import Discussion from 'flarum/models/discussion'; import DiscussionPage from 'flarum/components/discussion-page'; +import DiscussionList from 'flarum/components/discussion-list'; import Badge from 'flarum/components/badge'; import ActionButton from 'flarum/components/action-button'; import SettingsPage from 'flarum/components/settings-page'; @@ -57,4 +58,19 @@ app.initializers.add('sticky', function() { label: [icon('thumb-tack'), ' Someone stickies a discussion I started'] }); }); + + extend(DiscussionList.prototype, 'params', function(params) { + params.include.push('startPost'); + }); + + extend(DiscussionList.prototype, 'infoItems', function(items, discussion) { + if (discussion.isSticky()) { + var startPost = discussion.startPost(); + if (startPost) { + var excerpt = m('span', startPost.excerpt()); + excerpt.wrapperClass = 'discussion-excerpt'; + var item = items.add('excerpt', excerpt, {first: true}); + } + } + }); }); diff --git a/extensions/sticky/less/sticky.less b/extensions/sticky/less/sticky.less index d8e24bf9c..c4d74154f 100644 --- a/extensions/sticky/less/sticky.less +++ b/extensions/sticky/less/sticky.less @@ -6,3 +6,11 @@ color: #d13e32; } } +.discussion-excerpt { + display: block !important; + margin-bottom: 10px; + white-space: normal; + font-size: 12px; + line-height: 1.5em; + color: #aaa; +}