Ghost/ghost/admin/app/templates/posts.hbs
Kevin Ansfield 2a77c0fe51 Added default and custom post views (filters) to the admin sidebar (#1474)
no issue

- list custom post views in collapsable sidebar navigation
  - default views: Draft, Scheduled, Published (except for contributors)
  - record expanded/collapsed state of the navigation menus in user settings via new `navigation` service
- adds `customViews` service that manages custom views
  - provides list of default views
  - gives access to "active" custom view based on current route and query params
  - manages loading/saving of custom views to user settings
- show "Add view" button in the content filter when the posts list has been filtered
- show "Edit view" button in the content filter when the posts list filter matches a saved view

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2020-01-30 15:35:36 +00:00

67 lines
2.9 KiB
Handlebars

<section class="gh-canvas">
<GhCanvasHeader class="gh-canvas-header post-header">
<GhCustomViewTitle @title="Posts" @query={{reset-posts-query}} />
<section class="view-actions">
<GhContentfilter
@selectedType={{this.selectedType}}
@availableTypes={{this.availableTypes}}
@onTypeChange={{action "changeType"}}
@selectedAuthor={{this.selectedAuthor}}
@availableAuthors={{this.availableAuthors}}
@onAuthorChange={{action "changeAuthor"}}
@selectedTag={{this.selectedTag}}
@availableTags={{this.availableTags}}
@onTagChange={{action "changeTag"}}
@selectedOrder={{this.selectedOrder}}
@availableOrders={{this.availableOrders}}
@onOrderChange={{action "changeOrder"}}
/>
<LinkTo @route="editor.new" @model="post" class="gh-btn gh-btn-green" data-test-new-post-button={{true}}><span>New post</span></LinkTo>
</section>
</GhCanvasHeader>
<section class="content-list">
<ol class="posts-list gh-list {{unless this.postsInfinityModel "no-posts"}}">
{{#if this.postsInfinityModel}}
<li class="gh-list-row header">
<div class="gh-list-header no-padding">{{!--Favorite indicator column: no header--}}</div>
<div class="gh-list-header gh-posts-title-header">Title</div>
<div class="gh-list-header gh-posts-status-header">Status</div>
<div class="gh-list-header gh-posts-lastupdate-header">Last update</div>
</li>
{{/if}}
{{#each this.postsInfinityModel as |post|}}
<GhPostsListItem
@post={{post}}
data-test-post-id={{post.id}} />
{{else}}
<li class="no-posts-box">
<div class="no-posts">
{{#if this.showingAll}}
{{svg-jar "posts-placeholder" class="gh-posts-placeholder"}}
<h3>You haven't written any posts yet!</h3>
<LinkTo @route="editor.new" @model="post" class="gh-btn gh-btn-green gh-btn-lg">
<span>Write a new post</span>
</LinkTo>
{{else}}
<h3>No posts match the current filter</h3>
<LinkTo @route="posts" @query={{hash type=null author=null tag=null}} class="gh-btn gh-btn-lg">
<span>Show all posts</span>
</LinkTo>
{{/if}}
</div>
</li>
{{/each}}
</ol>
<GhInfinityLoader
@infinityModel={{this.postsInfinityModel}}
@scrollable=".gh-main"
@triggerOffset={{1000}} />
</section>
{{outlet}}
</section>