diff --git a/ghost/admin/app/controllers/dashboard-labs.js b/ghost/admin/app/controllers/dashboard-labs.js index ec9794648a..40b6c67a5b 100644 --- a/ghost/admin/app/controllers/dashboard-labs.js +++ b/ghost/admin/app/controllers/dashboard-labs.js @@ -112,10 +112,13 @@ export default class DashboardController extends Controller { const dateValues = Object.values(statsDateObj); const currentAllCount = dateValues.length ? dateValues[dateValues.length - 1].total : 0; const currentPaidCount = dateValues.length ? dateValues[dateValues.length - 1].paid : 0; + const currentFreeCount = dateValues.length ? dateValues[dateValues.length - 1].free : 0; const rangeStartAllCount = dateValues.length ? dateValues[0].total : 0; const rangeStartPaidCount = dateValues.length ? dateValues[0].paid : 0; + const rangeStartFreeCount = dateValues.length ? dateValues[0].free : 0; const allCountPercentGrowth = rangeStartAllCount !== 0 ? ((currentAllCount - rangeStartAllCount) / rangeStartAllCount) * 100 : 0; const paidCountPercentGrowth = rangeStartPaidCount !== 0 ? ((currentPaidCount - rangeStartPaidCount) / rangeStartPaidCount) * 100 : 0; + const freeCountPercentGrowth = rangeStartFreeCount !== 0 ? ((currentFreeCount - rangeStartFreeCount) / rangeStartFreeCount) * 100 : 0; this.memberCountStatsData = { all: { @@ -147,6 +150,21 @@ export default class DashboardController extends Controller { }, title: 'Paid Members', stats: stats + }, + free: { + percentGrowth: freeCountPercentGrowth.toFixed(1), + percentClass: (freeCountPercentGrowth > 0 ? 'positive' : (freeCountPercentGrowth < 0 ? 'negative' : '')), + total: dateValues.length ? dateValues[dateValues.length - 1].free : 0, + options: { + rangeInDays: 30 + }, + data: { + label: 'Members', + dateLabels: Object.keys(statsDateObj), + dateValues: dateValues.map(d => d.paid) + }, + title: 'Free Members', + stats: stats } }; } diff --git a/ghost/admin/app/templates/dashboard-labs.hbs b/ghost/admin/app/templates/dashboard-labs.hbs index 71c2cc85e7..f11056623b 100644 --- a/ghost/admin/app/templates/dashboard-labs.hbs +++ b/ghost/admin/app/templates/dashboard-labs.hbs @@ -108,25 +108,24 @@
- {{#if this.newsletterOpenRatesLoading}} + {{#if this.memberCountStatsLoading}} Loading... {{else}} - {{#if this.newsletterOpenRatesError}} + {{#if this.memberCountStatsError}}

- There was an error loading newsletter open rates + There was an error loading free members {{this.memberCountStatsData.message}}

{{else}}
-

Email open rate

- +

Free members

-
{{this.newsletterOpenRatesData.current}}%
-
{{this.newsletterOpenRatesData.percentGrowth}}%
+
{{format-number this.memberCountStatsData.free.total}}
+
{{this.memberCountStatsData.free.percentGrowth}}%
- +
{{/if}} {{/if}} @@ -314,6 +313,33 @@
{{/if}} +
+
+ {{#if this.newsletterOpenRatesLoading}} + Loading... + {{else}} + {{#if this.newsletterOpenRatesError}} +

+ There was an error loading newsletter open rates + {{this.memberCountStatsData.message}} +

+ {{else}} +
+

Email open rate

+ +
+
{{this.newsletterOpenRatesData.current}}%
+
{{this.newsletterOpenRatesData.percentGrowth}}%
+
+
+
+ +
+ {{/if}} + {{/if}} +
+
+ {{#unless (and this.session.user.isOwnerOnly (not this.feature.launchComplete))}}

Activity feed