diff options
Diffstat (limited to 'help/app/controllers')
-rw-r--r-- | help/app/controllers/tickets_controller.rb | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/help/app/controllers/tickets_controller.rb b/help/app/controllers/tickets_controller.rb new file mode 100644 index 0000000..be07309 --- /dev/null +++ b/help/app/controllers/tickets_controller.rb @@ -0,0 +1,52 @@ +class TicketsController < ApplicationController + + respond_to :html #, :json + + def new + @ticket = Ticket.new + @ticket.comments.build + end + + def create + @ticket = Ticket.new #:created_by => User.current_test.id + @ticket.attributes = params[:ticket]#.except(:comments) + @ticket.created_by = User.current_test.id if User.current_test + #instead of calling add_comment, we are using comment_attributes= from the Ticket model + + if @ticket.save + respond_with(@ticket) + else + respond_with(@ticket, :location => new_ticket_path ) + end + + end + + def show + @ticket = Ticket.find(params[:id]) + # build ticket comments? + end + + def update + @ticket = Ticket.find(params[:id]) + add_comment #or should we use ticket attributes? + @ticket.save + redirect_to @ticket #difft behavior on failure? + end + + def index + # @tickets = Ticket.by_title #not actually what we will want + respond_with(@tickets = Ticket.all) + end + + private + + # not using now when creating tickets, we are using comment_attributes= from the Ticket model + #not yet sure about updating tickets + def add_comment + comment = TicketComment.new(params[:comment]) + comment.posted_by = User.current_test.id if User.current_test #could be nil + comment.posted_at = Time.now # TODO: it seems strange to have this here, and not in model + @ticket.comments << comment + end + +end |