diff --git a/code/modules/admin/DB ban/functions.dm b/code/modules/admin/DB ban/functions.dm
index fcd05430..3cdc7914 100644
--- a/code/modules/admin/DB ban/functions.dm
+++ b/code/modules/admin/DB ban/functions.dm
@@ -316,6 +316,8 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
output += ""
output += "Please note that all jobban bans or unbans are in-effect the following round."
+ message_admins("Adminckey: [adminckey], playerckey: [playerckey].")
+
if(adminckey || playerckey)
var/blcolor = "#ffeeee" //banned light
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index ecf34e46..bae96f6a 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -91,7 +91,8 @@ var/list/admin_verbs_admin = list(
)
var/list/admin_verbs_ban = list(
/client/proc/unban_panel,
- /client/proc/jobbans
+ /client/proc/jobbans,
+ /client/proc/warning_panel
)
var/list/admin_verbs_sounds = list(
/client/proc/play_local_sound,
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index aac3e930..fbd50ddf 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -2804,4 +2804,11 @@
A.emagged = 0
usr << "Holodeck safeties reset."
message_admins("Holdeck reset.")
+ return
+
+ else if(href_list["warnsearchckey"] || href_list["warnsearchadmin"])
+ var/adminckey = href_list["warnsearchadmin"]
+ var/playerckey = href_list["warnsearchckey"]
+
+ warning_panel(adminckey, playerckey)
return
\ No newline at end of file
diff --git a/code/modules/admin/verbs/warning.dm b/code/modules/admin/verbs/warning.dm
index 40fcd955..d6f6cba4 100644
--- a/code/modules/admin/verbs/warning.dm
+++ b/code/modules/admin/verbs/warning.dm
@@ -65,9 +65,9 @@
if(!check_rights(R_ADMIN|R_MOD)) return
if(!warned_ckey || !istext(warned_ckey)) return
- if(warned_ckey in admin_datums)
- usr << "Error: warn(): You can't warn admins."
- return
+// if(warned_ckey in admin_datums)
+// usr << "Error: warn(): You can't warn admins."
+// return
var/datum/preferences/D
var/client/C = directory[warned_ckey]
@@ -101,13 +101,14 @@
severity = 1
var/sqlkey = sanitizeSQL(warned_ckey)
- var/computerid
- var/ip
+ var/computerid = null
+ var/ip = null
if(C)
computerid = C.computer_id
ip = C.address
- var/a_ckey = key_name_admin(src)
+ var/a_ckey = sanitizeSQL(ckey)
+ message_admins("Data to be entered: [severity], [reason], [notes], [sqlkey], [computerid], [ip], [a_ckey].")
var/DBQuery/query_insert = dbcon.NewQuery("INSERT INTO aurora_warnings (id, time, severity, reason, notes, ckey, computerid, ip, a_ckey) VALUES (null, Now(), '[severity]', '[reason]', '[notes]', '[sqlkey]', '[computerid]', '[ip]', '[a_ckey]')")
query_insert.Execute()
notes_add(warned_ckey, "Warning added by [a_ckey], for: [reason]. || Notes regarding the warning: [notes].")
@@ -119,21 +120,22 @@
* A proc for a player to check their own warnings
*/
-/client/verb/check_warns
+/client/verb/check_warns()
set name = "My warnings"
set category = "OOC"
+ set desc = "Display warnings issued to you."
var/lcolor = "#ffeeee" //light colour, severity = 1
- var/dcolor = "#ffdddd" //dark colour, severity = 2
- var/looksimilar = 0
- var/dat = ""
+ var/dcolor = "#ffaaaa" //dark colour, severity = 2
establish_db_connection()
if(!dbcon.IsConnected())
-// error("Connection to SQL database failed while attempting to fetch a player's warnings. Verb cancelled.")
-// dat += "
Database connection error. Warnings were not fetched. Please contact an Administrator.
"
+ error("Connection to SQL database failed while attempting to fetch a player's warnings. Verb cancelled.")
+ alert("Connection to the SQL database lost. Aborting. Please alert an Administrator or a member of staff.")
return
+ var/dat = "Warnings received
"
+
dat += ""
dat += ""
dat += "| ADMIN | "
@@ -148,62 +150,115 @@
while(search_query.NextRow())
var/time = search_query.item[1]
- var/seveiry = search_query.item[2]
+ var/severity = search_query.item[2]
var/reason = search_query.item[3]
var/a_ckey = search_query.item[4]
- if(severity)
- dat += "
"
- else
- dat += "
"
+ var/bgcolor = lcolor
+ if(severity == "1")
+ bgcolor = dcolor
+
+ dat += "
"
dat += "| [a_ckey] | "
dat += "[time] | "
dat += "[reason] | "
dat += "
"
- dat += "
"
- dat += "
"
- if(!looksimilar)
- dat += ""
+ dat += ""
+ dat += "|   | "
+ dat += "
"
-/client/proc/check_similar_warns(ip, cid)
- dat += "Warnings issued to players with similar credentials
"
- dat += "
"
+ dat += ""
+ usr << browse(dat, "window=mywarnings;size=900x500")
+
+/*
+ * A proc for an admin/moderator to look up a member's warnings.
+ */
+
+/client/proc/warning_panel()
+ set category = "Admin"
+ set name = "Warnings Panel"
+ set desc = "Look-up warnings assigned to players."
+
+ if(!holder)
+ return
+
+ holder.warning_panel()
+
+/datum/admins/proc/warning_panel(var/adminckey = null, var/playerckey = null)
+ if(!check_rights(R_ADMIN|R_MOD)) return
+
+ var/lcolor = "#ffeeee" //light colour, severity = 1
+ var/dcolor = "#ffdddd" //dark colour, severity = 2
establish_db_connection()
if(!dbcon.IsConnected())
- error("Connection to SQL database failed while attempting to fetch a player's warnings. Proc cancelled.")
- dat +="Database connection error. Warnings were not fetched. Please contact an Administrator.
"
+ error("Connection to SQL database failed while attempting to fetch a player's warnings. Verb cancelled.")
+ alert("Connection to the SQL database lost. Aborting. Please alert an Administrator or a member of staff.")
return
- dat += ""
- dat += ""
- dat += "| ADMIN | "
- dat += "CKEY ISSUED TO | "
- dat += "TIME ISSUED | "
- dat += "REASON | "
- dat += "
"
+ var/dat = "Warning Look-up Panel
"
- var/DBQuery/similar_query = dbcon.NewQuery("SELECT time, severity, reason, ckey, a_ckey FROM aurora_warnings WHERE computerid='[cid]' OR ip='[ip]' ORDER BY time DESC")
- similar_query.Execute()
+ //Totally not stealing code from the DB_ban_panel
- while(similar_query.NextRow())
- var/time = similar_query.item[1]
- var/severity = similar_query.item[2]
- var/reason = similar_query.item[3]
- var/ckey = similar_query.item[4]
- var/a_ckey = similar_query.item[5]
+ dat += ""
- if(severity)
- dat += ""
- else
- dat += "
"
+ if(adminckey || playerckey)
- dat += "| [a_ckey] | "
- dat += "[ckey] | "
- dat += "[time] | "
- dat += "[a_ckey] | "
+ dat += ""
+ dat += ""
+ dat += "| ISSUED TO | "
+ dat += "ISSUED BY | "
+ dat += "TIME ISSUED | "
+ dat += "REASON | "
dat += "
"
- dat += "
"
\ No newline at end of file
+ adminckey = ckey(adminckey)
+ playerckey = ckey(playerckey)
+ var/paramone = ""
+ var/paramtwo = ""
+ if(adminckey)
+ paramone = "AND a_ckey = '[adminckey]' "
+ if(playerckey)
+ paramtwo = "AND ckey = '[playerckey]' "
+
+ var/DBQuery/search_query = dbcon.NewQuery("SELECT time, severity, reason, notes, ckey, a_ckey FROM aurora_warnings WHERE 1 [paramone] [paramtwo] ORDER BY time DESC")
+ search_query.Execute()
+
+ while(search_query.NextRow())
+ var/time = search_query.item[1]
+ var/severity = search_query.item[2]
+ var/reason = search_query.item[3]
+ var/notes = search_query.item[4]
+ var/ckey = search_query.item[5]
+ var/a_ckey = search_query.item[6]
+
+ var/bgcolor = lcolor
+
+ if(severity == "1")
+ bgcolor = dcolor
+
+ dat += "
"
+ dat += "| [ckey] | "
+ dat += "[a_ckey] | "
+ dat += "[time] | "
+ dat += "[reason] | "
+ dat += "
"
+ dat += ""
+ dat += "| Staff Notes: \"[notes]\" | "
+ dat += "
"
+
+ dat += ""
+ dat += "|   | "
+ dat += "
"
+
+ dat +="
"
+
+ usr << browse(dat, "window=lookupwarns;size=900x500")
+ feedback_add_details("admin_verb","WARN-LKUP")
\ No newline at end of file
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index 75c63b67..c761ead0 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -55,14 +55,6 @@
cmd_admin_irc_pm()
return
- //For looking up warnings issued to similar accounts (based on IP and computerID)
- //Proc referenced can be found in warning.dm
- if(href_list["warning_similar"])
- var/client/C = locate(href_list["warning_similar"])
- var/ip = C.address
- var/cid = C.computerid
- check_similar_warns(ip, cid)
-
//Logs all hrefs
if(config && config.log_hrefs && href_logfile)