31 lines
747 B
JavaScript
31 lines
747 B
JavaScript
import { ajax } from 'discourse/lib/ajax';
|
|
|
|
export default Ember.Component.extend({
|
|
tagName: '',
|
|
expanded: null,
|
|
_loading: false,
|
|
|
|
actions: {
|
|
toggleItem() {
|
|
if (this._loading) { return false; }
|
|
const item = this.get('item');
|
|
|
|
if (this.get('expanded')) {
|
|
this.set('expanded', false);
|
|
item.set('expandedExcerpt', null);
|
|
return;
|
|
}
|
|
|
|
const topicId = item.get('topic_id');
|
|
const postNumber = item.get('post_number');
|
|
|
|
this._loading = true;
|
|
return ajax(`/posts/by_number/${topicId}/${postNumber}.json`).then(result => {
|
|
this.set('expanded', true);
|
|
item.set('expandedExcerpt', result.cooked);
|
|
}).finally(() => this._loading = false);
|
|
}
|
|
}
|
|
});
|
|
|