diff --git a/app/assets/images/desktop/personal_research.svg b/app/assets/images/desktop/personal_research.svg new file mode 100644 index 0000000..e69de29 diff --git a/app/controllers/admin/researchs_controller.rb b/app/controllers/admin/researchs_controller.rb index acb6856..206105c 100644 --- a/app/controllers/admin/researchs_controller.rb +++ b/app/controllers/admin/researchs_controller.rb @@ -1,4 +1,5 @@ class Admin::ResearchsController < OrbitMemberController + include Admin::PersonalResearchesHelper layout "member_plugin" before_action :set_research, only: [:show, :edit , :update, :destroy] @@ -15,28 +16,48 @@ class Admin::ResearchsController < OrbitMemberController def new @member = MemberProfile.find_by(:uid=>params['uid']) rescue nil @research = Research.new + if params[:desktop] + render :layout => false + end end def create @member = MemberProfile.find(research_params['member_profile_id']) rescue nil @research = Research.new(research_params) @research.save - redirect_to params['referer_url'] + if params[:desktop] == "true" + render json: {"data" => get_paper_list}.to_json + else + redirect_to params['referer_url'] + end end def edit @member = @research.member_profile rescue nil + if params[:desktop] + render :layout => false + end end def update @member = @research.member_profile rescue nil @research.update_attributes(research_params) @research.save - redirect_to params['referer_url'] + if params[:desktop] == "true" + render json: {"data" => get_paper_list}.to_json + else + redirect_to params['referer_url'] + end end def destroy @research.destroy + respond_to do |format| + format.html { redirect_to(admin_researchs_url) } + # format.xml { head :ok } + format.js + format.json {render json: {"success" => true}} + end end def toggle_hide diff --git a/app/controllers/desktop/personal_researches_controller.rb b/app/controllers/desktop/personal_researches_controller.rb new file mode 100644 index 0000000..67d660a --- /dev/null +++ b/app/controllers/desktop/personal_researches_controller.rb @@ -0,0 +1,23 @@ +class Desktop::PersonalResearchesController < DesktopAdminController + include Admin::PersonalResearchesHelper + + def menu + user = OrbitHelper.current_user + [ + { + "title" => "List", + "layout" => "list" + }, + { + "title" => "Add/Edit", + "layout" => "form", + "new_path" => "/admin/members/#{user.member_profile.to_param}/researchs/new" + } + ] + end + + def list + get_paper_list + end + +end \ No newline at end of file diff --git a/app/helpers/admin/personal_researches_helper.rb b/app/helpers/admin/personal_researches_helper.rb new file mode 100644 index 0000000..d98f92b --- /dev/null +++ b/app/helpers/admin/personal_researches_helper.rb @@ -0,0 +1,28 @@ +module Admin::PersonalResearchesHelper + + def get_paper_list + user = current_user.nil? ? OrbitHelper.current_user : current_user + user_profile = user.member_profile + researchs = Research.where(:member_profile_id => user_profile.id) + researchs = researchs.collect do |r| + files = r.research_files.collect do |rf| + { + "title" => rf.title, + "description" => rf.description, + "link" => rf.file.url, + "extension" => (rf.file.url.split(".").last rescue "") + } + end + + { + "id" => r.id.to_s, + "edit_url" => "/#{I18n.locale.to_s}/admin/members/#{user_profile.to_param}/researchs/#{r.to_param}/edit", + "delete_url" => "/#{I18n.locale.to_s}/admin/researchs/#{r.id.to_s}", + "paper_title" => r.research_title, + "keywords" => r.keywords, + "files" => files + } + end + researchs + end +end \ No newline at end of file diff --git a/app/views/admin/researchs/_form.html.erb b/app/views/admin/researchs/_form.html.erb index 3f2699e..353877b 100644 --- a/app/views/admin/researchs/_form.html.erb +++ b/app/views/admin/researchs/_form.html.erb @@ -7,7 +7,7 @@ <% content_for :page_specific_javascript do %> <%= javascript_include_tag "lib/bootstrap-datetimepicker" %> <%= javascript_include_tag "lib/datetimepicker/datetimepicker.js" %> - <%= javascript_include_tag "lib/bootstrap-fileupload" %> + <%= javascript_include_tag "lib/bootstrap-fileupload" %> <%= javascript_include_tag "lib/file-type" %> <%= javascript_include_tag "lib/module-area" %> <% end %> @@ -15,7 +15,7 @@