informar cuando no hay datos

This commit is contained in:
f 2021-10-08 18:35:40 -03:00
parent 38090d7de7
commit d2b1220df6
3 changed files with 28 additions and 0 deletions

View file

@ -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: %(<div id="%{id}" class="d-flex align-items-center justify-content-center" style="height: %{height}; width: %{width};">%{loading}</div>)
}
end
# Obtiene y valida los intervalos
#
# @return [Symbol]

View file

@ -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'

View file

@ -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'