Add functionality to open current working directory in file explorer
- Implemented a new button in the UI to open the current working directory in the file explorer. - Added event listener for the new button that triggers an API call to open the directory. - Included validation to ensure a group is selected and the working directory is set before attempting to open the explorer. - Created a new JSON description file for the CSharpCodeMerger script group.
This commit is contained in:
parent
3975a96395
commit
ffabf6b2b0
49
app.py
49
app.py
|
@ -5,6 +5,7 @@ import os
|
|||
import json # Added import
|
||||
from datetime import datetime
|
||||
import time # Added for shutdown delay
|
||||
import sys # Added for platform detection
|
||||
import subprocess # Add this to the imports at the top
|
||||
|
||||
# --- Imports for System Tray Icon ---
|
||||
|
@ -109,7 +110,10 @@ def execute_script():
|
|||
@app.route("/")
|
||||
def index():
|
||||
script_groups = config_manager.get_script_groups()
|
||||
return render_template("index.html", script_groups=script_groups)
|
||||
# Para ordenar una lista de diccionarios, necesitamos especificar una clave.
|
||||
# Asumimos que cada diccionario tiene una clave 'name' por la cual ordenar.
|
||||
sorted_script_groups = sorted(script_groups, key=lambda group: group['name'])
|
||||
return render_template("index.html", script_groups=sorted_script_groups)
|
||||
|
||||
|
||||
@app.route("/api/config/<level>", methods=["GET", "POST"])
|
||||
|
@ -391,6 +395,49 @@ def open_miniconda_console():
|
|||
)
|
||||
|
||||
|
||||
@app.route("/api/open-explorer", methods=["POST"])
|
||||
def open_explorer_route():
|
||||
data = request.json
|
||||
frontend_path = data.get("path")
|
||||
group = data.get("group")
|
||||
|
||||
if not group:
|
||||
return jsonify({"status": "error", "message": "Grupo no proporcionado."}), 400
|
||||
if not frontend_path:
|
||||
return jsonify({"status": "error", "message": "Ruta no proporcionada."}), 400
|
||||
|
||||
# Obtener el directorio de trabajo configurado y normalizado para el grupo
|
||||
configured_work_dir_raw = config_manager.get_work_dir(group)
|
||||
if not configured_work_dir_raw:
|
||||
return jsonify({"status": "error", "message": f"No hay directorio de trabajo configurado para el grupo '{group}'."}), 404
|
||||
|
||||
configured_work_dir_abs = os.path.abspath(configured_work_dir_raw)
|
||||
frontend_path_abs = os.path.abspath(frontend_path)
|
||||
|
||||
# Validar que la ruta del frontend coincide con la ruta configurada
|
||||
if configured_work_dir_abs != frontend_path_abs:
|
||||
print(f"Intento de acceso no válido: Grupo '{group}', Frontend Path '{frontend_path_abs}', Configured Path '{configured_work_dir_abs}'")
|
||||
return jsonify({"status": "error", "message": "La ruta proporcionada no coincide con el directorio de trabajo seguro para este grupo."}), 403
|
||||
|
||||
# Validar que la ruta (ahora sabemos que es la configurada) realmente existe
|
||||
if not os.path.isdir(configured_work_dir_abs):
|
||||
return jsonify({"status": "error", "message": f"El directorio de trabajo configurado '{configured_work_dir_abs}' no es un directorio válido o no existe."}), 400
|
||||
|
||||
try:
|
||||
if sys.platform == "win32":
|
||||
os.startfile(configured_work_dir_abs)
|
||||
elif sys.platform == "darwin": # macOS
|
||||
subprocess.Popen(["open", configured_work_dir_abs])
|
||||
else: # linux variants
|
||||
subprocess.Popen(["xdg-open", configured_work_dir_abs])
|
||||
|
||||
return jsonify({"status": "success", "message": f"Abriendo '{configured_work_dir_abs}' en el explorador."})
|
||||
except Exception as e:
|
||||
error_msg = f"Error al abrir el explorador en '{configured_work_dir_abs}': {str(e)}"
|
||||
print(error_msg)
|
||||
return jsonify({"status": "error", "message": error_msg}), 500
|
||||
|
||||
|
||||
# --- System Tray Icon Functions ---
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"name": "Code : 01 : CSharpCodeMerger",
|
||||
"description": "Sin descripción",
|
||||
"version": "1.0",
|
||||
"author": "Unknown"
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "Desempaquetado de Emails EML",
|
||||
"name": "Emails : Desempaquetado de Emails EML",
|
||||
"description": "This script processes email files (.eml) into a chronological narrative in Markdown format, optimized for processing with Large Language Models (LLMs). It extracts essential information from emails while removing unnecessary metadata, creating a clean, temporal narrative that can be easily analyzed. ",
|
||||
"version": "1.0",
|
||||
"author": "Miguel"
|
||||
|
|
|
@ -1,33 +1,39 @@
|
|||
--- Log de Ejecución: x1.py ---
|
||||
Grupo: EmailCrono
|
||||
Directorio de Trabajo: C:\Trabajo\SIDEL\10 - E5.007095 - Modifica O&U - SAE463\Reporte\Email
|
||||
Inicio: 2025-05-09 16:58:28
|
||||
Fin: 2025-05-09 16:58:29
|
||||
Duración: 0:00:00.434600
|
||||
Directorio de Trabajo: C:\Trabajo\SIDEL\12 - SAE052 - Syrup Update & GSD Update\Reporte\Emails
|
||||
Inicio: 2025-05-18 16:00:44
|
||||
Fin: 2025-05-18 16:00:44
|
||||
Duración: 0:00:00.445734
|
||||
Estado: SUCCESS (Código de Salida: 0)
|
||||
|
||||
--- SALIDA ESTÁNDAR (STDOUT) ---
|
||||
Working directory: C:\Trabajo\SIDEL\10 - E5.007095 - Modifica O&U - SAE463\Reporte\Email
|
||||
Input directory: C:\Trabajo\SIDEL\10 - E5.007095 - Modifica O&U - SAE463\Reporte\Email
|
||||
Output directory: C:/Users/migue/OneDrive/Miguel/Obsidean/Trabajo/VM/04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463
|
||||
Cronologia file: C:/Users/migue/OneDrive/Miguel/Obsidean/Trabajo/VM/04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463\cronologia.md
|
||||
Attachments directory: C:\Trabajo\SIDEL\10 - E5.007095 - Modifica O&U - SAE463\Reporte\Email\adjuntos
|
||||
Working directory: C:\Trabajo\SIDEL\12 - SAE052 - Syrup Update & GSD Update\Reporte\Emails
|
||||
Input directory: C:\Trabajo\SIDEL\12 - SAE052 - Syrup Update & GSD Update\Reporte\Emails
|
||||
Output directory: C:/Users/migue/OneDrive/Miguel/Obsidean/Trabajo/VM/04-SIDEL/12 - SAE052 - Syrup Update & GSD Update
|
||||
Cronologia file: C:/Users/migue/OneDrive/Miguel/Obsidean/Trabajo/VM/04-SIDEL/12 - SAE052 - Syrup Update & GSD Update\cronologia.md
|
||||
Attachments directory: C:\Trabajo\SIDEL\12 - SAE052 - Syrup Update & GSD Update\Reporte\Emails\adjuntos
|
||||
Beautify rules file: D:\Proyectos\Scripts\ParamManagerScripts\backend\script_groups\EmailCrono\config\beautify_rules.json
|
||||
Found 1 .eml files
|
||||
Found 2 .eml files
|
||||
Loaded 0 existing messages
|
||||
|
||||
Processing C:\Trabajo\SIDEL\10 - E5.007095 - Modifica O&U - SAE463\Reporte\Email\R_ {EXT} E5.006894 - Modifica O&U - SAE463 New Analyzer.eml
|
||||
Processing C:\Trabajo\SIDEL\12 - SAE052 - Syrup Update & GSD Update\Reporte\Emails\I_ Backup SAE052.eml
|
||||
Aplicando reglas de prioridad 1
|
||||
Aplicando reglas de prioridad 2
|
||||
Aplicando reglas de prioridad 3
|
||||
Aplicando reglas de prioridad 4
|
||||
|
||||
Processing C:\Trabajo\SIDEL\12 - SAE052 - Syrup Update & GSD Update\Reporte\Emails\Parametri Modificati SAE052.eml
|
||||
Aplicando reglas de prioridad 1
|
||||
Aplicando reglas de prioridad 2
|
||||
Aplicando reglas de prioridad 3
|
||||
Aplicando reglas de prioridad 4
|
||||
|
||||
Estadísticas de procesamiento:
|
||||
- Total mensajes encontrados: 1
|
||||
- Mensajes únicos añadidos: 1
|
||||
- Total mensajes encontrados: 2
|
||||
- Mensajes únicos añadidos: 2
|
||||
- Mensajes duplicados ignorados: 0
|
||||
|
||||
Writing 1 messages to C:/Users/migue/OneDrive/Miguel/Obsidean/Trabajo/VM/04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463\cronologia.md
|
||||
Writing 2 messages to C:/Users/migue/OneDrive/Miguel/Obsidean/Trabajo/VM/04-SIDEL/12 - SAE052 - Syrup Update & GSD Update\cronologia.md
|
||||
|
||||
--- ERRORES (STDERR) ---
|
||||
Ninguno
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"cronologia_file": "cronologia.md"
|
||||
},
|
||||
"level3": {
|
||||
"output_directory": "C:/Users/migue/OneDrive/Miguel/Obsidean/Trabajo/VM/04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463"
|
||||
"output_directory": "C:/Users/migue/OneDrive/Miguel/Obsidean/Trabajo/VM/04-SIDEL/12 - SAE052 - Syrup Update & GSD Update"
|
||||
},
|
||||
"working_directory": "C:\\Trabajo\\SIDEL\\10 - E5.007095 - Modifica O&U - SAE463\\Reporte\\Email"
|
||||
"working_directory": "C:\\Trabajo\\SIDEL\\12 - SAE052 - Syrup Update & GSD Update\\Reporte\\Emails"
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"path": "C:\\Trabajo\\SIDEL\\10 - E5.007095 - Modifica O&U - SAE463\\Reporte\\Email",
|
||||
"path": "C:\\Trabajo\\SIDEL\\12 - SAE052 - Syrup Update & GSD Update\\Reporte\\Emails",
|
||||
"history": [
|
||||
"C:\\Trabajo\\SIDEL\\12 - SAE052 - Syrup Update & GSD Update\\Reporte\\Emails",
|
||||
"C:\\Trabajo\\SIDEL\\10 - E5.007095 - Modifica O&U - SAE463\\Reporte\\Email",
|
||||
"C:\\Trabajo\\SIDEL\\08 - Masselli TEST\\Reporte\\EMAILs",
|
||||
"C:\\Trabajo\\SIDEL\\EMAILs\\I_ E5.007727 _ Evo On - SFSRFH300172 + SFSRFH300109 - ANDIA LACTEOS",
|
||||
|
@ -9,7 +10,6 @@
|
|||
"C:\\Trabajo\\VM\\30 - 9.3941- Kosme - Portogallo (Modifica + Linea)\\Reporte\\Emails",
|
||||
"C:\\Users\\migue\\OneDrive\\Miguel\\Obsidean\\Trabajo\\VM\\30 - 9.3941- Kosme - Portogallo (Modifica + Linea)\\Emails",
|
||||
"C:\\Trabajo\\VM\\40 - 93040 - HENKEL - NEXT2 Problem\\Reporte\\Emails\\Trial",
|
||||
"C:\\Trabajo\\VM\\40 - 93040 - HENKEL - NEXT2 Problem\\Reporte\\Emails",
|
||||
"C:\\Trabajo\\VM\\40 - 93040 - HENKEL - NEXT2 Problem\\Reporte\\Emails\\Error de tablas"
|
||||
"C:\\Trabajo\\VM\\40 - 93040 - HENKEL - NEXT2 Problem\\Reporte\\Emails"
|
||||
]
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "Scripts para adaptar IO de Hardware S7 a IO Master en Tia Portal",
|
||||
"name": "Siemens-Tia : 01 : Scripts para adaptar IO de Hardware S7 a IO Master en Tia Portal",
|
||||
"description": "Este conjunto de scripts está diseñado para ayudar a los usuarios a adaptar el IO de Hardware S7 a un IO Master en Tia Portal. Incluye scripts para la creación de un nuevo proyecto, la importación de un proyecto existente y la adaptación del IO de Hardware S7 a un IO Master.",
|
||||
"version": "1.0",
|
||||
"author": "Miguel"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "Importación de Archivos HTML",
|
||||
"name": "Obsidean : 01 : Importación de Archivos HTML",
|
||||
"description": "Este script procesa archivos HTML en un directorio y los convierte en un único archivo Markdown, extrayendo las imágenes a una carpeta de adjuntos y manteniendo los enlaces. También genera un índice al principio del archivo.",
|
||||
"version": "1.0",
|
||||
"author": "Miguel"
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "Exportador de objetos de Tia Portal y procesador de CAx",
|
||||
"description": "Este conjunto de scripts exporta desde Tia Portal los objetos en fomarto XML y los objetos CAx. Luego se puede generar documentacion desde estos CAx de la periferia IO del PLC exportado.",
|
||||
"name": "Siemens-Tia : 02 : Exportador de objetos de Tia Portal en formato XML",
|
||||
"description": "Este conjunto de scripts exporta desde Tia Portal los objetos en fomarto XML.",
|
||||
"version": "1.0",
|
||||
"author": "Miguel"
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -5,5 +5,5 @@
|
|||
},
|
||||
"level2": {},
|
||||
"level3": {},
|
||||
"working_directory": "C:\\Trabajo\\SIDEL\\06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)\\Reporte\\IOExport"
|
||||
"working_directory": "C:\\Trabajo\\SIDEL\\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\\Reporte\\SourceDoc\\SourceXML"
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"x1.py": {
|
||||
"display_name": "1: Exportar Lógica desde TIA",
|
||||
"display_name": "1: Exportar Lógica desde TIA Portal",
|
||||
"short_description": "Exporta la lógica del PLC desde TIA Portal en archivos XML y SCL.",
|
||||
"long_description": "Este script utiliza TIA Portal Openness para exportar la lógica de un PLC en formato XML y SCL. Permite seleccionar un proyecto de TIA Portal y genera los archivos de exportación en el directorio configurado.\n***\n**Lógica Principal:**\n\n1. **Configuración:** Carga parámetros desde `ParamManagerScripts` (directorio de trabajo, versión de TIA Portal).\n2. **Selección de Proyecto:** Abre un cuadro de diálogo para seleccionar el archivo del proyecto de TIA Portal.\n3. **Conexión a TIA Portal:** Utiliza la API de TIA Openness para conectarse al portal y abrir el proyecto seleccionado.\n4. **Exportación:** Exporta la lógica del PLC en archivos XML y SCL al directorio configurado.\n5. **Cierre:** Cierra la conexión con TIA Portal al finalizar.",
|
||||
"hidden": false
|
||||
},
|
||||
"x4.py": {
|
||||
"display_name": "4: Exportar Referencias Cruzadas",
|
||||
"display_name": "2: Exportar Referencias Cruzadas desde Tia Portal",
|
||||
"short_description": "Script para exportar las referencias cruzadas",
|
||||
"long_description": "",
|
||||
"hidden": false
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"path": "C:\\Trabajo\\SIDEL\\06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)\\Reporte\\IOExport",
|
||||
"path": "C:\\Trabajo\\SIDEL\\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\\Reporte\\SourceDoc\\SourceXML",
|
||||
"history": [
|
||||
"C:\\Trabajo\\SIDEL\\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\\Reporte\\SourceDoc\\SourceXML",
|
||||
"C:\\Trabajo\\SIDEL\\06 - E5.007363 - Modifica O&U - SAE196 (cip integrato)\\Reporte\\IOExport"
|
||||
]
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "S7 DB Utilities",
|
||||
"name": "Siemens-S7 : 01 : S7 DB Utilities",
|
||||
"description": "Utilidades para Trabajar con DBs de Siemens S7",
|
||||
"version": "1.0",
|
||||
"author": "Miguel"
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
--- Log de Ejecución: x7_value_updater.py ---
|
||||
Grupo: S7_DB_Utils
|
||||
Directorio de Trabajo: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001
|
||||
Inicio: 2025-05-18 13:56:40
|
||||
Fin: 2025-05-18 13:56:41
|
||||
Duración: 0:00:01.040596
|
||||
Inicio: 2025-05-18 15:48:00
|
||||
Fin: 2025-05-18 15:48:01
|
||||
Duración: 0:00:00.811974
|
||||
Estado: SUCCESS (Código de Salida: 0)
|
||||
|
||||
--- SALIDA ESTÁNDAR (STDOUT) ---
|
||||
|
@ -13,21 +13,21 @@ Los archivos de documentación se guardarán en: C:\Trabajo\SIDEL\09 - SAE452 -
|
|||
Se encontraron 1 pares de archivos para procesar.
|
||||
|
||||
--- Procesando par de archivos ---
|
||||
Data file: db1001_data.db
|
||||
Format file: db1001_format.db
|
||||
Parseando archivo data: db1001_data.db
|
||||
Parseando archivo format: db1001_format.db
|
||||
Archivos JSON generados: db1001_data.json y db1001_format.json
|
||||
Data file: DB1001_data.AWL
|
||||
Format file: DB1001_format.AWL
|
||||
Parseando archivo data: DB1001_data.AWL
|
||||
Parseando archivo format: DB1001_format.AWL
|
||||
Archivos JSON generados: DB1001_data.json y DB1001_format.json
|
||||
Comparando estructuras para DB 'HMI_Blender_Parameters': 284 variables en _data, 284 variables en _format
|
||||
|
||||
Los archivos son compatibles. Creando el archivo _updated...
|
||||
Procesando DB 'HMI_Blender_Parameters': 284 variables en _format, 284 variables en _data
|
||||
Estadísticas para DB 'HMI_Blender_Parameters': 280 variables actualizadas, 0 no encontradas
|
||||
Archivo _updated generado: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001\json\db1001_updated.json
|
||||
Archivo Excel de comparación generado: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001\documentation\db1001_comparison.xlsx
|
||||
Archivo Markdown generado: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001\documentation\db1001_updated.md
|
||||
Archivo S7 generado: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001\documentation\db1001_updated.txt
|
||||
Archivo S7 copiado a: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001\db1001_updated.db
|
||||
Archivo _updated generado: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001\json\DB1001_updated.json
|
||||
Archivo Excel de comparación generado: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001\documentation\DB1001_comparison.xlsx
|
||||
Archivo Markdown generado: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001\documentation\DB1001_updated.md
|
||||
Archivo S7 generado: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001\documentation\DB1001_updated.txt
|
||||
Archivo S7 copiado a: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001\DB1001_updated.AWL
|
||||
|
||||
--- Proceso completado ---
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "Procesador de XML LAD-SCL-AWL exportado de TIA a SCL / Markdown",
|
||||
"name": "Siemens-Tia : 03 : Procesador de XML LAD-SCL-AWL exportado de TIA a SCL / Markdown",
|
||||
"description": "Conjunto de scripts que procesan archivos XML exportados de TIA, conviertiendo los objetos LAD a SCL y generando documentación en formato Markdown. ",
|
||||
"version": "1.0",
|
||||
"author": "Miguel"
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
"hidden": true
|
||||
},
|
||||
"x4_cross_reference.py": {
|
||||
"display_name": "4: Generar Cross References",
|
||||
"display_name": "2: Procesar un archivo individual usando x4",
|
||||
"short_description": "LadderToSCL - Conversor de Siemens LAD/FUP XML a SCL",
|
||||
"long_description": "",
|
||||
"hidden": false
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "Grupo de Ejemplo Auto",
|
||||
"name": "Code : 00 : Grupo de Ejemplo Auto",
|
||||
"description": "Scripts de demostración que muestran las funcionalidades básicas del sistema.",
|
||||
"version": "1.0",
|
||||
"author": "Admin"
|
||||
|
|
1675
data/log.txt
1675
data/log.txt
File diff suppressed because it is too large
Load Diff
|
@ -913,6 +913,12 @@ async function initializeApp() {
|
|||
// Agregar el nuevo manejador de eventos
|
||||
selectElement.addEventListener('change', handleGroupChange);
|
||||
|
||||
// Event listener para el nuevo botón de abrir en explorador
|
||||
const openInExplorerButton = document.getElementById('open-in-explorer-btn');
|
||||
if (openInExplorerButton) {
|
||||
openInExplorerButton.addEventListener('click', openCurrentWorkingDirectoryInExplorer);
|
||||
}
|
||||
|
||||
// Cargar datos iniciales
|
||||
updateGroupDescription();
|
||||
await initWorkingDirectory();
|
||||
|
@ -1314,4 +1320,40 @@ function openMinicondaConsole() {
|
|||
console.error('Error opening Miniconda Console:', error);
|
||||
showNotification('Error al comunicarse con el servidor', 'error');
|
||||
});
|
||||
}
|
||||
|
||||
async function openCurrentWorkingDirectoryInExplorer() {
|
||||
const group = currentGroup; // Asumiendo que currentGroup está disponible globalmente
|
||||
const wdInput = document.getElementById('working-directory');
|
||||
const path = wdInput.value;
|
||||
|
||||
if (!group) {
|
||||
showToast("Por favor, selecciona un grupo primero.", "warning"); // O usa alert() si showToast no está definida
|
||||
// alert("Por favor, selecciona un grupo primero.");
|
||||
return;
|
||||
}
|
||||
if (!path || path.trim() === "") {
|
||||
showToast("El directorio de trabajo no está establecido.", "warning");
|
||||
// alert("El directorio de trabajo no está establecido.");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await fetch('/api/open-explorer', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({ path: path, group: group })
|
||||
});
|
||||
const result = await response.json();
|
||||
if (result.status === "success") {
|
||||
// No es necesario un toast para éxito, la acción es visible
|
||||
} else {
|
||||
showToast(result.message || "Error al intentar abrir el explorador.", "error");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error de red al abrir en explorador:", error);
|
||||
showToast("Error de red al intentar abrir el explorador.", "error");
|
||||
}
|
||||
}
|
|
@ -119,6 +119,9 @@
|
|||
<button class="bg-gray-500 text-white px-4 py-2 rounded" onclick="browseDirectory()">
|
||||
Explorar
|
||||
</button>
|
||||
<button id="open-in-explorer-btn" class="bg-indigo-500 hover:bg-indigo-600 text-white px-4 py-2 rounded" title="Abrir directorio actual en el explorador de archivos">
|
||||
Abrir Carpeta
|
||||
</button>
|
||||
</div>
|
||||
<button class="bg-blue-500 text-white px-4 py-2 rounded" onclick="setWorkingDirectory()">
|
||||
Confirmar
|
||||
|
|
Loading…
Reference in New Issue