app/controllers/helpdesk/admin/tickets_controller.rb
class Helpdesk::Admin::TicketsController < Helpdesk::Admin::BaseController
def index
case params[:tickets]
when 'unassigned'
@tickets = Helpdesk::Ticket.unassigned
when'closed'
@tickets = Helpdesk::Ticket.closed
when 'active'
@tickets = Helpdesk::Ticket.active
when 'all'
@tickets = Helpdesk::Ticket
else
@tickets = my_tickets.active
end
@tickets = @tickets.includes(:requester)
.includes(:assignee)
.includes(:ticket_type)
.page(params[:page])
render 'list'
end
def assign
@ticket = Helpdesk::Ticket.find(params[:id])
if @ticket.update_column(:assignee_id, helpdesk_user)
redirect_to admin_ticket_path,
notice: t('helpdesk.tickets.is_now_assigned',subject: @ticket.subject)
else
redirect_to admin_ticket_path
end
end
def new
@ticket = Helpdesk::Ticket.new
@ticket.status = Helpdesk::Ticket::STATUSES[0][0]
end
def edit
@ticket = Helpdesk::Ticket.find(params[:id])
end
def show
@ticket = Helpdesk::Ticket.find(params[:id])
end
def create
@ticket = Helpdesk::Ticket.new(ticket_params)
if @ticket.save
redirect_to admin_ticket_path(@ticket)
else
render action: "new"
end
end
def update
@ticket = Helpdesk::Ticket.find(params[:id])
if @ticket.update_attributes(ticket_params)
unless @ticket.assignee
@ticket.update_column(:assignee_id, helpdesk_user)
end
redirect_to admin_ticket_path
else
render action: "new"
end
end
private
def ticket_params
params.require(:ticket).permit(:status,:requester_id,:assignee_id,:ticket_type_id, :subject, :description,comments_attributes:[:author_id, :comment, :public])
end
end