fix the webui the display available languages again
This commit is contained in:
@@ -43,7 +43,7 @@ if "status_container_key" not in st.session_state:
|
||||
def show_announcement_status():
|
||||
try:
|
||||
status_data = get_announcement_status()
|
||||
if status_data["state"] != "Ready":
|
||||
if status_data["state"] != "idle":
|
||||
# Create a container with a unique key for each announcement
|
||||
# This ensures we get a fresh container for each new announcement
|
||||
with st.container(key=f"status_container_{st.session_state.status_container_key}"):
|
||||
@@ -59,7 +59,7 @@ def show_announcement_status():
|
||||
last_state = None
|
||||
|
||||
# Update loop
|
||||
while status_data["state"] not in ["Complete", "Error"]:
|
||||
while status_data["state"] not in ["complete", "error"]:
|
||||
# Update time elapsed continuously
|
||||
|
||||
# Only update stage display if state changed
|
||||
@@ -79,7 +79,7 @@ def show_announcement_status():
|
||||
progress_bar.progress(status_data["progress"])
|
||||
|
||||
# Final state
|
||||
if status_data["state"] == "Error":
|
||||
if status_data["state"] == "error":
|
||||
st.error(f"❌ Error: {status_data['error']}")
|
||||
else:
|
||||
st.success("✅ Announcement completed successfully")
|
||||
@@ -203,6 +203,32 @@ with st.sidebar:
|
||||
st.session_state[f"prev_{endpoints_key}"] = selected_endpoints
|
||||
st.session_state.endpoint_groups = get_groups()
|
||||
st.rerun()
|
||||
|
||||
# Add language selection
|
||||
available_languages = st.session_state.available_languages
|
||||
# Use a unique key for the languages multiselect
|
||||
languages_key = f"languages_select_{i}"
|
||||
|
||||
# Initialize the previous value in session state if not present
|
||||
if f"prev_{languages_key}" not in st.session_state:
|
||||
st.session_state[f"prev_{languages_key}"] = group.get("languages", [])
|
||||
|
||||
selected_languages = st.multiselect(
|
||||
f"Languages",
|
||||
options=available_languages,
|
||||
default=group.get("languages", []),
|
||||
key=languages_key
|
||||
)
|
||||
|
||||
# Only update if languages have changed and they're different from previous value
|
||||
if selected_languages != group.get("languages", []) and selected_languages != st.session_state[f"prev_{languages_key}"]:
|
||||
updated_group = group.copy()
|
||||
updated_group["languages"] = selected_languages
|
||||
update_group(group["id"], updated_group)
|
||||
# Update the previous value before rerunning
|
||||
st.session_state[f"prev_{languages_key}"] = selected_languages
|
||||
st.session_state.endpoint_groups = get_groups()
|
||||
st.rerun()
|
||||
except requests.exceptions.RequestException as e:
|
||||
st.error(f"Failed to get available endpoints: {str(e)}")
|
||||
|
||||
@@ -226,15 +252,24 @@ with st.sidebar:
|
||||
try:
|
||||
available_endpoints = get_available_endpoints()
|
||||
new_group_endpoints = st.multiselect("Endpoints", options=available_endpoints)
|
||||
|
||||
# Add language selection for new group
|
||||
available_languages = st.session_state.available_languages
|
||||
new_group_languages = st.multiselect("Languages", options=available_languages)
|
||||
except requests.exceptions.RequestException as e:
|
||||
st.error(f"Failed to get available endpoints: {str(e)}")
|
||||
new_group_endpoints = []
|
||||
new_group_languages = []
|
||||
|
||||
if st.form_submit_button("Add Group"):
|
||||
if new_group_name:
|
||||
try:
|
||||
from api_client.client import create_group
|
||||
new_group = {"name": new_group_name, "endpoints": new_group_endpoints}
|
||||
new_group = {
|
||||
"name": new_group_name,
|
||||
"endpoints": new_group_endpoints,
|
||||
"languages": new_group_languages
|
||||
}
|
||||
create_group(new_group)
|
||||
# Update the session state with the latest groups
|
||||
st.session_state.endpoint_groups = get_groups()
|
||||
|
||||
Reference in New Issue
Block a user