Files
wehub-resource-sync 7d6672c63e
Deploy Documentation / deploy (push) Failing after 1s
chore: import upstream snapshot with attribution
2026-07-13 12:19:20 +08:00

98 lines
3.2 KiB
Python

# Copyright (C) 2025 AIDC-AI
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
Streamlit helper functions
"""
import streamlit as st
import streamlit.components.v1 as components
from web.i18n import tr
from pixelle_video.config import config_manager
def safe_rerun():
"""Safe rerun that works with both old and new Streamlit versions"""
if hasattr(st, 'rerun'):
st.rerun()
else:
st.experimental_rerun()
# ============================================================================
# SelfHost Workflow Warning - Using Native JavaScript Alert
# ============================================================================
# Uses native browser alert() to avoid Streamlit's dialog limitations.
# This is simple, reliable, and works across all browsers.
def check_and_warn_selfhost_workflow(workflow_path: str):
"""
Check if user just switched to a selfhost workflow and show JS alert.
Uses native JavaScript alert() which bypasses all Streamlit dialog limitations.
The alert is shown immediately when user switches to a selfhost workflow.
Args:
workflow_path: The workflow path (e.g., "selfhost/image_flux.json")
"""
if not workflow_path:
return
# Check if this is a transition TO selfhost
is_selfhost = workflow_path.startswith("selfhost/")
# Only show alert when transitioning TO selfhost
if is_selfhost:
_show_js_alert(workflow_path)
def _show_js_alert(workflow_path: str):
"""
Show a native JavaScript alert with selfhost workflow warning.
Args:
workflow_path: The workflow path to display in the alert
"""
# Get ComfyUI URL from config
comfyui_config = config_manager.get_comfyui_config()
comfyui_url = comfyui_config.get("comfyui_url", "http://localhost:8188")
# Build alert message
title = tr("selfhost.warning.title")
message = tr("selfhost.warning.message",
comfyui_url=comfyui_url,
workflow_path=f"workflows/{workflow_path}")
hint = tr("selfhost.warning.hint")
# Clean up markdown formatting for plain text alert
# Remove ** (bold markers) and other markdown
message = message.replace("**", "").replace("*", "")
hint = hint.replace("**", "").replace("*", "")
# Combine into single alert message
full_message = f"{title}\\n\\n{message}\\n\\n{hint}"
# Escape for JavaScript string
full_message = full_message.replace("'", "\\'").replace('"', '\\"')
full_message = full_message.replace("\n", "\\n")
# Inject JavaScript alert
js_code = f"""
<script>
alert("{full_message}");
</script>
"""
components.html(js_code, height=0, width=0)