diff --git a/app/controllers/news_controller.rb b/app/controllers/news_controller.rb index fdde9ee..b51962c 100644 --- a/app/controllers/news_controller.rb +++ b/app/controllers/news_controller.rb @@ -5,28 +5,55 @@ class NewsController < ApplicationController news = nil if params[:keywords] - news = NewsBulletin.where(:title.ne => "").any_of(:title => /#{params[:keywords].to_s}/i).is_approved.order_by(:created_at=>'desc').filter_by_categories(["all"]).per(15) if !params[:keywords].nil? + !params[:sort].blank? ? sort = {params[:sort].to_sym=>params[:order]} : sort = {:postdate=>"desc"} + news = NewsBulletin.where(:title.ne => "").any_of(:title => /#{params[:keywords].to_s}/i).is_approved.order_by(sort).filter_by_categories(["all"]).per(15) if !params[:keywords].nil? news_count = news.count keyword = params[:keywords] - elsif params["department"] + elsif params[:department] + !params[:sort].blank? ? sort = {params[:sort].to_sym=>params[:order]} : sort = {:postdate=>"desc"} dept = Department.find_by(:uid => params["department"].split("-").last) rescue nil - news = NewsBulletin.where(:title.ne => "" ,:department => dept).is_approved.order_by(:created_at=>'desc').filter_by_categories(["all"]) if !dept.nil? + news = NewsBulletin.where(:title.ne => "" ,:department => dept).is_approved.order_by(sort).filter_by_categories(["all"]) if !dept.nil? news_count = news.count - keyword = params[:department] - elsif params["unit"] + + keywords = params[:department].split("-") + keywords.delete(keywords.last) + if keywords.kind_of?(Array) + keyword = keywords.join("-") + else + keyword = keywords + end + + elsif params[:unit] unit = Unit.find_by(:uid => params["unit"].split("-").last) rescue nil - news = NewsBulletin.where(:title.ne => "" ,:unit => unit).is_approved.order_by(:created_at=>'desc').filter_by_categories(["all"]) if !unit.nil? + !params[:sort].blank? ? sort = {params[:sort].to_sym=>params[:order]} : sort = {:postdate=>"desc"} + news = NewsBulletin.where(:title.ne => "" ,:unit => unit).is_approved.order_by(sort).filter_by_categories(["all"]) if !unit.nil? news_count = news.count - keyword = params[:unit] + + keywords = params[:unit].split("-") + keywords.delete(keywords.last) + if keywords.kind_of?(Array) + keyword = keywords.join("-") + else + keyword = keywords + end elsif params["category"] + !params[:sort].blank? ? sort = {params[:sort].to_sym=>params[:order]} : sort = {:postdate=>"desc"} category = Category.find_by(:uid => params["category"].split("-").last) rescue nil - news = NewsBulletin.all.where(:title.ne => "").is_approved.order_by(:created_at=>'desc').filter_by_categories([category.id.to_s]) if !category.nil? + news = NewsBulletin.all.where(:title.ne => "").is_approved.order_by(sort).filter_by_categories([category.id.to_s]) if !category.nil? news_count = news.count - keyword = params[:category] + + keywords = params[:category].split("-") + keywords.delete(keywords.last) + if keywords.kind_of?(Array) + keyword = keywords.join("-") + else + keyword = keywords + end end - news = NewsBulletin.where(:title.ne => "" ,:is_preview.in=>[false,nil]).is_approved.order_by(:created_at=>'desc').filter_by_categories.filter_by_tags(OrbitHelper.params['tags']) if news.nil? + !params[:sort].blank? ? sort = {params[:sort].to_sym=>params[:order]} : sort = {:postdate=>"desc"} + news = NewsBulletin.where(:title.ne => "" ,:is_preview.in=>[false,nil]).is_approved.order_by(sort).filter_by_categories.filter_by_tags(OrbitHelper.params['tags']) if news.nil? page = Page.where(:module => "news").first rescue nil - ma = ModuleApp.find_by_key("news") rescue nil + ma = ModuleApp.find_by_key("news") rescue nil categories = ma.categories.enabled.collect do |cat| { "category-name" => cat.title,