# Topic list custom view

**URL:** https://meta.discourse.org/t/topic-list-custom-view/104640
**Category:** Development
**Created:** [December 19, 2018, 9:02am UTC](https://meta.discourse.org/t/topic-list-custom-view/104640 "2018-12-19T09:02:02Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![vadim0426](https://avatars.discourse-cdn.com/v4/letter/v/7c8e57/32.png) [@vadim0426](https://meta.discourse.org/u/vadim0426)
#### Post date: [December 19, 2018, 9:02am UTC](https://meta.discourse.org/t/topic-list-custom-view/104640/1 "2018-12-19T09:02:02Z")

</div>

Hi,

I am developing new theme for Discourse forum. There are some feature I can’t understand how to do and is it possible.  
Is it real to present topic list as on the screen?

 ![10%20AM](https://global.discourse-cdn.com/meta/original/3X/5/3/531675042e26660949a901787f02bbc661bc51f2.png)

Topic grouping by created date with timeline, etc…  
If I understand correctly there will be a lot of code I have to override to show the list in this kind.  
For instance loading topic behavior for loading (pagination) topic…  
Somebody did something like that?

Thank you.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [January 3, 2019, 4:34pm UTC](https://meta.discourse.org/t/topic-list-custom-view/104640/2 "2019-01-03T16:34:25Z")

</div>

Take a look at the [Topic List Previews plugin](https://meta.discourse.org/t/topic-list-previews/101646). I recently added a [Masonry](https://masonry.desandro.com) ‘renderer’ to it (and continue to enhance that). Your screen shot is not a million miles away from that work.

It’s surprisingly straightforward once you get into the groove.

You just need to override the topic-list and topic-list-item components and their templates and add your custom CSS.

Each of the internal elements in your above screenshot can just be divs you arrange in e.g. a CSS grid which you render for each topic.

You could fork TLP as a head start.

---

<div class="post-metadata">

### Author: ![vadim0426](https://avatars.discourse-cdn.com/v4/letter/v/7c8e57/32.png) [@vadim0426](https://meta.discourse.org/u/vadim0426)
#### Post date: [January 17, 2019, 1:50pm UTC](https://meta.discourse.org/t/topic-list-custom-view/104640/3 "2019-01-17T13:50:45Z")

</div>

Thank you. )) Your plugin is very nice. Good job!!  
I am not new in EmberJS but there are lot of questions after looking your plugin code. I mean without good knowledges of the architecture of the forum is very difficult to create something similar. It would be not only css coding )). Timeline implementation for example: I’m sure the changes should be server-side related.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [January 17, 2019, 6:17pm UTC](https://meta.discourse.org/t/topic-list-custom-view/104640/4 "2019-01-17T18:17:16Z")

</div>

> [@vadim0426](#):
>
> Timeline implementation for example: I’m sure the changes should be server-side related.

Well you can monkey-patch the server side too. But, not so sure you’d need to … presentation is largely the client side javascript & Ember (and the CSS, of course)… the Topics have date-time data in the json … I don’t think this will require much if any back-end changes.

Take a look at this site’s `/latest.json` … most if not all the data you’d need is there?

---

<div class="post-metadata">

### Author: ![vadim0426](https://avatars.discourse-cdn.com/v4/letter/v/7c8e57/32.png) [@vadim0426](https://meta.discourse.org/u/vadim0426)
#### Post date: [January 17, 2019, 8:04pm UTC](https://meta.discourse.org/t/topic-list-custom-view/104640/5 "2019-01-17T20:04:27Z")

</div>

Yes, you are right. There is created\_at field and some more fields I need to show in the template.  
Thank you!
