Sha256: c1f1bc86e448e09cc26daab9fc45a1ab7baf500f6cc0e88b117776523ab669f8

Contents?: true

Size: 995 Bytes

Versions: 3

Compression:

Stored size: 995 Bytes

Contents

swapDirection = (sortDirection) ->
  if sortDirection == 'asc'
    sortDirection = 'desc'
  else
    sortDirection = 'asc'

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

paramsToString = (params)->
  str = []
  for param of params
    str.push(param + '=' + params[param])
  str.join('&')

initSorting = ->
  params = getUrlParams()

  params['direction'] ?= 'asc'

  $('.sort-button').click ->
    params['direction'] = if $(@).data('column') == params['sort']
      swapDirection(params['direction'])
    else
      'asc'

    params['sort'] = $(@).data('column')
    params['page'] ?= '1'

    query_string = paramsToString(params)

    Turbolinks.visit(window.location.pathname+'?'+query_string)

$ ->

  $(document).on('ready page:load', initSorting)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rademade_admin-0.0.3 app/assets/javascripts/rademade_admin/app/common/sort-list.coffee
rademade_admin-0.0.2 app/assets/javascripts/rademade_admin/app/common/sort-list.coffee
rademade_admin-0.0.1 app/assets/javascripts/rademade_admin/app/common/sort-list.coffee