/datum/adminTicketHolder/proc/returnUI(var/tab = ADMIN_TICKET_OPEN) set name = "Open Ticket Interface" set category = "Tickets" //dat var/trStyle = "border-top:2px solid; border-bottom:2px solid; padding-top: 5px; padding-bottom: 5px;" var/tdStyleleft = "border-top:2px solid; border-bottom:2px solid; width:150px; text-align:center;" var/tdStyle = "border-top:2px solid; border-bottom:2px solid;" var/datum/admin_ticket/ticket var/dat dat += "" dat += "

Admin Tickets

" dat +="Refresh
Open TicketsResolved TicketsClosed Tickets" if(tab == ADMIN_TICKET_OPEN) dat += "

Open Tickets

" dat += "" dat +="" if(tab == ADMIN_TICKET_OPEN) for(var/T in allTickets) ticket = T if(ticket.ticketState == ADMIN_TICKET_OPEN || ticket.ticketState == ADMIN_TICKET_STALE) dat += "" else continue else if(tab == ADMIN_TICKET_RESOLVED) dat += "

Resolved Tickets

" for(var/T in allTickets) ticket = T if(ticket.ticketState == ADMIN_TICKET_RESOLVED) dat += "" else continue else if(tab == ADMIN_TICKET_CLOSED) dat += "

Closed Tickets

" for(var/T in allTickets) ticket = T if(ticket.ticketState == ADMIN_TICKET_CLOSED) dat += "" else continue dat += "
ControlTicket
ResolveDetails
#[ticket.ticketNum] ([ticket.timeOpened]) [ticket.ticketState == ADMIN_TICKET_STALE ? "STALE" : ""]
[ticket.title]
ResolveDetails
#[ticket.ticketNum] ([ticket.timeOpened])
[ticket.title]
ResolveDetails
#[ticket.ticketNum] ([ticket.timeOpened])
[ticket.title]
" return dat /datum/adminTicketHolder/proc/showUI(var/client/user, var/tab) var/dat = null dat = returnUI(tab) var/datum/browser/popup = new(user, "admintickets", "Admin Tickets", 1400, 600) popup.set_content(dat) popup.open() /datum/adminTicketHolder/proc/showDetailUI(var/client/user, var/ticketID) var/datum/admin_ticket/T = globAdminTicketHolder.allTickets[ticketID] var/status = "[T.state2text()]" var/dat = "

Admin Tickets

" dat +="Show AllRefresh" dat += "

Ticket #[T.ticketNum]

" dat += "

[T.clientName] / [T.mobControlled] opened this ticket at [T.timeOpened] at location [T.locationSent]

" dat += "

Ticket Status: [status]" dat += "" dat += "" if(T.content.len > 1) for(var/i = 2, i <= T.content.len, i++) dat += "" dat += "
[T.title]
[T.content[i]]


" dat += "Re-OpenResolve

" if(!T.adminAssigned) dat += "No admin assigned to this ticket - Take Ticket
" else dat += "[T.adminAssigned] is assigned to this Ticket. - Take Ticket
" if(T.lastAdminResponse) dat += "Last Admin Response: [T.lastAdminResponse] at [T.lastResponseTime]" else dat +="No Admin Response" dat += "

" dat += "Close Ticket" var/datum/browser/popup = new(user, "adminticketsdetail", "Admin Ticket #[T.ticketNum]", 1000, 600) popup.set_content(dat) popup.open() /datum/adminTicketHolder/proc/userDetailUI(var/client/user) //dat var/tickets = checkForTicket(user) var/dat dat += "

Your open tickets

" dat += "" for(var/datum/admin_ticket/T in tickets) dat += "" for(var/i = 1, i <= T.content.len, i++) dat += "" dat += "

Ticket #[T.ticketNum]

[T.content[i]]
" var/datum/browser/popup = new(user, "userticketsdetail", "Tickets", 1000, 600) popup.set_content(dat) popup.open() /datum/adminTicketHolder/Topic(href, href_list) if(href_list["refresh"]) showUI(usr) return if(href_list["refreshdetail"]) var/indexNum = text2num(href_list["refreshdetail"]) showDetailUI(usr, indexNum) return if(href_list["showopen"]) showUI(usr, ADMIN_TICKET_OPEN) return if(href_list["showresolved"]) showUI(usr, ADMIN_TICKET_RESOLVED) return if(href_list["showclosed"]) showUI(usr, ADMIN_TICKET_CLOSED) return if(href_list["details"]) var/indexNum = text2num(href_list["details"]) showDetailUI(usr.client, indexNum) return if(href_list["resolve"]) var/indexNum = text2num(href_list["resolve"]) if(globAdminTicketHolder.resolveTicket(indexNum)) message_adminTicket("[usr.client] / ([usr]) resolved admin ticket number [indexNum]") to_chat(returnClient(indexNum), "Your admin ticket has now been resolved.") showUI(usr) if(href_list["detailresolve"]) var/indexNum = text2num(href_list["detailresolve"]) if(globAdminTicketHolder.resolveTicket(indexNum)) message_adminTicket("[usr.client] / ([usr]) resolved admin ticket number [indexNum]") to_chat(returnClient(indexNum), "Your admin ticket has now been resolved.") showDetailUI(usr, indexNum) if(href_list["detailclose"]) var/indexNum = text2num(href_list["detailclose"]) if(alert("Are you sure? This will send a negative message.",,"Yes","No") != "Yes") return if(globAdminTicketHolder.closeTicket(indexNum)) message_adminTicket("[usr.client] / ([usr]) closed admin ticket number [indexNum]") to_chat(returnClient(indexNum), "- AdminHelp Rejected! -") to_chat(returnClient(indexNum), "Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting. If you asked a question, please ensure it was clear what you were asking.") to_chat(returnClient(indexNum), "Your ticket has now been closed.") showDetailUI(usr, indexNum) if(href_list["detailreopen"]) var/indexNum = text2num(href_list["detailreopen"]) if(globAdminTicketHolder.openTicket(indexNum)) message_adminTicket("[usr.client] / ([usr]) re-opened admin ticket number [indexNum]") showDetailUI(usr, indexNum) if(href_list["assignadmin"]) var/indexNum = text2num(href_list["assignadmin"]) if(globAdminTicketHolder.assignAdminToTicket(usr.client, indexNum)) message_adminTicket("[usr.client] / ([usr]) has taken ticket number [indexNum]") to_chat(returnClient(indexNum), "Your ticket is being handled by [usr.client].") showDetailUI(usr, indexNum)