class PersonalDiplomasController < ApplicationController def index diplomas = Diploma.where(:is_hidden=>false).order_by(:end_date=>'desc', :start_date=>'desc').page(OrbitHelper.params[:page_no]).per(OrbitHelper.page_data_count) fields_to_show = Page.where(:page_id => params[:page_id]).first.custom_array_field rescue [] if fields_to_show.blank? fields_to_show = [ "name", "duration", "school_name", "degree" ] end diploma_list = diplomas.collect do |diploma| { "member" => (diploma.member_profile.name rescue ""), "duration" => diploma.duration, "school_name" => diploma.school_name, "degree" => diploma.degree, "link_to_show" => OrbitHelper.url_to_show(diploma.to_param) } end diploma_list = [] diplomas.each do |diploma| t = [] fields_to_show.each do |fs| case fs when "name" t << {"value" => (diploma.member_profile.name rescue "")} when "degree" t << {"value" => "" + (diploma.send(fs) rescue "") + ""} when "start_date" t << {"value" => (diploma.start_date.strftime("%Y/%m/%d") rescue "")} when "end_date" t << {"value" => (diploma.end_date.strftime("%Y/%m/%d") rescue "")} else t << {"value" => diploma.send(fs)} end end diploma_list << {"diploma_list" => t} end headers = [] fields_to_show.each do |fs| col = 2 col = 3 if fs == "degree" headers << { "head-title" => t("personal_diploma.#{fs}"), "col" => col } end { "journal_papers" => diploma_list, "headers" => headers, "extras" => {"widget-title" => t("module_name.personal_diploma")}, "total_pages" => diplomas.total_pages } end def show params = OrbitHelper.params plugin = Diploma.where(:is_hidden=>false).find_by(uid: params[:uid]) fields_to_show = [ "name", "school_name", "duration", "country", "department", "degree", "url" ] {"plugin_datas"=>plugin.get_plugin_data(fields_to_show)} end def get_fields_for_index @page = Page.find(params[:page_id]) rescue nil @fields_to_show = [ "name", "school_name", "duration", "country", "department", "degree", "language", "keywords", "start_date", "end_date", "note", "url" ] @fields_to_show = @fields_to_show.map{|fs| [t("personal_diploma.#{fs}"), fs]} @default_fields_to_show = [ "name", "school_name", "duration", "country", "department", "degree", "url" ] render :layout => false end def save_index_fields page = Page.find(params[:page_id]) rescue nil page.custom_array_field = params[:keys] page.save render :json => {"success" => true}.to_json end end