mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-21 01:41:46 +03:00
173 lines
9.1 KiB
Handlebars
173 lines
9.1 KiB
Handlebars
<section class="gh-canvas" {{scroll-top}}>
|
|
<div class="gh-dashboard">
|
|
{{#if (feature 'sourceAttribution')}}
|
|
<GhCanvasHeader class="gh-canvas-header sticky">
|
|
<h2 class="gh-canvas-title" data-test-screen-title>
|
|
Dashboard
|
|
</h2>
|
|
{{#unless this.isTotalMembersZero}}
|
|
<div class="gh-dashboard-select">
|
|
<div {{did-insert this.loadMentions}}>
|
|
{{#if (feature 'webmentions')}}
|
|
<GhBasicDropdown @horizontalPosition="right" @verticalPosition="below" @onOpen={{this.markMentionsRead}} as |dropdown|>
|
|
<dropdown.Trigger class="outline-0 pointer">
|
|
<button type="button" class="gh-dashboard-mentions-icon">
|
|
{{#if this.hasNewMentions}}
|
|
{{svg-jar "notification-bell-indicator"}}
|
|
{{else}}
|
|
{{svg-jar "notification-bell"}}
|
|
{{/if}}
|
|
</button>
|
|
</dropdown.Trigger>
|
|
|
|
<dropdown.Content class="gh-dashboard-mentions-container">
|
|
<div class="gh-dashboard-mentions">
|
|
{{#if this.mentions}}
|
|
<div class="gh-dashboard-mentions-header">
|
|
<h2 class="gh-dashboard-mentions-heading">Mentions</h2>
|
|
<LinkTo @route="mentions" class="gh-dashboard-mentions-see-all">View all mentions →</LinkTo>
|
|
</div>
|
|
{{/if}}
|
|
<div>
|
|
{{#if this.mentions}}
|
|
{{#each this.mentions as |mention|}}
|
|
<a href="{{mention.source}}" class="gh-dashboard-mention" rel="noreferrer noopener" target="_blank">
|
|
<div class="gh-dashboard-mention-content">
|
|
<img src="{{mention.sourceFavicon}}" alt="{{mention.sourceSiteTitle}}" class="w5 h5 mr2 flex-shrink-0">
|
|
<span class="gh-dashboard-mention-title">{{or mention.sourceSiteTitle mention.sourceTitle}}</span>
|
|
<div class="gh-mention-link-icon">
|
|
{{svg-jar "twitter-link"}}
|
|
</div>
|
|
{{#if (gt mention.mentions.length 1) }}
|
|
<span class="gh-dashboard-mention-target">{{mention.mentions.length}} links</span>
|
|
{{else}}
|
|
<span class="gh-dashboard-mention-target">{{if mention.resource mention.resource.name mention.target}}</span>
|
|
{{/if}}
|
|
<span class="gh-dashboard-mention-timestamp">{{moment-from-now mention.timestamp}}</span>
|
|
</div>
|
|
</a>
|
|
{{/each}}
|
|
{{else}}
|
|
<div class="gh-mentions-list-cta">
|
|
{{svg-jar "email-love-letter" class="love-letter"}}
|
|
<h4>No mentions yet</h4>
|
|
<p>When other sites mention your posts or pages, they'll appear here.</p>
|
|
</div>
|
|
{{/if}}
|
|
</div>
|
|
</div>
|
|
</dropdown.Content>
|
|
</GhBasicDropdown>
|
|
|
|
{{/if}}
|
|
</div>
|
|
|
|
<PowerSelect
|
|
@selected={{this.selectedDaysOption}}
|
|
@options={{this.daysOptions}}
|
|
@searchEnabled={{false}}
|
|
@onChange={{this.onDaysChange}}
|
|
@triggerComponent={{component "gh-power-select/trigger"}}
|
|
@triggerClass="gh-contentfilter-menu-trigger"
|
|
@dropdownClass="gh-contentfilter-menu-dropdown is-narrow"
|
|
@matchTriggerWidth={{false}}
|
|
@horizontalPosition="right"
|
|
as |option|
|
|
>
|
|
{{#if option.name}}{{option.name}}{{else}}<span class="red">Unknown option</span>{{/if}}
|
|
</PowerSelect>
|
|
</div>
|
|
{{/unless}}
|
|
</GhCanvasHeader>
|
|
{{else}}
|
|
<div class="gh-dashboard-inner">
|
|
<GhCanvasHeader class="gh-canvas-header">
|
|
<h2 class="gh-canvas-title" data-test-screen-title>
|
|
Dashboard
|
|
</h2>
|
|
</GhCanvasHeader>
|
|
</div>
|
|
{{/if}}
|
|
<section class="gh-dashboard-layout">
|
|
{{#if this.isLoading }}
|
|
<GhLoadingSpinner />
|
|
{{else}}
|
|
{{#if this.areMembersEnabled}}
|
|
{{#if this.hasPaidTiers}}
|
|
<Dashboard::Charts::Overview />
|
|
{{/if}}
|
|
|
|
<div class="gh-dashboard-group {{if this.isTotalMembersZero 'is-zero'}}">
|
|
{{#if (feature 'sourceAttribution')}}
|
|
<Dashboard::Charts::AnchorAttribution />
|
|
{{else}}
|
|
<Dashboard::Charts::Anchor />
|
|
{{/if}}
|
|
{{#if (feature 'sourceAttribution')}}
|
|
{{#if this.hasPaidTiers}}
|
|
<section class="gh-dashboard-section">
|
|
<article class="gh-dashboard-box gh-dashboard-minicharts-attribution">
|
|
<Dashboard::Charts::PaidBreakdown />
|
|
<Dashboard::Charts::PaidMix />
|
|
</article>
|
|
</section>
|
|
{{/if}}
|
|
{{#unless this.membersUtils.isMembersInviteOnly}}
|
|
<Dashboard::Charts::Attribution />
|
|
{{/unless}}
|
|
{{/if}}
|
|
{{#if this.areNewslettersEnabled}}
|
|
<Dashboard::Charts::Engagement />
|
|
{{/if}}
|
|
|
|
{{#if this.isTotalMembersZero}}
|
|
<Dashboard::Parts::Zero />
|
|
{{/if}}
|
|
</div>
|
|
{{/if}}
|
|
|
|
<div class="gh-dashboard-recents-mentions">
|
|
<Dashboard::Charts::Recents />
|
|
</div>
|
|
|
|
<div class="gh-dashboard-split gh-dashboard-box is-secondary">
|
|
<Dashboard::Resources::Resources />
|
|
<Dashboard::Resources::Newsletter />
|
|
</div>
|
|
|
|
<Dashboard::Resources::ExploreFeed />
|
|
|
|
<div class="gh-dashboard-split gh-dashboard-box no-boarder">
|
|
<Dashboard::Resources::Community />
|
|
<Dashboard::Resources::WhatsNew />
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if (not (feature 'sourceAttribution'))}}
|
|
{{#unless this.isTotalMembersZero}}
|
|
<div class="gh-dashboard-select">
|
|
<PowerSelect
|
|
@selected={{this.selectedDaysOption}}
|
|
@options={{this.daysOptions}}
|
|
@searchEnabled={{false}}
|
|
@onChange={{this.onDaysChange}}
|
|
@triggerComponent={{component "gh-power-select/trigger"}}
|
|
@triggerClass="gh-contentfilter-menu-trigger"
|
|
@dropdownClass="gh-contentfilter-menu-dropdown is-narrow"
|
|
@matchTriggerWidth={{false}}
|
|
@horizontalPosition="right"
|
|
as |option|
|
|
>
|
|
{{#if option.name}}{{option.name}}{{else}}<span class="red">Unknown option</span>{{/if}}
|
|
</PowerSelect>
|
|
</div>
|
|
{{/unless}}
|
|
{{/if}}
|
|
</section>
|
|
|
|
{{#if (enable-developer-experiments)}}
|
|
<Dashboard::Prototype::ControlPanel />
|
|
{{/if}}
|
|
</div>
|
|
</section>
|