diff options
| -rw-r--r-- | help/app/models/ticket.rb | 15 | ||||
| -rw-r--r-- | help/app/models/ticket_comment.rb | 5 | ||||
| -rw-r--r-- | help/app/views/tickets/_comment.html.haml | 34 | ||||
| -rw-r--r-- | help/app/views/tickets/_new_comment.html.haml | 2 | ||||
| -rw-r--r-- | help/app/views/tickets/_ticket_data.html.haml | 14 | ||||
| -rw-r--r-- | help/app/views/tickets/new.html.haml | 3 | 
6 files changed, 52 insertions, 21 deletions
| diff --git a/help/app/models/ticket.rb b/help/app/models/ticket.rb index a27a9d4..ed1ff9d 100644 --- a/help/app/models/ticket.rb +++ b/help/app/models/ticket.rb @@ -16,7 +16,7 @@ class Ticket < CouchRest::Model::Base    #belongs_to :user #from leap_web_users. doesn't necessarily belong to a user though    property :created_by, String, :protected => true #Integer #nil unless user was authenticated for ticket creation, #THIS should not be changed after being set -  #property :regarding_user, String#Integer # form cannot be submitted if they type in a username w/out corresponding ID. this field can be nil. for authenticated ticket creation by non-admins, should this just automatically be set to be same as created_by?  or maybe we don't use this field unless created_by is nil? +  property :regarding_user, String#Integer # form cannot be submitted if they type in a username w/out corresponding ID. this field can be nil. for authenticated ticket creation by non-admins, should this just automatically be set to be same as created_by?  or maybe we don't use this field unless created_by is nil?    #also, both created_by and regarding_user could be nil---say user forgets username, or has general question    property :title, String    property :email, String #verify @@ -30,7 +30,7 @@ class Ticket < CouchRest::Model::Base    timestamps!    #before_validation :set_created_by, :set_code, :set_email, :on => :create -  before_validation :set_email, :on => :create +  before_validation :set_email, :set_regarding_user, :on => :create    #named_scope :open, :conditions => {:is_open => true} #?? @@ -94,6 +94,10 @@ class Ticket < CouchRest::Model::Base      # in controller set to be current users email if that exists    end +  def set_regarding_user +    self.regarding_user = nil if self.regarding_user == "" +  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 @@ -132,6 +136,13 @@ class Ticket < CouchRest::Model::Base      end    end +  def created_by_user +    User.find(self.created_by) +  end + +  def regarding_user_actual_user +    User.find_by_login(self.regarding_user) +  end  =begin    def validate      if email_address and not email_address.strip =~ RFC822::EmailAddress diff --git a/help/app/models/ticket_comment.rb b/help/app/models/ticket_comment.rb index 49e5c6c..1df7eec 100644 --- a/help/app/models/ticket_comment.rb +++ b/help/app/models/ticket_comment.rb @@ -7,6 +7,7 @@ class TicketComment    property :posted_at, Time#, :protected => true    #property :posted_verified, TrueClass, :protected => true #should be true if current_user is set when the comment is created    property :body, String +  property :private, TrueClass # private comments are only viewable by admins    # ? timestamps!    validates :body, :presence => true @@ -21,6 +22,10 @@ class TicketComment      !!posted_by    end +  def posted_by_user +    User.find(self.posted_by) +  end +  =begin    #TODO.     #this is resetting all comments associated with the ticket: diff --git a/help/app/views/tickets/_comment.html.haml b/help/app/views/tickets/_comment.html.haml index 1d8ee41..501ceec 100644 --- a/help/app/views/tickets/_comment.html.haml +++ b/help/app/views/tickets/_comment.html.haml @@ -1,16 +1,20 @@  - # style is super ugly but just for now -%tr -  %td -    - if commenter = User.find(comment.posted_by) -      %b -        = 'Posted by' + (commenter.is_admin? ? ' admin' : '') + ':' -      = commenter.login -    - else -      %b -        Unauthenticated post -    .pull-right -      %b -        Posted at: -      = comment.posted_at.to_s(:short) -    %br -    = comment.body +- if admin? or !comment.private # only show comment if user is admin or comment is not private +  %tr +    %td +      - if comment.posted_by_user +        %b +          = 'Posted by' + (comment.posted_by_user.is_admin? ? ' admin' : '') + ':' +        = comment.posted_by_user.login +      - else +        %b +          Unauthenticated post +      - if comment.private +        (Private comment) +      .pull-right +        %b +          Posted at: +        = comment.posted_at.to_s(:short) +      %br +      = comment.body + diff --git a/help/app/views/tickets/_new_comment.html.haml b/help/app/views/tickets/_new_comment.html.haml index 31d134f..96388ea 100644 --- a/help/app/views/tickets/_new_comment.html.haml +++ b/help/app/views/tickets/_new_comment.html.haml @@ -1,2 +1,4 @@  = f.simple_fields_for :comments, @comment do |c|    = c.input :body, :label => 'Comment', :as => :text, :input_html => {:class => "span9", :rows=>4} +  - if admin? +    = c.input :private, :as => :boolean, :label => false, :inline_label => true diff --git a/help/app/views/tickets/_ticket_data.html.haml b/help/app/views/tickets/_ticket_data.html.haml index fee080f..d68d3e9 100644 --- a/help/app/views/tickets/_ticket_data.html.haml +++ b/help/app/views/tickets/_ticket_data.html.haml @@ -1,10 +1,20 @@  .spam12    %b      Created by: -  - if User.find(@ticket.created_by) -    = User.find(@ticket.created_by).login +  - if @ticket.created_by_user +    = link_to @ticket.created_by_user.login, edit_user_path(@ticket.created_by_user) #todo: won't want edit path    - else      Unauthenticated ticket creator +  - if @ticket.regarding_user +    %b +      Regarding user: +    - if admin? +      - if @ticket.regarding_user_actual_user +        = link_to @ticket.regarding_user_actual_user.login, edit_user_path(@ticket.regarding_user_actual_user) #todo: won't want edit path +      - else +        = @ticket.regarding_user + ' (no such user)' +    - else # a non-admin is viewing the ticket, so they shouldn't see confirmation of whether the regarding_user exists or not. +      = @ticket.regarding_user    - if @ticket.email      %b        email: diff --git a/help/app/views/tickets/new.html.haml b/help/app/views/tickets/new.html.haml index ee7adb2..1aa689b 100644 --- a/help/app/views/tickets/new.html.haml +++ b/help/app/views/tickets/new.html.haml @@ -3,9 +3,8 @@    = simple_form_for @ticket, :validate => true, :html => {:class => 'form-horizontal'}  do |f|      = f.input :title      = f.input :email if !current_user  #hmm--might authenticated users want to submit an alternate email? +    = f.input :regarding_user      = render :partial => 'new_comment', :locals => {:f => f} -    = # regarding_user if not logged in -    = # email if not logged in      .form-actions        = f.button :submit, :class => 'btn-primary'        = link_to t(:cancel), tickets_path, :class => :btn | 
