mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-30 01:42:29 +03:00
170 lines
9.2 KiB
Handlebars
170 lines
9.2 KiB
Handlebars
<div class="gh-post-activity-feed">
|
||
{{#let (activity-feed-fetcher filter=(members-event-filter post=@postId excludedEvents=this.getEventTypes) pageSize=this.pageSize) as |eventsFetcher|}}
|
||
{{#if eventsFetcher.isError}}
|
||
<div class="gh-dashboard-list-body">
|
||
<div class="gh-dashboard-list-error">
|
||
<p>There was an error loading events</p>
|
||
{{#if eventsFetcher.errorMessage}}
|
||
<code>{{eventsFetcher.errorMessage}}</code>
|
||
{{/if}}
|
||
</div>
|
||
</div>
|
||
{{/if}}
|
||
|
||
{{#if (and (not eventsFetcher.data) (not eventsFetcher.isLoading))}}
|
||
<div class="gh-dashboard-list-body">
|
||
<div class="gh-post-activity-feed-empty">
|
||
<div class="attribution-list-empty">
|
||
{{#if (eq this.eventType "sent")}}
|
||
{{svg-jar "empty-sent"}}
|
||
<h4>No members have received your email yet</h4>
|
||
<p>Once someone receives your email, you'll be able to see the member activity here.</p>
|
||
{{else if (eq this.eventType "opened")}}
|
||
{{svg-jar "empty-opened"}}
|
||
<h4>No members have opened your email yet</h4>
|
||
<p>Once someone opens your email, you'll be able to see the member activity here.</p>
|
||
{{else if (eq this.eventType "clicked")}}
|
||
{{svg-jar "empty-clicked"}}
|
||
<h4>No members have clicked in your email yet</h4>
|
||
<p>Once someone clicks in your email, you'll be able to see the member activity here.</p>
|
||
{{else if (eq this.eventType "feedback")}}
|
||
{{svg-jar "empty-feedback"}}
|
||
<h4>No members have responded with feedback yet</h4>
|
||
<p>Once someone has responded with feedback, you'll be able to see the member activity here.</p>
|
||
{{else if (eq this.eventType "conversion")}}
|
||
{{svg-jar "empty-conversion"}}
|
||
<h4>No members have signed up or upgraded yet</h4>
|
||
<p>Once someone has signed up or upgraded, you'll be able to see the member activity here.</p>
|
||
{{/if}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{else}}
|
||
<div class="gh-dashboard-list-body {{if (eq this.eventType "clicked") "gh-dashboard-list-larger-cols" }} {{if (eq this.eventType "conversion") "gh-dashboard-list-four-cols" }}">
|
||
{{#each eventsFetcher.data as |event|}}
|
||
{{#let (parse-member-event event) as |parsedEvent|}}
|
||
<div class="gh-dashboard-list-item">
|
||
<div class="gh-dashboard-list-item-sub">
|
||
<GhMemberAvatar @member={{parsedEvent.member}} @containerClass="w6 h6 mr3 flex-shrink-0" />
|
||
<LinkTo class="gh-dashboard-list-text" @route="member" @model="{{parsedEvent.memberId}}">{{parsedEvent.subject}}</LinkTo>
|
||
</div>
|
||
<div class="gh-dashboard-list-item-sub">
|
||
{{svg-jar parsedEvent.icon }}
|
||
<span class="gh-dashboard-list-subtext">
|
||
<span class="gh-members-activity-description">
|
||
<span class="gh-members-activity-event-text">{{capitalize-first-letter parsedEvent.action}}</span>
|
||
{{#if parsedEvent.url}}
|
||
<span class="gh-members-activity-event-dash">–</span>
|
||
<a class="ghost-members-activity-object-link" href="{{parsedEvent.url}}" target="_blank" rel="noopener noreferrer">{{parsedEvent.description}}</a>
|
||
{{/if}}
|
||
</span>
|
||
</span>
|
||
</div>
|
||
{{#if (eq this.eventType "conversion")}}
|
||
<div class="gh-dashboard-list-item-sub">
|
||
{{#if parsedEvent.source}}
|
||
{{#if parsedEvent.source.url}}
|
||
<a href={{parsedEvent.source.url}} rel="noopener noreferrer" target="_blank">{{parsedEvent.source.name}}</a>
|
||
{{else}}
|
||
<span>{{parsedEvent.source.name}}</span>
|
||
{{/if}}
|
||
{{else}}
|
||
<span class="midlightgrey">—</span>
|
||
{{/if}}
|
||
</div>
|
||
{{/if}}
|
||
<div class="gh-dashboard-list-item-sub">
|
||
<span class="gh-dashboard-list-subtext">{{moment-from-now parsedEvent.timestamp}}</span>
|
||
</div>
|
||
</div>
|
||
{{/let}}
|
||
{{/each}}
|
||
|
||
{{#if (compute (fn this.areStubsNeeded eventsFetcher))}}
|
||
{{#let (compute (fn this.getAmountOfStubs eventsFetcher)) as |stubs|}}
|
||
{{#each stubs}}
|
||
<div class="gh-dashboard-list-item"></div>
|
||
{{/each}}
|
||
{{/let}}
|
||
{{/if}}
|
||
|
||
<div class="gh-post-activity-feed-footer">
|
||
{{#if @linkQuery}}
|
||
<LinkTo
|
||
class="gh-post-activity-feed-pagination-link"
|
||
@route="members"
|
||
@query={{@linkQuery}}
|
||
>
|
||
{{svg-jar "filter"}}
|
||
See members
|
||
</LinkTo>
|
||
{{else}}
|
||
<div></div>
|
||
{{/if}}
|
||
|
||
<div class="gh-post-activity-feed-pagination">
|
||
{{#if (compute (fn this.isPaginationNotNeeded eventsFetcher))}}
|
||
Showing {{eventsFetcher.totalEvents}} in total
|
||
{{else}}
|
||
Showing {{eventsFetcher.previousEvents}}-{{eventsFetcher.shownEvents}} of {{eventsFetcher.totalEvents}}
|
||
|
||
<div class="gh-post-activity-feed-pagination-group">
|
||
<button
|
||
class="gh-post-activity-feed-pagination-button gh-post-activity-feed-prev-button"
|
||
type="button"
|
||
title="Previous page"
|
||
disabled={{compute (fn this.isPreviousButtonDisabled eventsFetcher)}}
|
||
{{on "click" eventsFetcher.loadPreviousPage}}
|
||
>
|
||
{{svg-jar "arrow-left-pagination"}}
|
||
</button>
|
||
|
||
<button
|
||
class="gh-post-activity-feed-pagination-button gh-post-activity-feed-next-button"
|
||
type="button"
|
||
title="Next page"
|
||
disabled={{compute (fn this.isNextButtonDisabled eventsFetcher)}}
|
||
{{on "click" eventsFetcher.loadNextPage}}
|
||
>
|
||
{{svg-jar "arrow-right-pagination"}}
|
||
</button>
|
||
</div>
|
||
{{/if}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
{{#if (eq @eventType 'feedback')}}
|
||
<div
|
||
class="gh-feedback-events-feed"
|
||
id="gh-feedback-events-feed"
|
||
{{on "mouseleave" this.onMouseleave}}
|
||
>
|
||
<div class="gh-feedback-events-feed-container">
|
||
<Posts::FeedbackEventsChart
|
||
@data={{@data}}
|
||
/>
|
||
</div>
|
||
|
||
<div
|
||
class="gh-feedback-events-tooltip"
|
||
id="gh-feedback-events-tooltip"
|
||
{{did-insert this.onTooltipInsert}}
|
||
>
|
||
<div id="gh-feedback-events-tooltip-body">
|
||
|
||
</div>
|
||
|
||
<div class="gh-feedback-events-tooltip-footer" id="gh-feedback-events-tooltip-footer">
|
||
<Posts::FeedbackEventsTooltipTemplate
|
||
@positiveLink={{@positiveLink}}
|
||
@negativeLink={{@negativeLink}}
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{/if}}
|
||
{{/if}}
|
||
{{/let}}
|
||
</div>
|