orbit-personalconference/app/controllers/panel/personal_conference/desktop/conference_pages_controller.rb

115 lines
3.6 KiB
Ruby

class Panel::PersonalConference::Desktop::ConferencePagesController < ApplicationController
def index
@view_by = params[:view]
@writing_conferences = WritingConference.where(create_user_id: current_user.id)
page = params[:page]
page ||= 1
if @view_by.nil?
@writing_conferences = @writing_conferences.asc(:paper_title)
else
@writing_conferences = @writing_conferences.asc(@view_by).asc(:paper_title)
end
@level_types = ConferencePaperType.all
@writing_conferences = @writing_conferences.page(page).per(50)
respond_to do |format|
format.html { render :layout => false}
end
end
def show
end
def new
@writing_conference = WritingConference.new
@paper_types = ConferencePaperType.all
@author_types = ConferenceAuthorType.all
@conference_candidate =
WritingConference.where(create_user_id: current_user.id).map{|j|j.conference_title}.uniq
if (not params[:q].nil?) and (current_user.name.include?params[:q])
@user = [{ :id => 0, :text => current_user.name, :email => current_user.email}] # self account name
else
@user = []
end
@co_authors = ConferenceCoAuthor.where(name_id: current_user.id, :co_author => /#{params[:q]}/).asc(:co_author)
# search string + self account name + match pattern
@co_authors = [{ :id => params[:q], :text => params[:q], :email => "#{t("add")} #{t("author")}" }] +
@user +
@co_authors.map{|m| { :id => m.id, :text => m.co_author, :email => m.email } }
respond_to do |format|
format.html { render :layout => false}
format.json { render :json => {:results => @co_authors}.to_json }
end
end
def edit
@writing_conference = WritingConference.find(params[:id])
@paper_types = ConferencePaperType.all
@author_types = ConferenceAuthorType.all
respond_to do |format|
format.html { render :layout => false}
end
end
def create
params[:writing_conference][:create_user_id] = current_user.id
@writing_conference = WritingConference.new(params[:writing_conference])
if @writing_conference.save
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @writing_conference.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def update
params[:writing_conference][:update_user_id] = current_user.id
@writing_conference= WritingConference.find(params[:id])
if @writing_conference.update_attributes(params[:writing_conference])
render json: {success: true, msg: t('update_success')}.to_json
else
error_msg = @writing_conference.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def destroy
@writing_conference = WritingConference.find(params[:id])
@writing_conference.destroy
render :json => {success: true, msg: t('delete_success')}
end
def conference_type
page = params[:page]
page ||= 1
conference_types = ConferencePaperType.all
all_conference_lists = WritingConference.where(create_user_id: current_user.id)
all_conference_lists = all_conference_lists.asc(:conference_title)
all_conference_lists = all_conference_lists.page(page).per(50)
all_conference_lists = all_conference_lists.map do |j|
[ j.conference_title,
j.conference_paper_type_ids.map do |type|
conference_types.find(type).title
end
]
end
@conference_lists = all_conference_lists
respond_to do |format|
format.html { render :layout => false}
end
end
end