{% extends "base.html" %}

{% block title %}Tipos de Archivo - ARCH{% endblock %}

{% block content %}
<div class="container my-5">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h1>Tipos de Archivo</h1>
        <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#addFiletypeModal">
            <i class="fas fa-plus"></i> Nuevo Tipo
        </button>
    </div>
    
    <div class="card">
        <div class="card-body">
            <div class="table-responsive">
                <table class="table table-striped">
                    <thead>
                        <tr>
                            <th>Extensión</th>
                            <th>Descripción</th>
                            <th>Tipo MIME</th>
                            <th>Tamaño Máximo</th>
                            <th>Acciones</th>
                        </tr>
                    </thead>
                    <tbody>
                        {% for ext, filetype in filetypes.items() %}
                        <tr>
                            <td>{{ ext }}</td>
                            <td>{{ filetype.descripcion }}</td>
                            <td>{{ filetype.mime_type }}</td>
                            <td>{{ (filetype.tamano_maximo / 1024 / 1024)|round(1) }} MB</td>
                            <td>
                                <div class="btn-group btn-group-sm" role="group">
                                    <button type="button" class="btn btn-outline-primary" 
                                            onclick="editFiletype('{{ ext }}', '{{ filetype.descripcion }}', '{{ filetype.mime_type }}', {{ filetype.tamano_maximo }})"
                                            title="Editar">
                                        <i class="fas fa-edit"></i>
                                    </button>
                                    <button type="button" class="btn btn-outline-danger" 
                                            onclick="confirmDeleteFiletype('{{ ext }}', '{{ filetype.descripcion }}')"
                                            title="Eliminar">
                                        <i class="fas fa-trash"></i>
                                    </button>
                                </div>
                            </td>
                        </tr>
                        {% else %}
                        <tr>
                            <td colspan="5" class="text-center">No hay tipos de archivo definidos.</td>
                        </tr>
                        {% endfor %}
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</div>

<!-- Modal para añadir tipo de archivo -->
<div class="modal fade" id="addFiletypeModal" tabindex="-1" aria-labelledby="addFiletypeModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="addFiletypeModalLabel">Nuevo Tipo de Archivo</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <form method="POST" action="{{ url_for('admin.add_filetype') }}">
                <div class="modal-body">
                    <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
                    <div class="mb-3">
                        <label for="extension" class="form-label">Extensión</label>
                        <input type="text" class="form-control" id="extension" name="extension" required>
                    </div>
                    <div class="mb-3">
                        <label for="descripcion" class="form-label">Descripción</label>
                        <input type="text" class="form-control" id="descripcion" name="descripcion" required>
                    </div>
                    <div class="mb-3">
                        <label for="mime_type" class="form-label">Tipo MIME</label>
                        <input type="text" class="form-control" id="mime_type" name="mime_type" required>
                    </div>
                    <div class="mb-3">
                        <label for="tamano_maximo" class="form-label">Tamaño Máximo (MB)</label>
                        <input type="number" class="form-control" id="tamano_maximo" name="tamano_maximo" min="1" max="1000" value="20" required>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
                    <button type="submit" class="btn btn-primary">Guardar</button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- Modal para editar tipo de archivo -->
<div class="modal fade" id="editFiletypeModal" tabindex="-1" aria-labelledby="editFiletypeModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="editFiletypeModalLabel">Editar Tipo de Archivo</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <form id="editFiletypeForm" method="POST" action="">
                <div class="modal-body">
                    <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
                    <div class="mb-3">
                        <label for="edit_descripcion" class="form-label">Descripción</label>
                        <input type="text" class="form-control" id="edit_descripcion" name="descripcion" required>
                    </div>
                    <div class="mb-3">
                        <label for="edit_mime_type" class="form-label">Tipo MIME</label>
                        <input type="text" class="form-control" id="edit_mime_type" name="mime_type" required>
                    </div>
                    <div class="mb-3">
                        <label for="edit_tamano_maximo" class="form-label">Tamaño Máximo (MB)</label>
                        <input type="number" class="form-control" id="edit_tamano_maximo" name="tamano_maximo" min="1" max="1000" required>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
                    <button type="submit" class="btn btn-primary">Actualizar</button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- Modal para confirmar eliminación -->
<div class="modal fade" id="deleteFiletypeModal" tabindex="-1" aria-labelledby="deleteFiletypeModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="deleteFiletypeModalLabel">Confirmar Eliminación</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <p>¿Está seguro que desea eliminar el tipo de archivo <strong id="deleteFiletypeName"></strong>?</p>
                <p class="text-danger">Esta acción no se puede deshacer y podría afectar a documentos existentes.</p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
                <form id="deleteFiletypeForm" method="POST" action="">
                    <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
                    <button type="submit" class="btn btn-danger">Eliminar</button>
                </form>
            </div>
        </div>
    </div>
</div>

{% block extra_js %}
<script>
    function editFiletype(extension, descripcion, mimeType, tamanoMaximo) {
        document.getElementById('edit_descripcion').value = descripcion;
        document.getElementById('edit_mime_type').value = mimeType;
        document.getElementById('edit_tamano_maximo').value = Math.round(tamanoMaximo / 1024 / 1024);
        
        // Change this line to match the correct route name
        document.getElementById('editFiletypeForm').action = "/admin/filetypes/" + extension + "/update";
        
        var editModal = new bootstrap.Modal(document.getElementById('editFiletypeModal'));
        editModal.show();
    }
    
    function confirmDeleteFiletype(extension, descripcion) {
        document.getElementById('deleteFiletypeName').textContent = descripcion + ' (.' + extension + ')';
        
        // Also change this to use direct URL instead of url_for
        document.getElementById('deleteFiletypeForm').action = "/admin/filetypes/" + extension + "/delete";
        
        var deleteModal = new bootstrap.Modal(document.getElementById('deleteFiletypeModal'));
        deleteModal.show();
    }
</script>
{% endblock %}
{% endblock %}
