Skip to content

Instantly share code, notes, and snippets.

@jaemo
Created July 24, 2015 19:36
Show Gist options
  • Save jaemo/64f0e726b4ea94b8fb79 to your computer and use it in GitHub Desktop.
Save jaemo/64f0e726b4ea94b8fb79 to your computer and use it in GitHub Desktop.

Revisions

  1. jaemo created this gist Jul 24, 2015.
    47 changes: 47 additions & 0 deletions tree.base.js.coffee
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,47 @@
    class @TreeBase
    max_levels = 3
    rebuild_url = '/admin/pages/rebuild'

    init: ->
    $('#pages_tree').nestedSortable
    disableNesting: 'no-nest'
    forcePlaceholderSize: true
    handle: 'div.page.sortable span.dragtab'
    helper: 'clone'
    items: 'li'
    maxLevels: @max_levels
    opacity: .6
    placeholder: 'placeholder'
    revert: 250
    tabSize: 25
    tolerance: 'pointer'
    toleranceElement: '> div'
    listType: 'ul'
    protectRoot: true
    update: (event, ui) =>
    parent_id = ui.item.parent().parent().attr('id')
    item_id = ui.item.attr('id')
    prev_id = ui.item.prev().attr('id')
    next_id = ui.item.next().attr('id')

    @rebuild item_id, parent_id, prev_id, next_id

    rebuild: (item_id, parent_id, prev_id, next_id) =>
    $.ajax
    type: 'POST'
    dataType: 'script'
    url: @rebuild_url
    data:
    id: item_id
    parent_id: parent_id
    prev_id: prev_id
    next_id: next_id

    beforeSend: (xhr) ->
    $('.nested_set i.handle').hide()

    success: (data, status, xhr) ->
    $('.nested_set i.handle').show()

    error: (xhr, status, error) ->
    alert error