|
@@ -68,8 +68,13 @@ def create_query_palette(query_palette: List[QueryTemplate]):
|
|
|
with dpg.theme_component(dpg.mvAll):
|
|
|
dpg.add_theme_color(dpg.mvThemeCol_Text, (200, 200, 100), category=dpg.mvThemeCat_Core)
|
|
|
dpg.add_theme_style(dpg.mvStyleVar_FrameRounding, 0, category=dpg.mvThemeCat_Core)
|
|
|
+ with dpg.theme() as modifies_theme:
|
|
|
+ with dpg.theme_component(dpg.mvAll):
|
|
|
+ dpg.add_theme_color(dpg.mvThemeCol_Text, (200, 50, 50), category=dpg.mvThemeCat_Core)
|
|
|
if query_template.visual_support:
|
|
|
dpg.bind_item_theme(query_button, item_theme)
|
|
|
+ if query_template.modifies:
|
|
|
+ dpg.bind_item_theme(query_button, modifies_theme)
|
|
|
dpg.configure_item(query_template_group, filter_key=full_filter)
|
|
|
|
|
|
def create_query_options(endpoint: str):
|
|
@@ -90,6 +95,8 @@ def create_query_editor_visual(example_prefix:str, example_query:str, show: bool
|
|
|
dpg.add_input_text(default_value=example_query, callback=_log, multiline=True, on_enter=True, height=300, width=-1, tag="__query_editor_visual_input")
|
|
|
with dpg.tab(label="Prefix", tag="__prefix_tab"):
|
|
|
dpg.add_input_text(default_value=example_prefix, callback=_log, multiline=True, on_enter=True, height=300, width=-1, tag="__prefix_editor_visual_input")
|
|
|
+ with dpg.tab(label="Advanced", tag="__advanced_tab"):
|
|
|
+ dpg.add_checkbox(label="Use post method", default_value=False, tag="__use_post_method")
|
|
|
with dpg.group(tag="__visual_editor_fields"):
|
|
|
# TODO Make more clear which placeholder is getting replaced (Maybe do it interactively, replace as user changes)
|
|
|
pass
|
|
@@ -156,9 +163,6 @@ def create_query_results():
|
|
|
def _log(sender: int, app_data: str, user_data: Optional[dict]):
|
|
|
logging.debug(f"sender: {sender}, \t app_data: {app_data}, \t user_data: {user_data}")
|
|
|
|
|
|
-def _perform_text_query(sender: int, app_data: str, user_data: Optional[dict]):
|
|
|
- logging.debug(f"sender: {sender}, \t app_data: {app_data}, \t user_data: {user_data}")
|
|
|
-
|
|
|
def _mode_select(sender: int, mode: str, user_data: Optional[dict]):
|
|
|
mode = mode.lower().strip()
|
|
|
visual = mode == "visual"
|
|
@@ -180,6 +184,7 @@ def _query_palette_click(sender: int, mode: str, user_data: Optional[QueryTempla
|
|
|
dpg.set_value("__status_console", f"Using {mode} template '{user_data.name}'.")
|
|
|
dpg.set_value(f"__prefix_editor_{mode}_input", user_data.prefix)
|
|
|
dpg.set_value(f"__query_editor_{mode}_input", user_data.query)
|
|
|
+ dpg.set_value(f"__use_post_method", user_data.modifies)
|
|
|
dpg.delete_item("__visual_editor_fields", children_only=True)
|
|
|
if mode == "visual" and user_data.visual_support:
|
|
|
for replacement in user_data.replacements:
|
|
@@ -191,17 +196,23 @@ def _perform_query(sender: int, mode: str, user_data: Optional[dict]):
|
|
|
prefix_text = dpg.get_value(f"__prefix_editor_{mode}_input")
|
|
|
query_text = dpg.get_value(f"__query_editor_{mode}_input")
|
|
|
endpoint = dpg.get_value("__endpoint_input")
|
|
|
+ use_post_method = dpg.get_value("__use_post_method")
|
|
|
try:
|
|
|
if mode=="visual":
|
|
|
for replacement_field in dpg.get_item_children("__visual_editor_fields", 1):
|
|
|
value = dpg.get_value(replacement_field)
|
|
|
placeholder = dpg.get_item_user_data(replacement_field).placeholder
|
|
|
query_text = query_text.replace(f"{{{{ {placeholder} }}}}", value)
|
|
|
- query_result = query.perform_query(endpoint, prefix_text + "\n" + query_text)
|
|
|
+ query_result = query.perform_query(endpoint, prefix_text + "\n" + query_text, use_post_method)
|
|
|
except URLError as e:
|
|
|
logging.error(f"Connection to '{endpoint}' failed.")
|
|
|
dpg.set_value(f"__status_console", f"Connection to '{endpoint}' failed.")
|
|
|
return
|
|
|
+ if use_post_method:
|
|
|
+ logging.debug(f"{query_result}")
|
|
|
+ if query_result:
|
|
|
+ dpg.set_value(f"__status_console", f"{query_result}")
|
|
|
+ return
|
|
|
result_items = query_result["results"]["bindings"]
|
|
|
if not result_items:
|
|
|
dpg.delete_item("__result_table", children_only=True) # TODO Clear table https://github.com/hoffstadt/DearPyGui/issues/1350
|