Class: TicketsController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- TicketsController
- Defined in:
- app/controllers/tickets_controller.rb
Instance Method Summary collapse
- #assignment ⇒ Object
- #create ⇒ Object
- #index ⇒ Object
- #new ⇒ Object
- #reorder ⇒ Object
- #show ⇒ Object
- #trigger_event ⇒ Object
-
#update ⇒ Object
only for title/description.
-
#user_search ⇒ Object
FIXME: this is fake right now, need to filter.
Instance Method Details
#assignment ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'app/controllers/tickets_controller.rb', line 69 def assignment assignment = TicketAssignment.new @ticket, params[:assignment_user_ids] if assignment.assign! @activity = @ticket.create_activity key: "ticket.assignment", owner: current_user, parameters: { assigned_ids: assignment.assigned_ids, unassigned_ids: assignment.unassigned_ids } end end |
#create ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/controllers/tickets_controller.rb', line 14 def create @ticket = Ticket.filtered_type_class(params[:type]).new( ticket_params.merge(creator: current_user) ) if @ticket.save @ticket.create_activity key: "ticket.created", owner: current_user end @ticket_types = ticket_types(parent_id: @ticket.parent_id) respond_to do |format| format.js end end |
#index ⇒ Object
6 7 8 |
# File 'app/controllers/tickets_controller.rb', line 6 def index @tickets = Ticket.all end |
#new ⇒ Object
10 11 12 |
# File 'app/controllers/tickets_controller.rb', line 10 def new @ticket_types = ticket_types(parent_id: params[:parent_id]) end |
#reorder ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'app/controllers/tickets_controller.rb', line 82 def reorder old_parent_id = @ticket.parent_id old_position = @ticket.position if @ticket.reorder!( parent_id: params[:parent_id], position: params[:position] ) @activity = @ticket.create_activity key: "ticket.reorder", owner: current_user, parameters: { from_parent_id: old_parent_id, old_position: old_position, parent_id: params[:parent_id], position: params[:position] } end render json: {} end |
#show ⇒ Object
29 30 31 32 33 |
# File 'app/controllers/tickets_controller.rb', line 29 def show @ticket_types = ticket_types(parent_id: @ticket.id) @subtree = @ticket.subtree.includes(:assignments).group_by(&:parent_id) @comments = @ticket.comments.group_by(&:id) end |
#trigger_event ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'app/controllers/tickets_controller.rb', line 35 def trigger_event old_state = @ticket.state if @ticket.trigger_event!(params[:event]) @activity = @ticket.create_activity key: "ticket.state_change", owner: current_user, parameters: { event: params[:event], to: @ticket.state, from: old_state } end end |
#update ⇒ Object
only for title/description
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'app/controllers/tickets_controller.rb', line 47 def update update_params = params.require(params[:type]).permit( :title, :description, :who, :what, :why ) old_title = @ticket.title old_description = @ticket.description if @ticket.update_attributes(update_params) parameters = {} if old_title != @ticket.title parameters[:title_diff] = generate_diff(old_title, @ticket.title) parameters[:title_html_diff] = generate_html_diff(old_title, @ticket.title) end if old_description != @ticket.description parameters[:description_diff] = generate_diff(old_description, @ticket.description) parameters[:description_html_diff] = generate_html_diff(old_description, @ticket.description) end @activity = @ticket.create_activity key: "ticket.update_details", owner: current_user, parameters: parameters end end |
#user_search ⇒ Object
FIXME: this is fake right now, need to filter.
103 104 105 106 107 108 109 110 111 |
# File 'app/controllers/tickets_controller.rb', line 103 def user_search render json: User.all.map { |user| { name: user.display_name, id: user.id, value: "#{user.display_name} - #{user.email}" } } end |