From e2745d940c27ceb37b9f1800ff3b4d49bc498de8 Mon Sep 17 00:00:00 2001 From: Ivan Usov Date: Wed, 29 Jul 2020 18:21:45 +0200 Subject: [PATCH] Add button for config upload --- pyzebra/app/panel_anatric.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/pyzebra/app/panel_anatric.py b/pyzebra/app/panel_anatric.py index 53010a3..d0b0150 100644 --- a/pyzebra/app/panel_anatric.py +++ b/pyzebra/app/panel_anatric.py @@ -1,9 +1,19 @@ +import base64 +import io import re import tempfile from bokeh.io import curdoc from bokeh.layouts import column, row -from bokeh.models import Button, Panel, RadioButtonGroup, Select, TextAreaInput, TextInput +from bokeh.models import ( + Button, + FileInput, + Panel, + RadioButtonGroup, + Select, + TextAreaInput, + TextInput, +) import pyzebra @@ -87,6 +97,13 @@ def create(): fileinput = TextInput(title="Path to XML configuration file:", width=600) fileinput.on_change("value", fileinput_callback) + def upload_button_callback(_attr, _old, new): + with io.BytesIO(base64.b64decode(new)) as file: + fileinput_callback(None, None, file) + + upload_button = FileInput(accept=".xml") + upload_button.on_change("value", upload_button_callback) + # General parameters # ---- logfile def logfile_textinput_callback(_attr, _old, new): @@ -340,6 +357,7 @@ def create(): tab_layout = row( column( fileinput, + upload_button, row(logfile_textinput, logfile_verbosity_select), row(filelist_type, filelist_format_textinput), filelist_datapath_textinput,