[MIRROR] Misc admin tools improvements [MDB IGNORE] (#10624)

* Misc admin tools improvements (#63665)

About The Pull Request

This PR makes a few small tweaks to admin tools that I think frequent users may appreciate.

    Adds the "Find Updated Panel" button to the player panel, which bring up that ckey's newest PP if one exists. Useful for when the person you're inspecting has changed mobs so you don't have to search for their new mob to get their new panel.
    Adds VV and TAG links to all the entries in the Get-Contents right click verb. This should make checking and editing someone's gear easier, since you don't have to VV the person -> their satchel -> their survival box -> their oxygen tank for example, you can just click the VV link for the tank directly.
    Lets you ignore punctuation in the F6 player search menu. This was a request, so if you have a silicon named "H.E.R.A.", you can now pull it up by just searching "hera". Also ignores spaces, but I doubt that'll cause any issues.

* Misc admin tools improvements

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
This commit is contained in:
SkyratBot
2022-01-12 13:35:49 +01:00
committed by GitHub
parent e5c1d472c6
commit de4e706abf
7 changed files with 36 additions and 6 deletions
+5 -1
View File
@@ -276,6 +276,9 @@
var/M_name = html_encode(M.name)
var/M_rname = html_encode(M.real_name)
var/M_rname_as_key = html_encode(ckey(M.real_name)) // so you can ignore punctuation
if(M_rname == M_rname_as_key)
M_rname_as_key = null
var/M_key = html_encode(M.key)
var/previous_names = ""
if(M_key)
@@ -294,10 +297,11 @@
onmouseover='expand("data[i]","item[i]")'
>
<b id='search[i]'>[M_name] - [M_rname] - [M_key] ([M_job])</b>
<span hidden class='filter_data'>[M_name] [M_rname] [M_key] [M_job] [previous_names]</span>
<span hidden class='filter_data'>[M_name] [M_rname] [M_rname_as_key] [M_key] [M_job] [previous_names]</span>
<span hidden id="data[i]_name">[M_name]</span>
<span hidden id="data[i]_job">[M_job]</span>
<span hidden id="data[i]_rname">[M_rname]</span>
<span hidden id="data[i]_rname_as_key">[M_rname_as_key]</span>
<span hidden id="data[i]_prevnames">[previous_names]</span>
<span hidden id="data[i]_key">[M_key]</span>
<span hidden id="data[i]_lastip">[M.lastKnownIP]</span>
+1 -1
View File
@@ -94,7 +94,7 @@
specific_info = "[resolved_subsystem.stat_entry()]"
// else, it's just a /datum
dat += "\t[index]: [iter_datum] | [specific_info] | [ADMIN_VV(iter_datum)]| [TAG_DEL(iter_datum)] | [iter_datum == marked_datum ? "<b>Marked</b>" : TAG_MARK(iter_datum)] "
dat += "\t[index]: [iter_datum] | [specific_info] | [ADMIN_VV(iter_datum)] | [TAG_DEL(iter_datum)] | [iter_datum == marked_datum ? "<b>Marked</b>" : TAG_MARK(iter_datum)] "
dat += "\t(<b><font size='2'>[iter_datum.type])</font></b>"
else
dat += "No datums tagged :("
+23
View File
@@ -778,6 +778,21 @@
var/mob/M = locate(href_list["adminplayeropts"])
show_player_panel(M)
else if(href_list["ppbyckey"])
var/target_ckey = href_list["ppbyckey"]
var/mob/original_mob = locate(href_list["ppbyckeyorigmob"]) in GLOB.mob_list
var/mob/target_mob = get_mob_by_ckey(target_ckey)
if(!target_mob)
to_chat(usr, span_warning("No mob found with that ckey."))
return
if(original_mob == target_mob)
to_chat(usr, span_warning("[target_ckey] is still in their original mob: [original_mob]."))
return
to_chat(usr, span_notice("Jumping to [target_ckey]'s new mob: [target_mob]!"))
show_player_panel(target_mob)
else if(href_list["adminplayerobservefollow"])
if(!isobserver(usr) && !check_rights(R_ADMIN))
return
@@ -1981,6 +1996,14 @@
return
GLOB.interviews.ui_interact(usr)
else if(href_list["tag_datum"])
if(!check_rights(R_ADMIN))
return
var/datum/datum_to_tag = locate(href_list["tag_datum"])
if(!datum_to_tag)
return
return add_tagged_datum(datum_to_tag)
else if(href_list["del_tag"])
if(!check_rights(R_ADMIN))
return
+3
View File
@@ -27,6 +27,9 @@
else
body += " \[<A href='?_src_=holder;[HrefToken()];revive=[REF(M)]'>Heal</A>\] "
if(M.ckey)
body += "<br>\[<A href='?_src_=holder;[HrefToken()];ppbyckey=[M.ckey];ppbyckeyorigmob=[REF(M)]'>Find Updated Panel</A>\]"
if(M.client)
body += "<br>\[<b>First Seen:</b> [M.client.player_join_date]\]\[<b>Byond account registered on:</b> [M.client.account_join_date]\]"
body += "<br><br><b>CentCom Galactic Ban DB: </b> "
+1 -1
View File
@@ -511,7 +511,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
var/list/L = M.get_contents()
for(var/t in L)
to_chat(usr, "[t]", confidential = TRUE)
to_chat(usr, "[t] [ADMIN_VV(t)] [ADMIN_TAG(t)]", confidential = TRUE)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Check Contents") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/modify_goals()