Sha256: 0dbf7b6734da1ce1be2ebf7dc66e4707f87d765d4a9ec85e05620942ae107681

Contents?: true

Size: 1.2 KB

Versions: 29

Compression:

Stored size: 1.2 KB

Contents

class Para.ResourceTable
  constructor: (@$table) ->
    @$tbody = @$table.find('tbody')
    @initializeOrderable()

  initializeOrderable: ->
    @orderable = @$table.hasClass('orderable')

    return unless @orderable

    @orderUrl = @$table.data('order-url')

    @$tbody.sortable
      handle: '.order-anchor'
      forcePlaceholderSize: true
      items: 'tr'
      placeholder: "<tr><td colspan=\"100%\" class=\"sortable-placeholder\"></td></tr>"

    @$tbody.on('sortupdate', $.proxy(@sortUpdate, this))

  sortUpdate: ->
    @$tbody.find('tr').each (i, el) ->
      $(el).find('.resource-position-field').val(i)

    @updateOrder()

  updateOrder: ->
    Para.ajax(
      url: @orderUrl
      method: 'patch'
      data:
        resources: @buildOrderedData()
      success: $.proxy(@orderUpdated, this)
    )

  buildOrderedData: ->
    for i, field of @$tbody.find('.resource-position-field').get()
      $field = $(field)
      { id: $field.closest('.order-anchor').data('id'), position: $field.val() }

  orderUpdated: ->
    # TODO: Add flash message to display ordering success

$(document).on 'page:change turbolinks:load', ->
  $('.para-component-relation-table').each (i, el) ->
    new Para.ResourceTable($(el))

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
para-0.8.7 app/assets/javascripts/para/admin/table.coffee
para-0.8.5 app/assets/javascripts/para/admin/table.coffee
para-0.8.3.3 app/assets/javascripts/para/admin/table.coffee
para-0.8.3.2 app/assets/javascripts/para/admin/table.coffee
para-0.8.3.1 app/assets/javascripts/para/admin/table.coffee
para-0.8.3 app/assets/javascripts/para/admin/table.coffee
para-0.8.2.3 app/assets/javascripts/para/admin/table.coffee
para-0.8.2.2 app/assets/javascripts/para/admin/table.coffee
para-0.8.2.1 app/assets/javascripts/para/admin/table.coffee
para-0.8.2 app/assets/javascripts/para/admin/table.coffee
para-0.8.1 app/assets/javascripts/para/admin/table.coffee
para-0.8.0 app/assets/javascripts/para/admin/table.coffee
para-0.7.4.p1 app/assets/javascripts/para/admin/table.coffee
para-0.7.4 app/assets/javascripts/para/admin/table.coffee
para-0.7.3.p6 app/assets/javascripts/para/admin/table.coffee
para-0.7.3.p5 app/assets/javascripts/para/admin/table.coffee
para-0.7.3.p4 app/assets/javascripts/para/admin/table.coffee
para-0.7.3.p3 app/assets/javascripts/para/admin/table.coffee
para-0.7.3.p2 app/assets/javascripts/para/admin/table.coffee
para-0.7.3.p1 app/assets/javascripts/para/admin/table.coffee