From 341da14b031c3c27e687c82f479624217c1dbddd Mon Sep 17 00:00:00 2001 From: jessib Date: Fri, 16 Nov 2012 15:43:12 -0800 Subject: 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.. --- help/app/controllers/tickets_controller.rb | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) (limited to 'help/app/controllers') 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 -- cgit v1.2.3