module TheSortableTreeController # include TheSortableTreeController::ReversedRebuild # include TheSortableTreeController::Rebuild module DefineVariablesMethod public def the_define_common_variables collection = self.class.to_s.split(':').last.sub(/Controller/,"").underscore.downcase # recipes variable = collection.singularize # recipe klass = variable.classify.constantize # Recipe ["@#{variable}", collection, klass] end end#DefineVariablesMethod module Rebuild include DefineVariablesMethod public def rebuild id = !params[:id].nil? ? params[:id].sub("_menuitem","") : "" parent_id = !params[:parent_id].nil? ? params[:parent_id].sub("_menuitem","") : "" prev_id = !params[:prev_id].nil? ? params[:prev_id].sub("_menuitem","") : "" next_id = !params[:next_id].nil? ? params[:next_id].sub("_menuitem","") : "" render :text => "Do nothing" and return if parent_id.empty? && prev_id.empty? && next_id.empty? variable, collection, klass = self.the_define_common_variables variable = self.instance_variable_set(variable, klass.find(id)) if prev_id.empty? && next_id.empty? variable.move_to_child_of klass.find(parent_id) elsif !prev_id.empty? variable.move_to_right_of klass.find(prev_id) elsif !next_id.empty? variable.move_to_left_of klass.find(next_id) end render(:nothing => true) end end#Rebuild module ReversedRebuild include DefineVariablesMethod public def rebuild id = !params[:id].nil? ? params[:id].sub("_menuitem","") : "" parent_id = !params[:parent_id].nil? ? params[:parent_id].sub("_menuitem","") : "" prev_id = !params[:prev_id].nil? ? params[:prev_id].sub("_menuitem","") : "" next_id = !params[:next_id].nil? ? params[:next_id].sub("_menuitem","") : "" render :text => "Do nothing" and return if parent_id.empty? && prev_id.empty? && next_id.empty? variable, collection, klass = self.the_define_common_variables variable = self.instance_variable_set(variable, klass.find(id)) if prev_id.empty? && next_id.empty? variable.move_to_child_of klass.find(parent_id) elsif !prev_id.empty? variable.move_to_left_of klass.find(prev_id) elsif !next_id.empty? variable.move_to_right_of klass.find(next_id) end render(:nothing => true) end end#ReversedRebuild end