Class: Symphonia::ApplicationHelper::SymphoniaModalDialog

Inherits:
Object
  • Object
show all
Defined in:
app/helpers/symphonia/application_helper.rb

Overview

def render_modal_dialog(show = true, options = {}, &block)

tags = SymphoniaModalDialog.new(self, options)
yield tags if block_given?
html = tags.to_html
if show
  "$('##{tags.modal_id}').remove();$('body').append('#{j html}'); showModal('##{tags.modal_id}');".html_safe
else
  html
end

end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(controller, options = {}) ⇒ SymphoniaModalDialog

Returns a new instance of SymphoniaModalDialog.



333
334
335
336
337
338
339
# File 'app/helpers/symphonia/application_helper.rb', line 333

def initialize(controller, options = {})
  @c = controller
  @title = options.delete(:title)
  @modal_id = options.delete(:id) || "modal-dialog"
  @form_options = options.delete(:form_options) || {}
  @options = options
end

Instance Attribute Details

#bodyObject



364
365
366
367
368
369
370
# File 'app/helpers/symphonia/application_helper.rb', line 364

def body(&)
  @body = if block_given?
            @c.capture(&)
          else
            (@body.is_a?(Proc) ? @body.call.to_s : @body.to_s)
          end
end


372
373
374
375
376
377
378
# File 'app/helpers/symphonia/application_helper.rb', line 372

def footer(&)
  @footer = if block_given?
              @c.capture(&)
            else
              (@footer.is_a?(Proc) ? @footer.call.to_s : @footer.to_s)
            end
end

Returns the value of attribute modal_id.



331
332
333
# File 'app/helpers/symphonia/application_helper.rb', line 331

def modal_id
  @modal_id
end

#sizeObject

Returns the value of attribute size.



330
331
332
# File 'app/helpers/symphonia/application_helper.rb', line 330

def size
  @size
end

#titleObject

Returns the value of attribute title.



330
331
332
# File 'app/helpers/symphonia/application_helper.rb', line 330

def title
  @title
end

Instance Method Details

#headerObject



356
357
358
359
360
361
362
# File 'app/helpers/symphonia/application_helper.rb', line 356

def header(&)
  @header = if block_given?
              @c.capture(&)
            else
              (@header.is_a?(Proc) ? @header.call.to_s : @header.to_s)
            end
end

#submit(name = nil, options = {}) ⇒ Object



380
381
382
383
# File 'app/helpers/symphonia/application_helper.rb', line 380

def submit(name = nil, options = {})
  name ||= @c.t(:button_save)
  @footer = footer.to_s + @c.link_to(name, "javascript:void(0)", { onclick: "$('##{@modal_id}').find('form').submit()", class: "btn btn-primary" }.merge(options)).html_safe
end

#to_htmlObject



343
344
345
346
347
348
349
350
351
352
353
354
# File 'app/helpers/symphonia/application_helper.rb', line 343

def to_html
  html = "<div id='#{@modal_id}' style='' class='modal fade' role='dialog'><div class='modal-dialog #{'modal-lg' if size.present?}'><div class='modal-content'>"
  html << @c.tag.div(class: "modal-header") do
    @c.tag.button("", :class => "close fa fa-times", :data => { dismiss: "modal" }, "aria-hidden" => true) + @c.tag.h4(@title, class: "modal-title") + @header.to_s
  end
  content = @c.tag.div(@c.tag.div(body.html_safe, class: "modal-content-inner-container container-fluid"), class: "modal-body")
  content << @c.tag.div(footer.html_safe, class: "modal-footer")

  html << content.html_safe
  html << "</div></div></div>"
  html.html_safe
end