mirror of
https://github.com/TracksApp/tracks.git
synced 2025-09-21 21:40:48 +02:00
35 lines
1.1 KiB
Ruby
35 lines
1.1 KiB
Ruby
module BootstrapFlashHelper
|
|
ALERT_MAPPING = {
|
|
:notice => :success,
|
|
:alert => :danger,
|
|
:error => :danger,
|
|
:info => :info,
|
|
:warning => :warning
|
|
}.freeze unless const_defined?(:ALERT_MAPPING)
|
|
|
|
def bootstrap_flash(options = { :close_button => true })
|
|
flash_messages = []
|
|
flash.each do |type, message|
|
|
# Skip empty messages, e.g. for devise messages set to nothing in a locale file.
|
|
next if message.blank?
|
|
type = type.to_sym
|
|
next unless ALERT_MAPPING.keys.include?(type)
|
|
|
|
tag_class = options.extract!(:class)[:class]
|
|
tag_options = {
|
|
class: "alert fade in alert-#{ALERT_MAPPING[type]} #{tag_class}"
|
|
}.merge(options)
|
|
|
|
close_button = ""
|
|
if options[:close_button]
|
|
close_button = content_tag(:button, raw("×"), type: "button", class: "close", "data-dismiss" => "alert")
|
|
end
|
|
|
|
Array(message).each do |msg|
|
|
text = content_tag(:div, close_button + msg, tag_options)
|
|
flash_messages << text if msg
|
|
end
|
|
end
|
|
flash_messages.join("\n").html_safe
|
|
end
|
|
end
|