Refactor banner logic into BannerHelper module

This commit is contained in:
Bryan Housel 2016-06-22 08:19:13 -04:00
parent 933335a0ea
commit e14ec1547e
2 changed files with 56 additions and 39 deletions

View file

@ -1,41 +1,4 @@
<% active_banners = {
:sotmus2016 => {
:alt => 'State of the Map US 2016',
:link => 'http://stateofthemap.us/',
:img => 'banners/sotmus-2016.jpg'
},
:sotm2016 => {
:alt => 'State of the Map 2016',
:link => 'http://2016.stateofthemap.org/',
:img => 'banners/sotm-2016.jpg'
}
}
bannerSym = nil
cookieStr = nil
queuePos = 9999
# pick least recently seen banner that is not hidden
active_banners.each_key do |k|
c = '_osm_banner_' + k.to_s
val = cookies[c.to_sym] || 0
next if val == 'hide'
if val.to_i > 0
cookies[c.to_sym] = val.to_i - 1
end
if val.to_i <= queuePos
bannerSym = k
cookieStr = c
queuePos = val.to_i
end
end
unless bannerSym.nil?
banner = active_banners[bannerSym]
cookies[cookieStr.to_sym] = active_banners.length # bump to end of queue
%>
<% unless (banner = next_banner()).nil? %>
<%= link_to (image_tag banner[:img], :alt => banner[:alt], :title => banner[:alt]), banner[:link] %>
<div class="close-wrap" id="<%= cookieStr %>"><span class="icon close"></span></div>
<div class="close-wrap" id="<%= cookie_id(banner[:id]) %>"><span class="icon close"></span></div>
<% end %>