Sha256: c3373cf3d870125365713955164374c42c0626a6ce51ef5f15524847455687a8

Contents?: true

Size: 1.74 KB

Versions: 9

Compression:

Stored size: 1.74 KB

Contents

window.modal =
  i18n:
    loading: "Loading..."
    error: "Error."

  template: """
    <div id='modal' class='modal'>
      <div class='modal-overlay modal-close'></div>
      <button class='modal-close'></button>
      <div class='modal-body'>
        {{content}}
      </div>
    </div>
  """

  _generateModalHTML: (content) ->
    $(modal.template.replace("{{content}}", content))

  open: (content) ->
    modal.close()
    $("body").addClass("modal-open")
    $("body").append(modal._generateModalHTML(content))
    $(document).trigger("modal:open")

  close: ->
    $("#modal").remove()
    $("body").removeClass("modal-open")
    $(document).trigger("modal:close")
    return false

  openUrl: (url, type = "GET", data = {}) ->
    modal.open(modal.i18n.loading)

    $.ajax
      url: url
      type: type
      data: data
      dataType: "html"
      success: (data) ->
        modal.open(data)
      error: ->
        modal.open(modal.i18n.error)

  _callbacks:
    links: ->
      modal.openUrl(this.href)
      return false

    forms: ->
      modal.openUrl(this.href, this.action, $(this).serialize())
      return false

    escape: (event) ->
      modal.close() if event.keyCode == 27

  setup: ->
    $(document)
      .off("keyup", modal._callbacks.escape)
      .on("keyup", modal._callbacks.escape)

    $(".modal-close")
      .off("click", modal.close)
      .on("click", modal.close)

    $("a[data-modal=1], .modal-body a:not([data-modal=0])")
      .off("click", modal._callbacks.links)
      .on("click", modal._callbacks.links)

    $("form[data-modal=1], .modal-body form:not([data-modal=0])")
      .off("submit", modal._callbacks.forms)
      .on("submit", modal._callbacks.forms)


$(document).on "ready page:load modal:open", ->
  modal.setup()

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
dorsale-2.7.0 app/assets/javascripts/dorsale/modals.coffee
dorsale-2.6.8 app/assets/javascripts/dorsale/modals.coffee
dorsale-2.6.7 app/assets/javascripts/dorsale/modals.coffee
dorsale-2.6.6 app/assets/javascripts/dorsale/modals.coffee
dorsale-2.6.5 app/assets/javascripts/dorsale/modals.coffee
dorsale-2.6.4 app/assets/javascripts/dorsale/modals.coffee
dorsale-2.6.3 app/assets/javascripts/dorsale/modals.coffee
dorsale-2.6.2 app/assets/javascripts/dorsale/modals.coffee
dorsale-2.6.1 app/assets/javascripts/dorsale/modals.coffee