app/controllers/nodes/application_controller.rb in nodes-0.2.3 vs app/controllers/nodes/application_controller.rb in nodes-0.2.4

- old
+ new

@@ -1,5 +1,46 @@ module Nodes class ApplicationController < ActionController::Base protect_from_forgery with: :exception + + def init + @controller = params[:controller] + if not %w(site user_sessions).include?(@controller) + @object_name = @controller.singularize + @model = @controller.singularize.split('/').map {|c| c.capitalize}.join('::').constantize if @controller + @object = @model.find_by_id(params[:id]) if (params[:id] && @model) + end + end + + # ASC | DESC + def sort + if session[:sort] == params[:field] #change sort direction + if session[:sort_direction] == 'DESC' + session[:sort_direction] = 'ASC' + else + session[:sort_direction] = 'DESC' + end + else # create new sort direction + session[:sort] = params[:field] + session[:sort_direction] = 'ASC' + end + + list = @model.all + if session[:sort_direction] == 'ASC' + list.to_a.sort! do |one, two| + a = one.send(session[:sort]) + b = two.send(session[:sort]) + (a and b) ? a <=> b : (a ? -1 : 1) + end + else + list.to_a.sort! do |one, two| + a = one.send(session[:sort]) + b = two.send(session[:sort]) + (b and a) ? b <=> a : (b ? -1 : 1) + end + end + instance_variable_set("@#{@controller}", list) + render action: :index + end + end end