<?php
// Formulario para Expediente Digital
// Se espera: $c['id'] y $c['Ruta_expediente'] estén disponibles en el contexto
?>
<div class="mb-3">
  <label for="expedienteDigital" class="form-label">Expediente digital</label>
  <textarea class="form-control expediente-digital-textarea" rows="4" placeholder="Ejemplo: C:\\Usuarios\\NOMBRE\\Aspirantes\\Documentacion\\ExpedienteDigital.pdf"><?php echo htmlspecialchars($c['Ruta_expediente'] ?? ''); ?></textarea>
  <input type="hidden" class="aspirante-id-expediente" value="<?php echo isset($c['id']) ? htmlspecialchars($c['id']) : (isset($_GET['id']) ? intval($_GET['id']) : ''); ?>">
</div>
<div class="d-flex justify-content-end">
  <button class="btn btn-primary btn-guardar-expediente-digital">
    <i class="fas fa-save me-1"></i> Guardar
  </button>
  <span class="expediente-digital-msg ms-3"></span>
</div>
<script>
  function registrarEventoExpedienteDigital() {
    // Buscar solo dentro del tab activo
    const tabPane = document.getElementById('expedienteDigital');
    if (!tabPane) return;
    const btnGuardar = tabPane.querySelector('.btn-guardar-expediente-digital');
    const textarea = tabPane.querySelector('.expediente-digital-textarea');
    const msg = tabPane.querySelector('.expediente-digital-msg');
    const aspiranteIdInput = tabPane.querySelector('.aspirante-id-expediente');
    if (btnGuardar && textarea && msg && aspiranteIdInput && !btnGuardar.dataset.listener) {
      btnGuardar.addEventListener('click', function() {
        if (!textarea || typeof textarea.value !== 'string') {
          console.error('No se encontró el textarea o su valor no es válido:', textarea);
          msg.textContent = 'No se encontró el campo de expediente digital.';
          return;
        }
        const texto = textarea.value ? textarea.value.trim() : '';
        const aspiranteId = aspiranteIdInput.value;
        // Mostrar en consola para depuración
        console.log('ID:', aspiranteId, 'Texto:', texto, 'Length:', texto.length);
        if (!aspiranteId) {
          msg.textContent = 'Falta el ID del aspirante.';
          return;
        }
        if (texto.length === 0) {
          msg.textContent = 'El campo de expediente está vacío.';
          return;
        }
        btnGuardar.disabled = true;
        // Usar x-www-form-urlencoded como en comentarios alta
        const params = `aspirante_id=${encodeURIComponent(aspiranteId)}&ruta_expediente=${encodeURIComponent(texto)}`;
        fetch('../../backend/aspirantes/guardar_expediente_digital.php', {
          method: 'POST',
          headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
          body: params
        })
        .then(r => r.json())
        .then(data => {
          msg.textContent = data.success ? 'Guardado correctamente.' : (data.msg || 'Error al guardar.');
          if (data.success) {
            // Mostrar el dato capturado en el textarea (por si el backend lo modifica, podrías usar data.ruta_expediente)
            textarea.value = texto;
          }
        })
        .catch(() => {
          msg.textContent = 'Error de red.';
        })
        .finally(() => {
          btnGuardar.disabled = false;
        });
      });
      btnGuardar.dataset.listener = 'true'; // Evita doble registro
    }
  }

  document.addEventListener('DOMContentLoaded', function() {
    registrarEventoExpedienteDigital();
    // Registrar también cuando se activa el tab
    const tabBtn = document.querySelector('button[data-bs-target="#expedienteDigital"]');
    if (tabBtn) {
      tabBtn.addEventListener('shown.bs.tab', function () {
        setTimeout(registrarEventoExpedienteDigital, 100); // Espera a que el DOM esté listo
      });
    }
  });
</script>
