class Admin::DashboardsController < ApplicationController include OrbitBackendHelper before_action :check_backend_openness layout "basic_back_end" def index apps = ['bulletin', 'page_context', 'web_link'] @module_app_contents, @module_app_contents_total = get_module_app_count(apps) @recent_updated = get_recently_updated(apps) @most_visited = get_most_visited(apps) render_401 and return if !current_user.is_approved? rescue false end def get_cpu_usage @usw = Usagewatch render :js => @usw.uw_cpuused.to_s end def get_mem_usage @usw = Usagewatch render :js => @usw.uw_memused.to_s end def get_disk_usage render :json => `df -m /home`.scan(/\d+%/).first.gsub('%','') rescue '0' end protected def get_module_app_count(args) a = {} total = 0 args.each do |module_app| module_app_class = module_app.classify.constantize rescue nil if !module_app_class.nil? count = module_app_class.count a.merge!(module_app => count) total += count end end [Kaminari.paginate_array(a.sort {|a,b| b[1]<=>a[1]}).page(params[:page]).per(5), total] end def get_recently_updated(args) a = {} args.each do |module_app| module_app_class = module_app.classify.constantize rescue nil if !module_app_class.nil? objects = module_app_class.order_by([:updated_at, :desc]).limit(20) objects.each do |object| a.merge!(object => object.updated_at) unless (object.archived rescue nil) end end end sorted_objects = a.sort {|a,b| b[1]<=>a[1]} sorted_objects[0..19] Kaminari.paginate_array(sorted_objects).page(params[:page]).per(5) end def get_most_visited(args) a = {} args.each do |module_app| module_app_class = module_app.classify.constantize rescue nil if !module_app_class.nil? objects = module_app_class.order_by([:view_count, :desc]).limit(20) objects.each do |object| a.merge!(object => object.view_count) if object.view_count > 0 && (!object.archived rescue true) end end end sorted_objects = a.sort {|a,b| b[1]<=>a[1]} sorted_objects[0..19] Kaminari.paginate_array(sorted_objects).page(params[:page]).per(5) end private def check_backend_openness if !current_site.backend_openness_on && current_user.blank? redirect_to new_session_path end end end