Organize and Beautify Admin Secrets Panel

* Add browser styles to Admin Secrets panel to make it look nice.
* Show only one category at once, with buttons to switch between categories at the top.
This commit is contained in:
Leshana
2016-05-27 16:16:29 -04:00
parent d6fe75bafa
commit 9f699257de
3 changed files with 26 additions and 8 deletions

View File

@@ -594,26 +594,33 @@ proc/admin_notice(var/message, var/rights)
usr << browse(dat, "window=admin2;size=210x280") usr << browse(dat, "window=admin2;size=210x280")
return return
/datum/admins/proc/Secrets() /datum/admins/proc/Secrets(var/datum/admin_secret_category/active_category = null)
if(!check_rights(0)) return if(!check_rights(0)) return
// Print the header with category selection buttons.
var/dat = "<B>The first rule of adminbuse is: you don't talk about the adminbuse.</B><HR>" var/dat = "<B>The first rule of adminbuse is: you don't talk about the adminbuse.</B><HR>"
for(var/datum/admin_secret_category/category in admin_secrets.categories) for(var/datum/admin_secret_category/category in admin_secrets.categories)
if(!category.can_view(usr)) if(!category.can_view(usr))
continue continue
dat += "<B>[category.name]</B><br>" dat += "<A href='?src=\ref[src];admin_secrets_panel=\ref[category]'>[category.name]</A> "
if(category.desc) dat += "<HR>"
dat += "<I>[category.desc]</I><BR>"
for(var/datum/admin_secret_item/item in category.items) // If a category is selected, print its description and then options
if(istype(active_category) && active_category.can_view(usr))
dat += "<B>[active_category.name]</B><BR>"
if(active_category.desc)
dat += "<I>[active_category.desc]</I><BR>"
for(var/datum/admin_secret_item/item in active_category.items)
if(!item.can_view(usr)) if(!item.can_view(usr))
continue continue
dat += "<A href='?src=\ref[src];admin_secrets=\ref[item]'>[item.name()]</A><BR>" dat += "<A href='?src=\ref[src];admin_secrets=\ref[item]'>[item.name()]</A><BR>"
dat += "<BR>" dat += "<BR>"
usr << browse(dat, "window=secrets")
var/datum/browser/popup = new(usr, "secrets", "Secrets", 500, 500)
popup.set_content(dat)
popup.open()
return return
/////////////////////////////////////////////////////////////////////////////////////////////////admins2.dm merge /////////////////////////////////////////////////////////////////////////////////////////////////admins2.dm merge
//i.e. buttons/verbs //i.e. buttons/verbs

View File

@@ -22,6 +22,9 @@ var/datum/admin_secrets/admin_secrets = new()
dd_insertObjectList(category.items, item) dd_insertObjectList(category.items, item)
items += item items += item
//
// Secret Item Category - Each subtype is a category for organizing secret commands.
//
/datum/admin_secret_category /datum/admin_secret_category
var/name = "" var/name = ""
var/desc = "" var/desc = ""
@@ -37,6 +40,10 @@ var/datum/admin_secrets/admin_secrets = new()
return 1 return 1
return 0 return 0
//
// Secret Item Datum - Each subtype is a command on the secrets panel.
// Override execute() with the implementation of the command.
//
/datum/admin_secret_item /datum/admin_secret_item
var/name = "" var/name = ""
var/category = null var/category = null

View File

@@ -1644,6 +1644,10 @@
log_and_message_admins("created [number] [english_list(paths)]") log_and_message_admins("created [number] [english_list(paths)]")
return return
else if(href_list["admin_secrets_panel"])
var/datum/admin_secret_category/AC = locate(href_list["admin_secrets_panel"]) in admin_secrets.categories
src.Secrets(AC)
else if(href_list["admin_secrets"]) else if(href_list["admin_secrets"])
var/datum/admin_secret_item/item = locate(href_list["admin_secrets"]) in admin_secrets.items var/datum/admin_secret_item/item = locate(href_list["admin_secrets"]) in admin_secrets.items
item.execute(usr) item.execute(usr)