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
|
import json # Added import
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import time # Added for shutdown delay
|
import time # Added for shutdown delay
|
||||||
|
import sys # Added for platform detection
|
||||||
import subprocess # Add this to the imports at the top
|
import subprocess # Add this to the imports at the top
|
||||||
|
|
||||||
# --- Imports for System Tray Icon ---
|
# --- Imports for System Tray Icon ---
|
||||||
|
@ -109,7 +110,10 @@ def execute_script():
|
||||||
@app.route("/")
|
@app.route("/")
|
||||||
def index():
|
def index():
|
||||||
script_groups = config_manager.get_script_groups()
|
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"])
|
@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 ---
|
# --- 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. ",
|
"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",
|
"version": "1.0",
|
||||||
"author": "Miguel"
|
"author": "Miguel"
|
||||||
|
|
|
@ -1,33 +1,39 @@
|
||||||
--- Log de Ejecución: x1.py ---
|
--- Log de Ejecución: x1.py ---
|
||||||
Grupo: EmailCrono
|
Grupo: EmailCrono
|
||||||
Directorio de Trabajo: C:\Trabajo\SIDEL\10 - E5.007095 - Modifica O&U - SAE463\Reporte\Email
|
Directorio de Trabajo: C:\Trabajo\SIDEL\12 - SAE052 - Syrup Update & GSD Update\Reporte\Emails
|
||||||
Inicio: 2025-05-09 16:58:28
|
Inicio: 2025-05-18 16:00:44
|
||||||
Fin: 2025-05-09 16:58:29
|
Fin: 2025-05-18 16:00:44
|
||||||
Duración: 0:00:00.434600
|
Duración: 0:00:00.445734
|
||||||
Estado: SUCCESS (Código de Salida: 0)
|
Estado: SUCCESS (Código de Salida: 0)
|
||||||
|
|
||||||
--- SALIDA ESTÁNDAR (STDOUT) ---
|
--- SALIDA ESTÁNDAR (STDOUT) ---
|
||||||
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
|
||||||
Input directory: C:\Trabajo\SIDEL\10 - E5.007095 - Modifica O&U - SAE463\Reporte\Email
|
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/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
|
||||||
Cronologia file: C:/Users/migue/OneDrive/Miguel/Obsidean/Trabajo/VM/04-SIDEL/10 - E5.007095 - Modifica O&U - SAE463\cronologia.md
|
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\10 - E5.007095 - Modifica O&U - SAE463\Reporte\Email\adjuntos
|
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
|
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
|
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 1
|
||||||
Aplicando reglas de prioridad 2
|
Aplicando reglas de prioridad 2
|
||||||
Aplicando reglas de prioridad 3
|
Aplicando reglas de prioridad 3
|
||||||
Aplicando reglas de prioridad 4
|
Aplicando reglas de prioridad 4
|
||||||
|
|
||||||
Estadísticas de procesamiento:
|
Estadísticas de procesamiento:
|
||||||
- Total mensajes encontrados: 1
|
- Total mensajes encontrados: 2
|
||||||
- Mensajes únicos añadidos: 1
|
- Mensajes únicos añadidos: 2
|
||||||
- Mensajes duplicados ignorados: 0
|
- 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) ---
|
--- ERRORES (STDERR) ---
|
||||||
Ninguno
|
Ninguno
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
"cronologia_file": "cronologia.md"
|
"cronologia_file": "cronologia.md"
|
||||||
},
|
},
|
||||||
"level3": {
|
"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": [
|
"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\\10 - E5.007095 - Modifica O&U - SAE463\\Reporte\\Email",
|
||||||
"C:\\Trabajo\\SIDEL\\08 - Masselli TEST\\Reporte\\EMAILs",
|
"C:\\Trabajo\\SIDEL\\08 - Masselli TEST\\Reporte\\EMAILs",
|
||||||
"C:\\Trabajo\\SIDEL\\EMAILs\\I_ E5.007727 _ Evo On - SFSRFH300172 + SFSRFH300109 - ANDIA LACTEOS",
|
"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:\\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:\\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\\Trial",
|
||||||
"C:\\Trabajo\\VM\\40 - 93040 - HENKEL - NEXT2 Problem\\Reporte\\Emails",
|
"C:\\Trabajo\\VM\\40 - 93040 - HENKEL - NEXT2 Problem\\Reporte\\Emails"
|
||||||
"C:\\Trabajo\\VM\\40 - 93040 - HENKEL - NEXT2 Problem\\Reporte\\Emails\\Error de tablas"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -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.",
|
"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",
|
"version": "1.0",
|
||||||
"author": "Miguel"
|
"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.",
|
"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",
|
"version": "1.0",
|
||||||
"author": "Miguel"
|
"author": "Miguel"
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "Exportador de objetos de Tia Portal y procesador de CAx",
|
"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 y los objetos CAx. Luego se puede generar documentacion desde estos CAx de la periferia IO del PLC exportado.",
|
"description": "Este conjunto de scripts exporta desde Tia Portal los objetos en fomarto XML.",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"author": "Miguel"
|
"author": "Miguel"
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -5,5 +5,5 @@
|
||||||
},
|
},
|
||||||
"level2": {},
|
"level2": {},
|
||||||
"level3": {},
|
"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": {
|
"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.",
|
"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.",
|
"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
|
"hidden": false
|
||||||
},
|
},
|
||||||
"x4.py": {
|
"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",
|
"short_description": "Script para exportar las referencias cruzadas",
|
||||||
"long_description": "",
|
"long_description": "",
|
||||||
"hidden": false
|
"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": [
|
"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"
|
"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",
|
"description": "Utilidades para Trabajar con DBs de Siemens S7",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"author": "Miguel"
|
"author": "Miguel"
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
--- Log de Ejecución: x7_value_updater.py ---
|
--- Log de Ejecución: x7_value_updater.py ---
|
||||||
Grupo: S7_DB_Utils
|
Grupo: S7_DB_Utils
|
||||||
Directorio de Trabajo: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001
|
Directorio de Trabajo: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001
|
||||||
Inicio: 2025-05-18 13:56:40
|
Inicio: 2025-05-18 15:48:00
|
||||||
Fin: 2025-05-18 13:56:41
|
Fin: 2025-05-18 15:48:01
|
||||||
Duración: 0:00:01.040596
|
Duración: 0:00:00.811974
|
||||||
Estado: SUCCESS (Código de Salida: 0)
|
Estado: SUCCESS (Código de Salida: 0)
|
||||||
|
|
||||||
--- SALIDA ESTÁNDAR (STDOUT) ---
|
--- 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.
|
Se encontraron 1 pares de archivos para procesar.
|
||||||
|
|
||||||
--- Procesando par de archivos ---
|
--- Procesando par de archivos ---
|
||||||
Data file: db1001_data.db
|
Data file: DB1001_data.AWL
|
||||||
Format file: db1001_format.db
|
Format file: DB1001_format.AWL
|
||||||
Parseando archivo data: db1001_data.db
|
Parseando archivo data: DB1001_data.AWL
|
||||||
Parseando archivo format: db1001_format.db
|
Parseando archivo format: DB1001_format.AWL
|
||||||
Archivos JSON generados: db1001_data.json y db1001_format.json
|
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
|
Comparando estructuras para DB 'HMI_Blender_Parameters': 284 variables en _data, 284 variables en _format
|
||||||
|
|
||||||
Los archivos son compatibles. Creando el archivo _updated...
|
Los archivos son compatibles. Creando el archivo _updated...
|
||||||
Procesando DB 'HMI_Blender_Parameters': 284 variables en _format, 284 variables en _data
|
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
|
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 _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 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 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 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 S7 copiado a: C:\Trabajo\SIDEL\09 - SAE452 - Diet as Regular - San Giovanni in Bosco\Reporte\DB1001\DB1001_updated.AWL
|
||||||
|
|
||||||
--- Proceso completado ---
|
--- 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. ",
|
"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",
|
"version": "1.0",
|
||||||
"author": "Miguel"
|
"author": "Miguel"
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
"hidden": true
|
"hidden": true
|
||||||
},
|
},
|
||||||
"x4_cross_reference.py": {
|
"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",
|
"short_description": "LadderToSCL - Conversor de Siemens LAD/FUP XML a SCL",
|
||||||
"long_description": "",
|
"long_description": "",
|
||||||
"hidden": false
|
"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.",
|
"description": "Scripts de demostración que muestran las funcionalidades básicas del sistema.",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"author": "Admin"
|
"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
|
// Agregar el nuevo manejador de eventos
|
||||||
selectElement.addEventListener('change', handleGroupChange);
|
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
|
// Cargar datos iniciales
|
||||||
updateGroupDescription();
|
updateGroupDescription();
|
||||||
await initWorkingDirectory();
|
await initWorkingDirectory();
|
||||||
|
@ -1314,4 +1320,40 @@ function openMinicondaConsole() {
|
||||||
console.error('Error opening Miniconda Console:', error);
|
console.error('Error opening Miniconda Console:', error);
|
||||||
showNotification('Error al comunicarse con el servidor', '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()">
|
<button class="bg-gray-500 text-white px-4 py-2 rounded" onclick="browseDirectory()">
|
||||||
Explorar
|
Explorar
|
||||||
</button>
|
</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>
|
</div>
|
||||||
<button class="bg-blue-500 text-white px-4 py-2 rounded" onclick="setWorkingDirectory()">
|
<button class="bg-blue-500 text-white px-4 py-2 rounded" onclick="setWorkingDirectory()">
|
||||||
Confirmar
|
Confirmar
|
||||||
|
|
Loading…
Reference in New Issue