Repository URL to install this package:
Version:
2.23.0 ▾
|
module JPlatform
class Admin::ProjectsController < AdminController
include Concerns::FileUpload
before_action :ajax_only, only: [:new, :edit]
def new
@project = Project.new
render :new_edit
end
def create
project_params = params.require(:project).permit(:name, :description, :avatar_string)
encode_file!(project_params, :avatar_string, :avatar_name) if project_params.has_key?(:avatar_string)
@project = Project.new(project_params)
@project.prefix_options[:client_id] = params[:client_id]
if @project.save
render partial: "/j_platform/admin/projects/project", locals: { project: @project }
else
render :new_edit, status: 422
end
end
def show
@project = Project.find(params[:id])
end
def edit
@project = Project.find(params[:id], params: { q: Random.new_seed })
case params[:content]
when 'assign_members'
@items = @project.client.client_memberships
@assign_attribute = 'client_membership_ids'
render "j_platform/admin/projects/assign_items"
when 'assign_social_accounts'
@items = @project.client.social_accounts
@assign_attribute = 'social_account_ids'
render "j_platform/admin/projects/assign_items"
when 'assign_ticket_lists'
@items = @project.client.ticket_lists
@assign_attribute = 'ticket_list_ids'
render "j_platform/admin/projects/assign_items"
else
render :new_edit
end
end
def update
project_params = params.require(:project).permit(:name, :description, :avatar_string, :client_id, :status, client_membership_ids: [], ticket_list_ids: [], social_account_ids: [])
@project = Project.find(params[:id])
encode_file!(project_params, :avatar_string, :avatar_name) if project_params.has_key?(:avatar_string)
if @project.update_attributes(project_params)
if project_params.has_key?(:status) || project_params.has_key?(:description) || project_params.has_key?(:avatar_string) || project_params.has_key?(:name)
render partial: "/j_platform/admin/projects/project", locals: { project: @project }
else
render json: { status: 'success' }
end
else
render :new_edit, status: 422
end
end
def destroy
@project = Project.find(params[:id])
if @project.destroy
flash[:notice] = t('project.messages.delete_success')
else
flash[:notice] = t('project.messages.delete_failed')
end
redirect_to admin_client_projects_path(@project.client)
end
end
end