feat: Update file browsing UI with Windows path instructions
This commit is contained in:
parent
a2a33c2a69
commit
00c764605b
@ -17,48 +17,6 @@ from main import (
|
||||
setup_logging
|
||||
)
|
||||
|
||||
def get_shared_path(title="Select Path"):
|
||||
"""Get path from shared network location"""
|
||||
try:
|
||||
# Define the base shared directory - modify this to match your network share
|
||||
base_dir = "/mnt/shared" # or wherever your Windows shares are mounted
|
||||
|
||||
# List available directories
|
||||
available_dirs = [d for d in os.listdir(base_dir)
|
||||
if os.path.isdir(os.path.join(base_dir, d))]
|
||||
|
||||
# Create a selection widget
|
||||
selected_dir = st.selectbox(
|
||||
f"{title} (Select shared folder)",
|
||||
options=available_dirs,
|
||||
key=f"select_{title.lower().replace(' ', '_')}"
|
||||
)
|
||||
|
||||
if selected_dir:
|
||||
full_path = os.path.join(base_dir, selected_dir)
|
||||
return full_path
|
||||
except Exception as e:
|
||||
st.error(f"Error accessing shared directories: {str(e)}")
|
||||
return None
|
||||
|
||||
def select_directory_with_dialog(title="Select Directory"):
|
||||
"""Use dialog command to select directory in terminal environment"""
|
||||
try:
|
||||
result = subprocess.run(
|
||||
['dialog', '--title', title, '--dselect', str(os.getcwd()), '20', '50'],
|
||||
env={'DIALOGRC': '/etc/dialogrc'},
|
||||
capture_output=True,
|
||||
text=True
|
||||
)
|
||||
if result.returncode == 0:
|
||||
return result.stderr.strip() # dialog outputs to stderr
|
||||
return None
|
||||
except FileNotFoundError:
|
||||
st.error("Please install 'dialog' package: sudo apt-get install dialog")
|
||||
return None
|
||||
except Exception as e:
|
||||
st.error(f"Error using dialog: {str(e)}")
|
||||
return None
|
||||
|
||||
def is_running_locally():
|
||||
"""Check if the app is running locally or in cloud environment"""
|
||||
@ -213,12 +171,19 @@ with col1:
|
||||
|
||||
col_src1, col_src2 = st.columns([1, 4])
|
||||
with col_src1:
|
||||
if st.button("Browse", key='source_browse'):
|
||||
shared_path = get_shared_path("Source Directory")
|
||||
if shared_path:
|
||||
st.session_state['source_dir'] = shared_path
|
||||
st.session_state['source_dir_input'] = shared_path
|
||||
st.experimental_rerun()
|
||||
if st.button("How to Browse", key='source_browse'):
|
||||
st.info("""
|
||||
To find your folder path in Windows:
|
||||
1. Open File Explorer
|
||||
2. Navigate to your desired folder
|
||||
3. Click in the address bar (or press Alt+D)
|
||||
4. Copy the full path (Ctrl+C)
|
||||
5. Paste it here (Ctrl+V)
|
||||
|
||||
Example paths:
|
||||
C:\\Users\\YourName\\Documents
|
||||
D:\\Work\\Files
|
||||
""")
|
||||
|
||||
# Add a check and display for source directory status
|
||||
if source_dir:
|
||||
@ -238,12 +203,19 @@ with col1:
|
||||
|
||||
col_dest1, col_dest2 = st.columns([1, 4])
|
||||
with col_dest1:
|
||||
if st.button("Browse", key='dest_browse'):
|
||||
shared_path = get_shared_path("Destination Directory")
|
||||
if shared_path:
|
||||
st.session_state['dest_dir'] = shared_path
|
||||
st.session_state['dest_dir_input'] = shared_path
|
||||
st.experimental_rerun()
|
||||
if st.button("How to Browse", key='dest_browse'):
|
||||
st.info("""
|
||||
To find your folder path in Windows:
|
||||
1. Open File Explorer
|
||||
2. Navigate to your desired folder
|
||||
3. Click in the address bar (or press Alt+D)
|
||||
4. Copy the full path (Ctrl+C)
|
||||
5. Paste it here (Ctrl+V)
|
||||
|
||||
Example paths:
|
||||
C:\\Users\\YourName\\Documents
|
||||
D:\\Work\\Files
|
||||
""")
|
||||
|
||||
# Add a check and display for destination directory status
|
||||
if dest_dir:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user