From ad95c24307579436aff978c11f91577bfdbec2eb Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX <j.jaffeux@gmail.com> Date: Wed, 25 Jul 2018 14:28:41 -0400 Subject: [PATCH] FEATURE: displays a notice if report has no data (#6178) --- .../javascripts/admin/components/admin-report.js.es6 | 2 ++ .../admin/templates/components/admin-report.hbs | 10 ++++++++-- app/assets/stylesheets/common/admin/admin_report.scss | 9 +++++++++ config/locales/client.en.yml | 1 + test/javascripts/components/admin-report-test.js.es6 | 8 ++++++++ 5 files changed, 28 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/admin/components/admin-report.js.es6 b/app/assets/javascripts/admin/components/admin-report.js.es6 index 8567bed16d0..67d5b573782 100644 --- a/app/assets/javascripts/admin/components/admin-report.js.es6 +++ b/app/assets/javascripts/admin/components/admin-report.js.es6 @@ -111,6 +111,8 @@ export default Ember.Component.extend({ showTimeoutError: Ember.computed.alias("model.timeout"), + hasData: Ember.computed.notEmpty("model.data"), + @computed("dataSourceName", "model.type") dasherizedDataSourceName(dataSourceName, type) { return (dataSourceName || type || "undefined").replace(/_/g, "-"); diff --git a/app/assets/javascripts/admin/templates/components/admin-report.hbs b/app/assets/javascripts/admin/templates/components/admin-report.hbs index 4c387c9f099..2f0429854e5 100644 --- a/app/assets/javascripts/admin/templates/components/admin-report.hbs +++ b/app/assets/javascripts/admin/templates/components/admin-report.hbs @@ -67,8 +67,14 @@ <div class="report-body"> {{#unless showTimeoutError}} - {{#if currentMode}} - {{component modeComponent model=model options=options}} + {{#if hasData}} + {{#if currentMode}} + {{component modeComponent model=model options=options}} + {{/if}} + {{else}} + <div class="alert alert-info no-data-alert"> + {{i18n 'admin.dashboard.reports.no_data'}} + </div> {{/if}} {{/unless}} diff --git a/app/assets/stylesheets/common/admin/admin_report.scss b/app/assets/stylesheets/common/admin/admin_report.scss index 8382d381160..1ced78a4e6d 100644 --- a/app/assets/stylesheets/common/admin/admin_report.scss +++ b/app/assets/stylesheets/common/admin/admin_report.scss @@ -1,4 +1,13 @@ .admin-report { + .no-data-alert { + width: 100%; + align-self: flex-start; + } + + .conditional-loading-section { + width: 100%; + } + .report-header { display: flex; justify-content: space-between; diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index fd8245a8fa3..17e2fc9f73a 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -2811,6 +2811,7 @@ en: disabled: "This report is disabled" totals_for_sample: "Totals for sample" total: "All time total" + no_data: "No data to display." trending_search: more: '<a href="/admin/logs/search_logs">Search logs</a>' disabled: 'Trending search report is disabled. Enable <a href="/admin/site_settings/category/all_results?filter=log%20search%20queries">log search queries</a> to collect data.' diff --git a/test/javascripts/components/admin-report-test.js.es6 b/test/javascripts/components/admin-report-test.js.es6 index 900886db887..faf7929511c 100644 --- a/test/javascripts/components/admin-report-test.js.es6 +++ b/test/javascripts/components/admin-report-test.js.es6 @@ -115,3 +115,11 @@ componentTest("timeout", { assert.ok(exists(".alert-error"), "it displays a timeout error"); } }); + +componentTest("no data", { + template: "{{admin-report dataSourceName='posts'}}", + + test(assert) { + assert.ok(exists(".no-data-alert"), "it displays a no data alert"); + } +});