display_content_plugin_module.rb
909 Bytes
module DisplayContentPluginController
def index
block = boxes_holder.blocks.find(params[:block_id])
articles = block.articles_of_parent(params[:id])
data = []
data = data + get_node(block, articles)
render :json => data
end
protected
def get_node(block, articles)
nodes = []
articles.map do |article|
node = {}
node[:data] = article.title
node[:attr] = { 'node_id' => article.id, 'parent_id' => article.parent_id}
if block.nodes.include?(article.id)
node[:attr].merge!('class' => 'jstree-checked')
elsif block.parent_nodes.include?(article.id)
node[:children] = get_node(block, article.children)
node[:attr].merge!('class' => 'jstree-undetermined')
end
node[:state] = 'closed' if Article.exists?(:parent_id => article.id)
nodes.push(node)
end
nodes
end
end