var MAX_SHOWN = 5; import StringBuffer from 'discourse/mixins/string-buffer'; import { iconHTML } from 'discourse/helpers/fa-icon'; export default Em.Component.extend(StringBuffer, { classNameBindings: [':gutter'], rerenderTriggers: ['expanded'], // Roll up links to avoid duplicates collapsed: function() { var seen = {}, result = [], links = this.get('links'); if (!Em.isEmpty(links)) { links.forEach(function(l) { var title = Em.get(l, 'title'); if (!seen[title]) { result.pushObject(l); seen[title] = true; } }); } return result; }.property('links'), renderString: function(buffer) { var links = this.get('collapsed'), toRender = links, collapsed = !this.get('expanded'); if (!Em.isEmpty(links)) { if (collapsed) { toRender = toRender.slice(0, MAX_SHOWN); } buffer.push("'); } if (this.get('canReplyAsNewTopic')) { buffer.push("" + iconHTML('plus') + I18n.t('post.reply_as_new_topic') + ""); } }, click: function(e) { var $target = $(e.target); if ($target.hasClass('toggle-more')) { this.toggleProperty('expanded'); return false; } else if ($target.closest('.reply-new').length) { this.sendAction('newTopicAction', this.get('post')); return false; } return true; } });