/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 +="| Control | Ticket |
"
if(tab == ADMIN_TICKET_OPEN)
for(var/T in allTickets)
ticket = T
if(ticket.ticketState == ADMIN_TICKET_OPEN || ticket.ticketState == ADMIN_TICKET_STALE)
dat += "ResolveDetails #[ticket.ticketNum] ([ticket.timeOpened]) [ticket.ticketState == ADMIN_TICKET_STALE ? "STALE" : ""] | [ticket.title] |
"
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 += "ResolveDetails #[ticket.ticketNum] ([ticket.timeOpened]) | [ticket.title] |
"
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 += "ResolveDetails #[ticket.ticketNum] ([ticket.timeOpened]) | [ticket.title] |
"
else
continue
dat += "
"
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 += "| [T.title] |
"
if(T.content.len > 1)
for(var/i = 2, i <= T.content.len, i++)
dat += "| [T.content[i]] |
"
dat += "
"
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 += "Ticket #[T.ticketNum] |
"
for(var/i = 1, i <= T.content.len, i++)
dat += "| [T.content[i]] |
"
dat += "
"
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)