From 43e9b5101fc290db2ea1c2a9c3bfc3e11aee0e32 Mon Sep 17 00:00:00 2001 From: Patrick J Cherry Date: Tue, 4 Dec 2012 11:55:24 +0000 Subject: Added "eager" loading when looking at event histories. --- lib/mauve/history.rb | 10 ++++++++++ lib/mauve/web_interface.rb | 12 +++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/mauve/history.rb b/lib/mauve/history.rb index 674099f..fa5078d 100644 --- a/lib/mauve/history.rb +++ b/lib/mauve/history.rb @@ -116,6 +116,16 @@ module Mauve public + def cached_alerts + return @cached_alerts if defined? @cached_alerts + @cached_alerts = [] + end + + def reload + @cached_alerts = [] + super + end + # @return Log4r::Logger def logger Log4r::Logger.new self.class.to_s diff --git a/lib/mauve/web_interface.rb b/lib/mauve/web_interface.rb index 5bb339a..896b9cb 100644 --- a/lib/mauve/web_interface.rb +++ b/lib/mauve/web_interface.rb @@ -476,12 +476,13 @@ EOF query = {:alert => {}, :history => {}} query[:alert][:id] = params[:id] - query[:history][:type] = ["update", "notification"] + query[:history][:type] = ["update", "notification"] + query[:history][:order] = [:created_at.asc] @alert = Alert.get!(params['id']) @title += " Events: Alert #{@alert.alert_id} from #{@alert.source}" @alert_counts = alert_counts(false) - @events = AlertHistory.all(formulate_events_query(query)).history + @events = AlertHistory.all(formulate_events_query(query)) haml :events_list end @@ -527,14 +528,14 @@ EOF query = {:history => {}} query[:history][:created_at.gte] = Time.local(today.year, today.month, today.day, 0, 0, 0) query[:history][:created_at.lt] = Time.local(tomorrow.year, tomorrow.month, tomorrow.day, 0, 0, 0) + query[:history][:order] = [:created_at.asc] events = AlertHistory.all(formulate_events_query(query)) - event_week = ((today - start)/7).floor event_day = (today.wday == 0 ? 6 : (today.wday - 1)) @events_by_week[event_week] ||= Array.new(7) { Array.new } - @events_by_week[event_week][event_day] = (events.count == 0 ? [] : events.history) + @events_by_week[event_week][event_day] = events today = tomorrow end @@ -581,8 +582,9 @@ EOF query = {:history => {}} query[:history][:created_at.gte] = @start query[:history][:created_at.lt] = finish + query[:history][:order] = [:created_at.asc] - @events = AlertHistory.all(formulate_events_query(query)).history + @events = AlertHistory.all(formulate_events_query(query)) @alert_counts = alert_counts(false) haml :events_list -- cgit v1.2.1