Sha256: 39e2c66f9604346dcb84aa570b68005ddc524b988a939b8269ff2eeb177e002a

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

class LoadMoreBtn
  @defaults:
    container: '.long_long_list'
    button:    '.show_more'
    onStart:   null
    onRender:  null
    onFinish:  null
    onFail:    null

  @loadData: (attrs) ->
    attrs['onStart'].call() if attrs['onStart']
    $.ajax
      url: $(attrs['button']).attr('href')
      type: "GET"
      dataType: "HTML"
      success: (data) =>
        attrs['onRender'].call() if attrs['onRender']
        @insertItems(data, attrs)
        attrs['onFinish'].call() if attrs['onFinish']

      fail: (err)=>
        attrs['onFail'].call() if attrs['onFail']
        attrs['onFinish'].call() if attrs['onFinish']

  @insertItems: (raw, attrs)->
    data = $(raw)
    nodes = data.find(attrs['container']).children()
    $.each nodes, (index, _item)=>
      item = $(_item)
      if item.find(attrs['button']).length > 0
        btn = item
      else
        $(attrs['container']).append(item)
    @updateBtn data, attrs

  @updateBtn: (data, attrs)->
    if data
      btn = data.find(attrs['button'])
      if btn.length > 0
        $(attrs['button']).attr('href', btn.attr('href'))
      else
        $(attrs['button']).remove()
    else
      $(attrs['button']).remove()

  @process: (attrs)->
    attrs = $.extend(true, @defaults, attrs)
    @loadData(attrs)


window.LoadMoreBtn = LoadMoreBtn

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
translation_cms-0.1.5 app/assets/javascripts/utils/load_more_btn.js.coffee