From 98d9919712fc7f9795f60d62f8517dc62ba704e1 Mon Sep 17 00:00:00 2001 From: Birdtalon Date: Sun, 1 Oct 2017 15:37:38 +0100 Subject: [PATCH] styling and update --- code/modules/admin/tickets/admintickets.dm | 20 ++++++-- code/modules/admin/tickets/adminticketsUI.dm | 49 ++++++++++++++----- .../admin/tickets/adminticketsverbs.dm | 14 +++++- code/modules/client/client procs.dm | 2 +- 4 files changed, 66 insertions(+), 19 deletions(-) diff --git a/code/modules/admin/tickets/admintickets.dm b/code/modules/admin/tickets/admintickets.dm index 8f99c994037..b9b998fecba 100644 --- a/code/modules/admin/tickets/admintickets.dm +++ b/code/modules/admin/tickets/admintickets.dm @@ -7,7 +7,7 @@ var/global/datum/adminTicketHolder/globAdminTicketHolder = new /datum/adminTicke //Defines //Deciseconds until timeout -#define ADMIN_TICKET_TIMEOUT 100 +#define ADMIN_TICKET_TIMEOUT 3000 //Decisecions before opening another ticket #define ADMIN_TICKET_DUPLICATE_COOLDOWN 300 @@ -38,7 +38,8 @@ var/global/datum/adminTicketHolder/globAdminTicketHolder = new /datum/adminTicke /datum/adminTicketHolder/proc/purgeAllTickets() // Delete ALL tickets QDEL_LIST(allTickets) - message_admins("[usr] purged all admin tickets!") + message_admins("[usr.client] purged all admin tickets!") + ticketCounter = 1 /datum/adminTicketHolder/proc/closeAllOpenTickets() // Close all open tickets for(var/i in allTickets) @@ -120,11 +121,9 @@ var/global/datum/adminTicketHolder/globAdminTicketHolder = new /datum/adminTicke /datum/admin_ticket/proc/beginStaleCount() if(!src) - to_chat(world, "DEBUG: NO SRC") return while(world.time < timeUntilStale) sleep(200) - to_chat(world, "DEBUG: CHECKING STATE OF TICKET [ticketNum]") if(ticketState == ADMIN_TICKET_OPEN && world.time > timeUntilStale) message_admins("Ticket #[ticketNum] has been open for [ADMIN_TICKET_TIMEOUT * 0.1] seconds. Changing status to stale.") ticketState = ADMIN_TICKET_STALE @@ -135,4 +134,15 @@ var/global/datum/adminTicketHolder/globAdminTicketHolder = new /datum/adminTicke /datum/admin_ticket/proc/setLastAdminResponse(var/client/C) lastAdminResponse = C - lastResponseTime = world.time \ No newline at end of file + lastResponseTime = worldtime2text() + +/datum/admin_ticket/proc/state2text() + switch(ticketState) + if(ADMIN_TICKET_OPEN) + return "OPEN" + if(ADMIN_TICKET_RESOLVED) + return "RESOLVED" + if(ADMIN_TICKET_CLOSED) + return "CLOSED" + if(ADMIN_TICKET_STALE) + return "STALE" \ No newline at end of file diff --git a/code/modules/admin/tickets/adminticketsUI.dm b/code/modules/admin/tickets/adminticketsUI.dm index 3e93d60eda3..4c30cd109dd 100644 --- a/code/modules/admin/tickets/adminticketsUI.dm +++ b/code/modules/admin/tickets/adminticketsUI.dm @@ -8,19 +8,35 @@ dat +="Refresh
Open TicketsResolved TicketsClosed Tickets" if(tab == ADMIN_TICKET_OPEN) dat += "

Open Tickets

" - dat += "" - dat +="" - + dat += "
ControlTicketDetail
" + dat +="" + if(tab == ADMIN_TICKET_OPEN) for(var/T in allTickets) var/datum/admin_ticket/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) + var/datum/admin_ticket/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) + var/datum/admin_ticket/ticket = T + if(ticket.ticketState == ADMIN_TICKET_CLOSED) + dat += "" + else + continue - dat += "
ControlTicketDetail
ResolveClose Ticket #[ticket.ticketNum]: at [ticket.timeOpened]: [ticket.content] Details
ResolveClose Ticket #[ticket.ticketNum]: at [ticket.timeOpened]: [ticket.content] Details
ResolveClose Ticket #[ticket.ticketNum]: at [ticket.timeOpened]: [ticket.content] Details
" + dat += "" - return dat +/* return dat else if(tab == ADMIN_TICKET_RESOLVED) dat += "

Resolved Tickets

" dat += "" @@ -35,7 +51,7 @@ dat += "
" - return dat + else if(tab == ADMIN_TICKET_CLOSED) dat += "

Closed Tickets

" dat += "" @@ -49,8 +65,8 @@ continue dat += "
" - - return dat +*/ + return dat /datum/adminTicketHolder/proc/showUI(var/client/C, var/tab) var/dat = null @@ -61,16 +77,22 @@ /datum/adminTicketHolder/proc/showDetailUI(var/client/C, var/ticketID) var/datum/admin_ticket/T = globAdminTicketHolder.allTickets[ticketID] + var/status = "[T.state2text()]" var/dat = "

Admin Tickets

" + dat +="Refresh" + dat += "

Ticket #[T.ticketNum]

" - dat += "

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

" + dat += "

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

" + dat += "

Ticket Status: [status]" dat += "

[T.content]

" dat += "Re-OpenResolveClose" + dat += "Last Admin Response: [T.lastAdminResponse] at [T.lastResponseTime]" + var/datum/browser/popup = new(usr, "adminticketsdetail", "Admin Ticket #[T.ticketNum]", 1200, 600) popup.set_content(dat) popup.open() @@ -81,6 +103,11 @@ 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 @@ -100,14 +127,14 @@ var/indexNum = text2num(href_list["resolve"]) globAdminTicketHolder.resolveTicket(indexNum) message_admins("[usr.client] / ([usr]) resolved admin ticket number [indexNum]") - showUI(usr) + showUI(usr, ADMIN_TICKET_RESOLVED) return if(href_list["close"]) var/indexNum = text2num(href_list["close"]) globAdminTicketHolder.closeTicket(indexNum) message_admins("[usr.client] / ([usr]) closed admin ticket number [indexNum]") - showUI(usr) + showUI(usr, ADMIN_TICKET_CLOSED) return else if(href_list["reopen"]) diff --git a/code/modules/admin/tickets/adminticketsverbs.dm b/code/modules/admin/tickets/adminticketsverbs.dm index dbb29832158..1c3749638ff 100644 --- a/code/modules/admin/tickets/adminticketsverbs.dm +++ b/code/modules/admin/tickets/adminticketsverbs.dm @@ -4,10 +4,20 @@ set name = "Restart Admin Ticket System" set category = "Tickets" + if(!holder) + return + + if(!check_rights(R_DEBUG)) + return + if(!globAdminTicketHolder) var/global/datum/adminTicketHolder/globAdminTicketHolder = new /datum/adminTicketHolder else - to_chat(world, "Already one running.") + if(alert("Are you sure you want to reboot the admin ticket system?",,"Yes","No") != "Yes") + return + message_admins("Restarting Admin Ticket System!") + globAdminTicketHolder = new /datum/adminTicketHolder + message_admins("Admin Ticket System Restarted!") /client/proc/vvadmintickets() set name = "Debug Admin Tickets" @@ -32,4 +42,4 @@ set category = "Tickets" var/testmsg = pick("REEEEEEE", "HELP ME I'm NOOB!!", "PLEASE ADMIN REVIVE ME", "IS THIS LEGIT?", "some1 killed me 4noraisen", "birdtalon is powergaming again") - globAdminTicketHolder.newTicket(src, testmsg) + globAdminTicketHolder.newTicket(src, testmsg) \ No newline at end of file diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index eec8a19cc8f..ddea7526314 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -76,7 +76,7 @@ //Check if the person has a current open admin ticket var/datum/admin_ticket/existingTicket = globAdminTicketHolder.checkForOpenTicket(C) if(existingTicket) - existingTicket.setLastAdminResponse(usr) + existingTicket.setLastAdminResponse(usr.client) if(ismob(C)) //Old stuff can feed-in mobs instead of clients var/mob/M = C C = M.client