Skip to content

Commit 6623351

Browse files
committed
use file route instead of Textbox
1 parent c7b3fcb commit 6623351

File tree

3 files changed

+33
-29
lines changed

3 files changed

+33
-29
lines changed

javascript/sysinfo.js

Lines changed: 0 additions & 22 deletions
This file was deleted.

javascript/ui.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,3 +434,17 @@ function onEdit(editId, elem, afterMs, func) {
434434

435435
return edited;
436436
}
437+
438+
function downloadSysinfo(path) {
439+
const pad = (n) => String(n).padStart(2, '0');
440+
const now = new Date();
441+
const YY = now.getFullYear();
442+
const MM = pad(now.getMonth() + 1);
443+
const DD = pad(now.getDate());
444+
const HH = pad(now.getHours());
445+
const mm = pad(now.getMinutes());
446+
const link = document.createElement('a');
447+
link.download = `sysinfo-${YY}-${MM}-${DD}-${HH}-${mm}.json`;
448+
link.href = path;
449+
link.click();
450+
}

modules/ui_settings.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import gradio as gr
2+
import json
23

3-
from modules import ui_common, shared, script_callbacks, scripts, sd_models, sysinfo, timer, shared_items
4+
from modules import ui_common, shared, script_callbacks, scripts, sd_models, sysinfo, timer, shared_items, paths_internal, util
45
from modules.call_queue import wrap_gradio_call_no_job
56
from modules.options import options_section
67
from modules.shared import opts
78
from modules.ui_components import FormRow
89
from modules.ui_gradio_extensions import reload_javascript
910
from concurrent.futures import ThreadPoolExecutor, as_completed
11+
from pathlib import Path
1012

1113

1214
def get_value_for_setting(key):
@@ -172,14 +174,24 @@ def create_ui(self, loadsave, dummy_component):
172174
with gr.TabItem("Sysinfo", id="sysinfo", elem_id="settings_tab_sysinfo"):
173175
download_sysinfo = gr.Button(value='Download system info', elem_id="internal-download-sysinfo", visible=False)
174176
open_sysinfo = gr.Button(value='Open as text in a new page', elem_id="internal-open-sysinfo", visible=False)
175-
sysinfo_textbox = gr.Textbox('', elem_id='internal-sysinfo-textbox', interactive=False, visible=False)
176177
sysinfo_html = gr.HTML('''<a class="sysinfo_big_link" onclick="gradioApp().getElementById('internal-download-sysinfo').click();">Download system info</a><br/><a onclick="gradioApp().getElementById('internal-open-sysinfo').click();">(or open as text in a new page)</a>''', elem_id="sysinfo_download")
177178

178-
def get_sysinfo():
179-
return sysinfo.get(), gr.update()
180-
181-
download_sysinfo.click(fn=get_sysinfo, outputs=[sysinfo_textbox, sysinfo_html], show_progress=True).then(fn=None, _js='downloadSysinfo')
182-
open_sysinfo.click(fn=get_sysinfo, outputs=[sysinfo_textbox, sysinfo_html], show_progress=True).then(fn=None, _js='openTabSysinfo')
179+
sysinfo_path = Path(paths_internal.script_path) / 'tmp' / 'sysinfo.json'
180+
181+
def create_sysinfo():
182+
sysinfo_path.parent.mkdir(parents=True, exist_ok=True)
183+
sysinfo_path.write_text(sysinfo.get(), encoding='utf8', newline='\n')
184+
return gr.update()
185+
186+
sysinfo_path_url = json.dumps(f"file={util.truncate_path(sysinfo_path)}")
187+
download_sysinfo.click(
188+
fn=create_sysinfo, outputs=[sysinfo_html], show_progress=True).success(
189+
fn=None, _js=f"function(){{downloadSysinfo({sysinfo_path_url});}}"
190+
)
191+
open_sysinfo.click(
192+
fn=create_sysinfo, outputs=[sysinfo_html], show_progress=True).success(
193+
fn=None, _js=f"function(){{window.open({sysinfo_path_url}, '_blank');}}"
194+
)
183195

184196
with gr.Row():
185197
with gr.Column(scale=1):

0 commit comments

Comments
 (0)