summaryrefslogtreecommitdiff
path: root/help/app/controllers
diff options
context:
space:
mode:
authorjessib <jessib@leap.se>2012-11-16 15:43:12 -0800
committerjessib <jessib@leap.se>2012-11-16 15:43:12 -0800
commit341da14b031c3c27e687c82f479624217c1dbddd (patch)
treee97b617b0dec8c88c01f150c0cc489d6ff56196d /help/app/controllers
parent18a67ffdc21e44e21363f863b1a31d74b98ee3eb (diff)
Rough start to modeling tickets view after the issues view in github (so something like https://github.com/spree/spree/issues ), using bootstrap for display.
Still want to use pjax, and have more functionality to add: searching, sorting, pagination, etc..
Diffstat (limited to 'help/app/controllers')
-rw-r--r--help/app/controllers/tickets_controller.rb26
1 files changed, 9 insertions, 17 deletions
diff --git a/help/app/controllers/tickets_controller.rb b/help/app/controllers/tickets_controller.rb
index 2dc4c4c..2f26d24 100644
--- a/help/app/controllers/tickets_controller.rb
+++ b/help/app/controllers/tickets_controller.rb
@@ -79,31 +79,23 @@ class TicketsController < ApplicationController
end
def index
- # @tickets = Ticket.by_title #not actually what we will want
- #we'll want only tickets that this user can access
- # @tickets = Ticket.by_is_open.key(params[:status])
-
#TODO: we will need pagination
- #below is obviously too messy and not what we want, but wanted to get basic functionality there
if admin?
- # todo: for admins, might want option to see tickets they have already posted to. want to use something like tickets_by_admin
- if params[:status] == 'open'
+ if params[:admin_status] == 'mine'
+ @tickets = tickets_by_admin(current_user.id)
+ elsif params[:open_status] == 'open'
@tickets = Ticket.by_is_open.key(true)
- elsif params[:status] == 'closed'
+ elsif params[:open_status] == 'closed'
@tickets = Ticket.by_is_open.key(false)
- elsif params[:status] == 'open tickets I admin' #TODO: obviously temp hack
- @tickets = tickets_by_admin(current_user.id)
- elsif params[:status] == 'all tickets I admin' #TODO: obviously temp hack
- @tickets = tickets_by_admin(current_user.id, false)
- else
+ else
@tickets = Ticket.all
end
elsif logged_in?
#TODO---if, when logged in, user accessed unauthenticated ticket, then seems okay to list it in their list of tickets. Thus, include all tickets that the user has posted to, not just those that they created.
- if params[:status] == 'open'
+ if params[:open_status] == 'open'
@tickets = Ticket.by_is_open_and_created_by.key([true, current_user.id]).all
- elsif params[:status] == 'closed'
+ elsif params[:open_status] == 'closed'
@tickets = Ticket.by_is_open_and_created_by.key([false, current_user.id]).all
else
@tickets = Ticket.by_created_by.key(current_user.id).all
@@ -132,12 +124,12 @@ class TicketsController < ApplicationController
access_denied unless ticket_access?
end
- def tickets_by_admin(id=current_user.id, just_open=true)
+ def tickets_by_admin(id=current_user.id)
admin_tickets = []
tickets = Ticket.all
tickets.each do |ticket|
ticket.comments.each do |comment|
- if comment.posted_by == id and (!just_open or ticket.is_open)
+ if comment.posted_by == id and (params[:open_status] != 'open' or ticket.is_open) and (params[:open_status] != 'closed' or !ticket.is_open) #limit based on whether the ticket is open if open_status is set to open or closed
admin_tickets << ticket
break
end