backend/app/assets/javascripts/comable/admin/categories.coffee
window.add_comable_jstree_node = ($node = '#') ->
jstree = $('#comable-jstree').jstree(true)
new_node = jstree.create_node($node)
jstree.open_node($node) unless jstree.is_open($node)
jstree.rename_node(new_node, comable_new_node_label)
jstree.set_icon(new_node, 'fa fa-bars')
can_comable_jstree = ->
return false unless comable_jstree_json?
return false unless comable_new_node_label?
return false unless comable_action_new?
return false unless comable_action_edit?
return false unless comable_action_destroy?
return false unless comable_destroied_nodes?
return false unless $('#comable-jstree').length
true
initializa_comable_jstree = ->
return unless can_comable_jstree()
$comable_jstree = $('#comable-jstree')
$comable_jstree.jstree({
core: {
check_callback: true,
data: comable_jstree_json,
strings : { new_node: comable_new_node_label, icon: 'fa fa-bars' }
},
contextmenu: {
items: ($node) ->
_this = $comable_jstree.jstree(true)
{
create: {
label: comable_action_new,
action: -> create_new_node($node)
}
edit: {
label: comable_action_edit,
action: -> _this.edit($node)
}
destory: {
label: comable_action_destroy,
action: ->
comable_destroied_nodes.push { _destroy: $node.id }
_this.delete_node($node)
}
}
},
plugins: ['dnd', 'wholerow', 'contextmenu']
})
$('form').submit(->
json = $comable_jstree.jstree(true).get_json().concat(comable_destroied_nodes)
json_string = JSON.stringify(json)
$(this).find('#jstree_json').val(json_string)
)
$(document).ready(->
initializa_comable_jstree()
)