68 lines
2.1 KiB
Ruby
68 lines
2.1 KiB
Ruby
class HelpdeskTicketsController < ApplicationController
|
|
unloadable
|
|
|
|
before_filter :find_issue, :except => :destroy
|
|
before_filter :find_helpdesk_ticket, :only => :destroy
|
|
before_filter :authorize
|
|
|
|
helper :helpdesk
|
|
|
|
def edit
|
|
@show_form = "true"
|
|
respond_to do |format|
|
|
format.js
|
|
end
|
|
end
|
|
|
|
def update
|
|
@helpdesk_ticket.attributes = params[:helpdesk_ticket]
|
|
@helpdesk_ticket.cc_address = params[:helpdesk_ticket][:cc_address].reject(&:empty?).join(',') if params[:helpdesk_ticket][:cc_address]
|
|
@helpdesk_ticket.issue = @issue
|
|
@helpdesk_ticket.from_address = @helpdesk_ticket.customer.primary_email if @helpdesk_ticket.customer
|
|
|
|
if @helpdesk_ticket.save
|
|
flash[:notice] = l(:notice_successful_update)
|
|
respond_to do |format|
|
|
format.html { redirect_back_or_default({:controller => 'issues', :action => 'show', :id => @issue}) }
|
|
format.api { render_api_ok }
|
|
end
|
|
else
|
|
flash[:error] = @helpdesk_ticket.errors.full_messages.flatten.join("\n")
|
|
respond_to do |format|
|
|
format.html { redirect_back_or_default({:controller => 'issues', :action => 'show', :id => @issue}) }
|
|
format.api { render_validation_errors(@helpdesk_ticket) }
|
|
end
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
if @helpdesk_ticket.destroy
|
|
flash[:notice] = l(:notice_successful_delete)
|
|
respond_to do |format|
|
|
format.html { redirect_back_or_default({:controller => 'issues', :action => 'show', :id => @issue}) }
|
|
format.api { render_api_ok }
|
|
end
|
|
else
|
|
flash[:error] = l(:notice_unsuccessful_save)
|
|
end
|
|
end
|
|
|
|
private
|
|
def find_helpdesk_ticket
|
|
@helpdesk_ticket = HelpdeskTicket.find(params[:id])
|
|
@issue = @helpdesk_ticket.issue
|
|
@project = @issue.project if @issue
|
|
rescue ActiveRecord::RecordNotFound
|
|
render_404
|
|
end
|
|
|
|
def find_issue
|
|
@issue = Issue.find(params[:issue_id])
|
|
@project = @issue.project
|
|
@helpdesk_ticket = @issue.helpdesk_ticket || HelpdeskTicket.new(:ticket_date => Time.now, :issue => @issue)
|
|
rescue ActiveRecord::RecordNotFound
|
|
render_404
|
|
end
|
|
|
|
end
|