diff options
Diffstat (limited to 'help/app')
| -rw-r--r-- | help/app/assets/javascripts/tickets.js | 3 | ||||
| -rw-r--r-- | help/app/controllers/tickets_controller.rb | 20 | ||||
| -rw-r--r-- | help/app/models/ticket.rb | 1 | ||||
| -rw-r--r-- | help/app/views/tickets/_new_comment.html.haml | 3 | ||||
| -rw-r--r-- | help/app/views/tickets/new.html.haml | 9 | ||||
| -rw-r--r-- | help/app/views/tickets/show.html.haml | 21 | 
6 files changed, 26 insertions, 31 deletions
| diff --git a/help/app/assets/javascripts/tickets.js b/help/app/assets/javascripts/tickets.js new file mode 100644 index 0000000..8f58e86 --- /dev/null +++ b/help/app/assets/javascripts/tickets.js @@ -0,0 +1,3 @@ +$(document).ready(function () { +  $('#title').editable(); +});
\ No newline at end of file diff --git a/help/app/controllers/tickets_controller.rb b/help/app/controllers/tickets_controller.rb index 3ff19b8..db9bc82 100644 --- a/help/app/controllers/tickets_controller.rb +++ b/help/app/controllers/tickets_controller.rb @@ -1,6 +1,6 @@  class TicketsController < ApplicationController -  respond_to :html #, :json +  respond_to :html, :json    #has_scope :open, :type => boolean    before_filter :set_strings @@ -52,19 +52,21 @@ class TicketsController < ApplicationController      @ticket = Ticket.find(params[:id])      if !ticket_access_denied? -      if status = params[:change_status] #close or open button was pressed -        @ticket.close if params[:change_status] == 'close' -        @ticket.reopen if params[:change_status] == 'open' +      if params[:post] #currently changes to title or is_open status +        if @ticket.update_attributes(params[:post]) #this saves ticket, so @ticket.changed? will be false +          tick_updated = true +        end +        # TODO: do we want to keep the history of title changes? one possibility was adding a comment that said something like 'user changed the title from a to b' +        else          params[:ticket][:comments_attributes] = nil if params[:ticket][:comments_attributes].values.first[:body].blank? #unset comments hash if no new comment was typed          @ticket.attributes = params[:ticket] #this will call comments_attributes= -        # @ticket.is_open = false if params[:commit] == @reply_close_str #this overrides is_open selection          @ticket.close if params[:commit] == @reply_close_str #this overrides is_open selection -          # what if there is an update and no new comment? Confirm that there is a new comment to update posted_by:          @ticket.comments.last.posted_by = (current_user ? current_user.id : nil) if @ticket.comments_changed? #protecting posted_by isn't working, so this should protect it. +        tick_updated = true if @ticket.changed? and @ticket.save        end -      if @ticket.changed? and @ticket.save +      if tick_updated          flash[:notice] = 'Ticket was successfully updated.'          if @ticket.is_open            respond_with @ticket @@ -78,14 +80,14 @@ class TicketsController < ApplicationController          #respond_with(@ticket) # why does this go to edit?? redirect???        end      end +    end    def index -    #TODO: we will need pagination      @all_tickets = Ticket.for_user(current_user, params, admin?) #for tests, useful to have as separate variable      #below works if @tickets is a CouchRest::Model::Designs::View, but not if it is an Array -    @tickets = @all_tickets.page(params[:page]).per(10) #TEST +    @tickets = @all_tickets.page(params[:page]).per(10)      #respond_with(@tickets)    end diff --git a/help/app/models/ticket.rb b/help/app/models/ticket.rb index cd4fcfb..781216e 100644 --- a/help/app/models/ticket.rb +++ b/help/app/models/ticket.rb @@ -216,6 +216,7 @@ class Ticket < CouchRest::Model::Base    end    #not saving with close and reopen, as we will save in update when they are called. +  #TODO: not sure if we should bother with these:    def close      self.is_open = false      #save diff --git a/help/app/views/tickets/_new_comment.html.haml b/help/app/views/tickets/_new_comment.html.haml index a924dfd..b216311 100644 --- a/help/app/views/tickets/_new_comment.html.haml +++ b/help/app/views/tickets/_new_comment.html.haml @@ -1,3 +1,2 @@ -= #do we want this partial? not using it now -= simple_fields_for :comment do |c| += f.simple_fields_for :comments, comment_object do |c|    = c.input :body, :label => 'Comment', :as => :text diff --git a/help/app/views/tickets/new.html.haml b/help/app/views/tickets/new.html.haml index 537b97f..0ee47ff 100644 --- a/help/app/views/tickets/new.html.haml +++ b/help/app/views/tickets/new.html.haml @@ -1,16 +1,9 @@  %h2=t :new_ticket  = simple_form_for(@ticket, :html => {:novalidate => true})  do |f| #turn off html5 validations to test -  = #@ticket.errors.messages    = f.input :title -  = #f.input :email #if there is no current_user    = f.input :email if !current_user  #hmm--might authenticated users want to submit an alternate email? - -  = f.simple_fields_for :comments do |c| -    = c.input :body, :label => 'Comment', :as => :text - -  = #render :partial => 'new_comment' #what we were using +  = render :partial => 'new_comment', :locals => {:f => f, :comment_object => nil}    = # regarding_user if not logged in    = # email if not logged in -  = #f.button :submit, :value => t(:submit), :class => 'btn-primary'     = f.button :submit    = link_to t(:cancel), tickets_path, :class => :btn diff --git a/help/app/views/tickets/show.html.haml b/help/app/views/tickets/show.html.haml index d9f594b..b9f2ce6 100644 --- a/help/app/views/tickets/show.html.haml +++ b/help/app/views/tickets/show.html.haml @@ -1,4 +1,9 @@  %h2= @ticket.title + +%a#title.editable.editable-click{"data-name" => "title", "data-resource" => "post", "data-type" => "text", "data-url" => ticket_path(@ticket.id), "data-pk" => @ticket.id, :href => "#"}  +  = @ticket.title + +%p  - if @ticket.email    email:    = @ticket.email @@ -12,26 +17,18 @@    = "status:"     - if @ticket.is_open      = 'open' -    = #link_to 'close', ticket_path, :method => :put -    = #button_to 'close', ticket_path, :method => :put -    = button_to 'close', {:change_status => :close}, :method => :put +    = button_to 'close', {:post => {:is_open => false}}, :method => :put    - else       = 'closed' -    = button_to 'open', {:change_status => :open}, :method => :put +    = button_to 'open', {:post => {:is_open => true}}, :method => :put  = render(:partial => "comment", :collection => @ticket.comments)  = #render @ticket.comments should work if view is in /app/views/comments/_comment  = simple_form_for(@ticket, :html => {:novalidate => true}) do |f| #turn off html5 validations to test -  = f.simple_fields_for :comments, TicketComment.new do |c| -    = c.input :body, :label => 'Comment', :as => :text -  = #render :partial => 'new_comment' -  = #f.label :is_open -  = #f.select :is_open, [true, false] #remove +  = render :partial => 'new_comment', :locals => {:f => f, :comment_object => TicketComment.new}    = f.button :submit, @post_reply_str    - if @ticket.is_open      = f.button :submit, @reply_close_str  = #link_to t(:destroy), ticket_path,  :confirm => 'are you sure?', :method => :delete, :class => :btn if admin? # for link_to to work with delete, need to figure out jquery interaction correctly. see  http://stackoverflow.com/questions/3774925/delete-link-sends-get-instead-of-delete-in-rails-3-view etc.. -= button_to 'destroy', ticket_path, :confirm => 'are you sure?', :method => :delete  if admin? -= # TODO want to have button to close -= # TODO if admin, have  button to delete += button_to 'destroy', ticket_path, :confirm => 'are you sure?', :method => :delete if admin?  = link_to t(:cancel), tickets_path, :class => :btn | 
