discourse/app/assets/javascripts/admin/templates/dashboard_general.hbs
Joffrey JAFFEUX 6102c287f7
FIX: prevents i18n helper to return a SafeString (#9191)
For convenience the i18n helper has been made returning a SafeString, but when used with other helpers, a String is expected and will cause unexpected behaviors.

This is the root cause of the initial bug fixed in d2bb127e2c

This commit is kept as it's a better security in case of unexpected behavior.
2020-03-12 16:50:20 +01:00

151 lines
4.9 KiB
Handlebars

{{#conditional-loading-spinner condition=isLoading}}
{{plugin-outlet name="admin-dashboard-general-top"}}
<div class="community-health section">
<div class="period-section">
<div class="section-title">
<h2>
<a href={{get-url '/admin/dashboard/reports'}}>
{{i18n "admin.dashboard.community_health"}}
</a>
</h2>
{{period-chooser period=period action=(action "changePeriod") content=availablePeriods fullDay=true}}
</div>
<div class="section-body">
<div class="charts">
{{admin-report
dataSourceName="consolidated_page_views"
forcedModes="stacked-chart"
filters=filters}}
{{admin-report
dataSourceName="signups"
showTrend=true
forcedModes="chart"
filters=filters}}
{{admin-report
dataSourceName="topics"
showTrend=true
forcedModes="chart"
filters=filters}}
{{admin-report
dataSourceName="posts"
showTrend=true
forcedModes="chart"
filters=filters}}
{{admin-report
dataSourceName="dau_by_mau"
showTrend=true
forcedModes="chart"
filters=filters}}
{{admin-report
dataSourceName="daily_engaged_users"
showTrend=true
forcedModes="chart"
filters=filters}}
{{admin-report
dataSourceName="new_contributors"
showTrend=true
forcedModes="chart"
filters=filters}}
</div>
</div>
</div>
</div>
<div class="section-columns">
<div class="section-column">
{{#if activityMetrics.length}}
<div class="admin-report activity-metrics">
<div class="header">
<ul class="breadcrumb">
<li class="item report">
{{#link-to "adminReports" class="report-url"}}
{{i18n "admin.dashboard.activity_metrics"}}
{{/link-to}}
</li>
</ul>
</div>
<div class="report-body">
<div class="counters-list">
<div class="counters-header">
<div class="counters-cell"></div>
<div class="counters-cell">{{i18n 'admin.dashboard.reports.today'}}</div>
<div class="counters-cell">{{i18n 'admin.dashboard.reports.yesterday'}}</div>
<div class="counters-cell">{{i18n 'admin.dashboard.reports.last_7_days'}}</div>
<div class="counters-cell">{{i18n 'admin.dashboard.reports.last_30_days'}}</div>
</div>
{{#each activityMetrics as |metric|}}
{{admin-report
showHeader=false
filters=activityMetricsFilters
forcedModes="counters"
dataSourceName=metric}}
{{/each}}
</div>
</div>
</div>
{{/if}}
<div class="user-metrics">
{{#conditional-loading-section isLoading=isLoading}}
{{admin-report
forcedModes="inline-table"
dataSourceName="users_by_type"}}
{{admin-report
forcedModes="inline-table"
dataSourceName="users_by_trust_level"}}
{{/conditional-loading-section}}
</div>
<div class="misc">
{{admin-report
forcedModes="storage-stats"
dataSourceName="storage_stats"
showHeader=false}}
<div class="last-dashboard-update">
<div>
<h4>{{i18n "admin.dashboard.last_updated"}} </h4>
<p>{{format-date model.attributes.updated_at leaveAgo="true"}}</p>
</div>
{{#if model.attributes.discourse_updated_at}}
<div>
<h4>{{i18n "admin.dashboard.discourse_last_updated"}} </h4>
<p>{{format-date model.attributes.discourse_updated_at leaveAgo="true"}}</p>
<a rel="noopener" target="_blank" href={{model.attributes.release_notes_link}} class="btn btn-default">
{{i18n "admin.dashboard.whats_new_in_discourse"}}
</a>
</div>
{{/if}}
</div>
</div>
</div>
<div class="section-column">
{{admin-report
filters=topReferredTopicsFilters
dataSourceName="top_referred_topics"
reportOptions=topReferredTopicsOptions}}
{{admin-report
dataSourceName="trending_search"
reportOptions=trendingSearchOptions
filters=trendingSearchFilters
isEnabled=logSearchQueriesEnabled
disabledLabel=trendingSearchDisabledLabel}}
{{html-safe (i18n "admin.dashboard.reports.trending_search.more" basePath=basePath)}}
</div>
</div>
{{plugin-outlet name="admin-dashboard-general-bottom"}}
{{/conditional-loading-spinner}}