teste login
Deploy / Deploy (push) Successful in 2m15s Details

This commit is contained in:
JotaChina 2025-12-09 18:28:09 -03:00
parent c696361996
commit ae221ba8f1
1 changed files with 35 additions and 15 deletions

View File

@ -29,11 +29,16 @@ permalink: /samples/
<i class="fa-solid fa-house"></i>
</button>
<button id="btn-open-upload" class="button is-small is-success is-light mr-3" title="Enviar novo Sample" style="display: inline-flex; align-items: center;">
<button id="btn-open-upload" class="button is-small is-success is-light mr-3 is-hidden" title="Enviar novo Sample" style="display: inline-flex; align-items: center;">
<span class="icon"><i class="fa-solid fa-upload"></i></span>
<span>Enviar Sample</span>
</button>
<a href="/mmpSearch/login/" id="btn-login-trigger" class="button is-small is-warning is-light mr-3" title="Fazer Login">
<span class="icon"><i class="fa-solid fa-lock"></i></span>
<span>Login para Enviar</span>
</a>
<nav class="breadcrumb is-small mb-0" aria-label="breadcrumbs">
<ul id="breadcrumb-list">
<li class="is-active"><a href="#">Raiz</a></li>
@ -286,7 +291,30 @@ permalink: /samples/
</style>
<script>
document.addEventListener('DOMContentLoaded', () => {
document.addEventListener('DOMContentLoaded', async () => {
// === VERIFICAÇÃO DE LOGIN (NOVO) ===
const btnUpload = document.getElementById('btn-open-upload');
const btnLogin = document.getElementById('btn-login-trigger');
try {
// Verifica auth via Proxy Apache
const res = await fetch('/api/check_auth');
const authData = await res.json();
if (authData.logged_in) {
// Se logado: Mostra botão Upload, Esconde botão Login
btnUpload.classList.remove('is-hidden');
btnLogin.classList.add('is-hidden');
} else {
// Se visitante: Garante que botão Login aparece e Upload some
btnUpload.classList.add('is-hidden');
btnLogin.classList.remove('is-hidden');
}
} catch (e) {
console.error("Erro auth:", e);
}
// ===================================
// === DADOS E CONFIGURAÇÃO ===
const manifestData = {{ site.data['samples-manifest'] | jsonify }};
const BASE_ASSETS_URL = "{{ '/src_mmpSearch/samples/' | relative_url }}";
@ -510,10 +538,10 @@ document.addEventListener('DOMContentLoaded', () => {
document.addEventListener('keydown', (e) => { if (e.key === "Escape") closeModal(); });
// ==========================================================
// === LÓGICA DE UPLOAD & GRAVAÇÃO (CORRIGIDA) ===
// === LÓGICA DE UPLOAD & GRAVAÇÃO ===
// ==========================================================
const uploadModal = document.getElementById('upload-sample-modal');
const btnOpenUpload = document.getElementById('btn-open-upload');
const btnOpenUpload = document.getElementById('btn-open-upload'); // Botão agora pode estar hidden
const btnCloseUpload = document.getElementById('close-upload-modal');
const btnCancelUpload = document.getElementById('cancel-upload');
const fileInput = document.getElementById('file-input-real');
@ -587,7 +615,6 @@ document.addEventListener('DOMContentLoaded', () => {
};
mediaRecorder.onstop = () => {
// CORREÇÃO 1: Forçamos o tipo para OGG para o servidor aceitar
audioBlob = new Blob(audioChunks, { type: 'audio/ogg' });
const audioUrl = URL.createObjectURL(audioBlob);
@ -665,18 +692,14 @@ document.addEventListener('DOMContentLoaded', () => {
}
let filename = recordNameInput.value.trim() || "gravacao";
// CORREÇÃO 2: Removemos a extensão antiga se houver e forçamos .ogg
// Isso engana a validação simples do servidor
filename = filename.replace(/\.(webm|wav|mp3|flac)$/i, "");
filename += ".ogg";
console.log("Enviando arquivo como:", filename); // Debug
formData.append('sample_file', audioBlob, filename);
}
const API_URL = 'https://alice.ufsj.edu.br:33002/api/upload/sample';
// URL CORRIGIDA: Usando Proxy reverso (sem porta 33002)
const API_URL = '/api/upload/sample';
// UI Loading
confirmUploadBtn.classList.add('is-loading');
@ -685,15 +708,12 @@ document.addEventListener('DOMContentLoaded', () => {
uploadStatus.textContent = "Enviando dados...";
uploadStatus.className = "help has-text-info";
console.log("Enviando para:", API_URL);
try {
const response = await fetch(API_URL, {
method: 'POST',
body: formData
});
console.log("Status:", response.status);
const result = await response.json();
if (response.ok) {
@ -707,7 +727,7 @@ document.addEventListener('DOMContentLoaded', () => {
console.error("Erro Upload:", error);
let msg = "Erro: " + error.message;
if (error.message.includes("Failed to fetch")) {
msg = "Erro de Conexão (Verifique VPN/Firewall - Porta 33002).";
msg = "Erro de Conexão.";
}
uploadStatus.textContent = msg;
uploadStatus.className = "help has-text-danger";