Sha256: 0408d744e91dbc8eb44e30f0a35f52e84582c1845aeba0e9697adf5c4461af8f

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

getUrlParams = ->
  pl = /\+/g
  search = /([^&=]+)=?([^&]*)/g

  decode = (s) ->
    decodeURIComponent s.replace(pl, " ")

  query = window.location.search.substring(1)
  urlParams = {}
  urlParams[decode(match[1])] = decode(match[2]) while match = search.exec(query)

  urlParams


initSelect = ->
  $item = $('.select2-add-link')
  url = $item.data('relListUrl')

  $item.select2(
    multiple : false
    placeholder : 'Enter search phrase'

    initSelection : (element, callback) ->
      ids = element.val().replace(/\s*/g, '').split(',')
      $.getJSON(url, {search : {id : ids}}).done (data) ->
        data = if isMultiple then data else data[0]
        $item.select2('enable', true)
        callback(data)

    ajax :
      url : url
      dataType : 'json'
      data : (term) -> {q: term}
      results : (data) -> {results: data}
  ).on 'change', (e) ->
    sendNew(e.added)


sendNew = (added) ->
  $.ajax
    url : ajax_link(added.id)
    type : 'PUT'
    data : getUrlParams()
    success : ->
      location.reload()


ajax_link = (id) ->
  location.href.substring(0, location.href.indexOf(location.search)) + '/' + id + '/link_relation'


$ ->
  $(document)
    .on('ready page:load init-select', initSelect)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rademade_admin-0.0.1 app/assets/javascripts/rademade_admin/app/common/related-index.coffee