From: Bryan Housel Date: Wed, 22 Jun 2016 17:08:27 +0000 (-0400) Subject: Add end dates to banners X-Git-Tag: live~3867^2~3 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/3e82a36743f1be6eda2098e9e050dd0c5edcda55 Add end dates to banners --- diff --git a/app/helpers/banner_helper.rb b/app/helpers/banner_helper.rb index b96409d1e..589df769a 100644 --- a/app/helpers/banner_helper.rb +++ b/app/helpers/banner_helper.rb @@ -1,32 +1,44 @@ module BannerHelper - # returns the least recently seen banner that is not hidden - def next_banner() - active_banners = { + def all_banners() + { :sotmus2016 => { :id => 'sotmus2016', :alt => 'State of the Map US 2016', :link => 'http://stateofthemap.us/', - :img => 'banners/sotmus-2016.jpg' + :img => 'banners/sotmus-2016.jpg', + :enddate => '2016-jul-23' }, :sotm2016 => { :id => 'sotm2016', :alt => 'State of the Map 2016', :link => 'http://2016.stateofthemap.org/', - :img => 'banners/sotm-2016.jpg' + :img => 'banners/sotm-2016.jpg', + :enddate => '2016-sep-23' } } + end + def active_banners() + all_banners().reject do |k,v| + enddate = v[:enddate] + parsed = (enddate and Date.parse enddate rescue nil) + parsed.is_a?(Date) and parsed.past? + end + end + + # returns the least recently seen banner that is not hidden + def next_banner() + banners = active_banners() bannerKey = nil cookieKey = nil queuePos = 9999 - active_banners.each do |k, v| + banners.each do |k, v| ckey = cookie_id(v[:id]).to_sym cval = cookies[ckey] || 0 next if cval == 'hide' - # rotate all banner queue positions index = cval.to_i if index > 0 @@ -42,8 +54,8 @@ module BannerHelper end unless bannerKey.nil? - cookies[cookieKey] = active_banners.length # bump to end of queue - active_banners[bannerKey] + cookies[cookieKey] = banners.length # bump to end of queue + banners[bannerKey] end end