From 1d87e5270cc5de5deaf154dd0d6b3995a1d7ea1f Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Fri, 27 May 2022 13:44:57 +0200 Subject: [PATCH] [MIRROR] adds the "refresh TGUI" debug verb [MDB IGNORE] (#13933) * adds the "refresh TGUI" debug verb (#67265) About The Pull Request adds the Refresh TGUI verb to the debug category OOC category, but it isn't locked behind any permissions. i'd put it in OOC, but.. eeeeeeh? there's not real much use for this verb other for debuggers. i put it in the OOC category Why It's Good For The Game debug purposes mostly not player facing lole * adds the "refresh TGUI" debug verb Co-authored-by: magatsuchi <88991542+magatsuchi@users.noreply.github.com> --- code/modules/client/client_procs.dm | 6 +++--- code/modules/tgui/tgui_window.dm | 13 ++++++------- code/modules/tgui_panel/external.dm | 9 +++++++++ tgui/docs/tgui-for-custom-html-popups.md | 6 +++--- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index d085187d9af..d5937e41ed4 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -353,9 +353,9 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( // Initialize stat panel stat_panel.initialize( - inline_html = file2text('html/statbrowser.html'), - inline_js = file2text('html/statbrowser.js'), - inline_css = file2text('html/statbrowser.css'), + inline_html = file("html/statbrowser.html"), + inline_js = file("html/statbrowser.js"), + inline_css = file("html/statbrowser.css"), ) addtimer(CALLBACK(src, .proc/check_panel_loaded), 30 SECONDS) diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm index d0fb91db0cc..ded443f37a0 100644 --- a/code/modules/tgui/tgui_window.dm +++ b/code/modules/tgui/tgui_window.dm @@ -102,14 +102,14 @@ html = replacetextEx(html, "\n", inline_assets_str) // Inject inline HTML if (inline_html) - html = replacetextEx(html, "", inline_html) + html = replacetextEx(html, "", isfile(inline_html) ? file2text(inline_html) : inline_html) // Inject inline JS if (inline_js) - inline_js = "" + inline_js = "" html = replacetextEx(html, "", inline_js) // Inject inline CSS if (inline_css) - inline_css = "" + inline_css = "" html = replacetextEx(html, "", inline_css) // Open the window client << browse(html, "window=[id];[options]") @@ -132,6 +132,9 @@ inline_html = initial_inline_html, inline_js = initial_inline_js, inline_css = initial_inline_css) + // Resend assets + for(var/datum/asset/asset in sent_assets) + send_asset(asset) /** * public @@ -365,11 +368,7 @@ if("openLink") client << link(href_list["url"]) if("cacheReloaded") - // Reinitialize reinitialize() - // Resend the assets - for(var/asset in sent_assets) - send_asset(asset) /datum/tgui_window/vv_edit_var(var_name, var_value) return var_name != NAMEOF(src, id) && ..() diff --git a/code/modules/tgui_panel/external.dm b/code/modules/tgui_panel/external.dm index e5b3602e868..ddc3c0e97d5 100644 --- a/code/modules/tgui_panel/external.dm +++ b/code/modules/tgui_panel/external.dm @@ -35,3 +35,12 @@ // Force show the panel to see if there are any errors winset(src, "output", "is-disabled=1&is-visible=0") winset(src, "browseroutput", "is-disabled=0;is-visible=1") + +/client/verb/refresh_tgui() + set name = "Refresh TGUI" + set category = "OOC" + + message_admins("start") + for(var/window_id in tgui_windows) + var/datum/tgui_window/window = tgui_windows[window_id] + window.reinitialize() diff --git a/tgui/docs/tgui-for-custom-html-popups.md b/tgui/docs/tgui-for-custom-html-popups.md index 5fe0e8ff78c..ad563a693b0 100644 --- a/tgui/docs/tgui-for-custom-html-popups.md +++ b/tgui/docs/tgui-for-custom-html-popups.md @@ -85,9 +85,9 @@ You can also do the same by splitting your code into separate files, and then le ```dm window.initialize( - inline_html = file2text('code/modules/thing/thing.html'), - inline_js = file2text('code/modules/thing/thing.js'), - inline_css = file2text('code/modules/thing/thing.css'), + inline_html = file("code/modules/thing/thing.html"), + inline_js = file("code/modules/thing/thing.js"), + inline_css = file("code/modules/thing/thing.css"), ) ```