moduleModalHelper#modals have a header, a body, a footer for options.defmodal_dialog(options={},&block)options={:id=>'modal',:size=>'',:show_close=>true,:dismiss=>true}.mergeoptionscontent_tag:div,:class=>"bootstrap-modal modal fade",:id=>options[:id]docontent_tag:div,:class=>"modal-dialog #{options['size']}"docontent_tag:div,:class=>"modal-content"domodal_header(options[:header],&block)+modal_body(options[:body],&block)+modal_footer(options[:footer],&block)endendendenddefmodal_header(options,&block)content_tag:div,:class=>'modal-header'doifoptions[:show_close]close_button(options[:dismiss])+content_tag(:h4,options[:title],:class=>'modal-title',&block)elsecontent_tag(:h4,options[:title],:class=>'modal-title',&block)endendenddefmodal_body(options,&block)content_tag:div,options[:content],:class=>'modal-body',:style=>options[:style],&blockenddefmodal_footer(options,&block)content_tag:div,options[:content],:class=>'modal-footer',&blockenddefclose_button(dismiss)#It doesn't seem to like content_tag, so we do this instead.raw("<button class=\"close\" data-dismiss=\"#{dismiss}\" aria-hidden=\"true\">×</button>")enddefmodal_toggle(content_or_options=nil,options,&block)ifblock_given?options=content_or_optionsifcontent_or_options.is_a?(Hash)default_options={:class=>'btn btn-default',"data-toggle"=>"modal","href"=>options[:dialog]}.merge(options)content_tag:a,nil,default_options,true,&blockelsedefault_options={:class=>'btn btn-default',"data-toggle"=>"modal","href"=>options[:dialog]}.merge(options)content_tag:a,content_or_options,default_options,trueendenddefmodal_cancel_button(content,options)default_opts={:class=>"btn bootstrap-modal-cancel-button"}content_tag_string"a",content,default_opts.merge(options)endend