From d2b1220df6f74ef46486beeb49ce9b1fd833658d Mon Sep 17 00:00:00 2001 From: f Date: Fri, 8 Oct 2021 18:35:40 -0300 Subject: [PATCH] informar cuando no hay datos --- app/controllers/stats_controller.rb | 24 ++++++++++++++++++++++++ config/locales/en.yml | 2 ++ config/locales/es.yml | 2 ++ 3 files changed, 28 insertions(+) diff --git a/app/controllers/stats_controller.rb b/app/controllers/stats_controller.rb index 0c185329..9cd1e5de 100644 --- a/app/controllers/stats_controller.rb +++ b/app/controllers/stats_controller.rb @@ -3,6 +3,8 @@ # Estadísticas del sitio class StatsController < ApplicationController include Pundit + include ActionView::Helpers::DateHelper + before_action :authenticate_usuarie! before_action :authorize_stats @@ -18,6 +20,7 @@ class StatsController < ApplicationController @chart_params = { interval: interval } hostnames last_stat + chart_options end # Genera un gráfico de visitas por dominio asociado a este sitio @@ -51,6 +54,27 @@ class StatsController < ApplicationController @hostnames ||= [@site.hostname, @site.alternative_hostnames].flatten end + # Opciones por defecto para los gráficos. + # + # La invitación a volver dentro de X tiempo es para dar un estimado de + # cuándo habrá información disponible, porque Rollup genera intervalos + # completos (¿aunque dice que no?) + # + # La diferencia se calcula sumando el intervalo a la hora de última + # toma de estadísticas y restando el tiempo que pasó desde ese + # momento. + def chart_options + time = last_stat.created_at + (1.send(interval)) + please_return_at = { please_return_at: distance_of_time_in_words(Time.now, time) } + + @chart_options ||= { + locale: I18n.locale, + empty: I18n.t('stats.index.empty', **please_return_at), + loading: I18n.t('stats.index.loading'), + html: %(
%{loading}
) + } + end + # Obtiene y valida los intervalos # # @return [Symbol] diff --git a/config/locales/en.yml b/config/locales/en.yml index 623d8c2e..58e0e726 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -253,6 +253,8 @@ en: These statistics show information about how your site is generated and how many resources it uses. last_update: 'Updated every hour. Last update on ' + empty: 'There is no enough information yet. We invite you to come back in %{please_return_at}!' + loading: 'Loading...' hour: 'Hourly' day: 'Daily' week: 'Weekly' diff --git a/config/locales/es.yml b/config/locales/es.yml index 4085a862..8df68896 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -258,6 +258,8 @@ es: Las estadísticas visibilizan información sobre cómo se genera y cuántos recursos utiliza tu sitio. last_update: 'Actualizadas cada hora. Última actualización hace ' + empty: 'Todavía no hay información suficiente. Te invitamos a volver en %{please_return_at} :)' + loading: 'Cargando...' hour: 'Por hora' day: 'Diarias' week: 'Semanales'