diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm index c450ec3d1cc..17d4f72721b 100644 --- a/code/modules/admin/DB_ban/functions.dm +++ b/code/modules/admin/DB_ban/functions.dm @@ -329,7 +329,7 @@ holder.DB_ban_panel() -/datum/admins/proc/DB_ban_panel(playerckey = null, adminckey = null) +/datum/admins/proc/DB_ban_panel(playerckey = null, adminckey = null, page = 0) if(!usr.client) return @@ -390,7 +390,30 @@ output += "Please note that all jobban bans or unbans are in-effect the following round." if(adminckey || playerckey) - + playerckey = sanitizeSQL(ckey(playerckey)) + adminckey = sanitizeSQL(ckey(adminckey)) + var/playersearch = "" + var/adminsearch = "" + if(playerckey) + playersearch = "AND ckey = '[playerckey]' " + if(adminckey) + adminsearch = "AND a_ckey = '[adminckey]' " + var/bancount = 0 + var/bansperpage = 15 + var/pagecount = 0 + page = text2num(page) + var/DBQuery/query_count_bans = dbcon.NewQuery("SELECT COUNT(id) FROM [format_table_name("ban")] WHERE 1 [playersearch] [adminsearch]") + if(!query_count_bans.warn_execute()) + return + if(query_count_bans.NextRow()) + bancount = text2num(query_count_bans.item[1]) + if(bancount > bansperpage) + output += "
Page: " + while(bancount > 0) + output+= "|[pagecount == page ? "\[[pagecount]\]" : "\[[pagecount]\]"]" + bancount -= bansperpage + pagecount++ + output += "|" var/blcolor = "#ffeeee" //banned light var/bdcolor = "#ffdddd" //banned dark var/ulcolor = "#eeffee" //unbanned light @@ -404,17 +427,8 @@ output += "ADMIN" output += "OPTIONS" output += "" - - adminckey = ckey(adminckey) - playerckey = ckey(playerckey) - var/adminsearch = "" - var/playersearch = "" - if(adminckey) - adminsearch = "AND a_ckey = '[adminckey]' " - if(playerckey) - playersearch = "AND ckey = '[playerckey]' " - - var/DBQuery/query_search_bans = dbcon.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits FROM [format_table_name("ban")] WHERE 1 [playersearch] [adminsearch] ORDER BY bantime DESC") + var/limit = " LIMIT [bansperpage * page], [bansperpage]" + var/DBQuery/query_search_bans = dbcon.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits FROM [format_table_name("ban")] WHERE 1 [playersearch] [adminsearch] ORDER BY bantime DESC[limit]") if(!query_search_bans.warn_execute()) return diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 3c7effff087..fee47a17856 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -181,8 +181,9 @@ else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"]) var/adminckey = href_list["dbsearchadmin"] var/playerckey = href_list["dbsearchckey"] + var/page = href_list["dbsearchpage"] - DB_ban_panel(playerckey, adminckey) + DB_ban_panel(playerckey, adminckey, page) return else if(href_list["dbbanedit"])