diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index fad493d9ee4..73520d79de7 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -344,9 +344,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"),
)
```