teste-1-9 / index.html
Rwhehhehe's picture
Add 3 files
0c23412 verified
<!DOCTYPE html><html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Jornal Oliveira</title>
<style>
@font-face { font-family: 'Old English'; src: url('https://fonts.cdnfonts.com/s/20549/OldEnglishTextMT.woff') format('woff'); }
* { box-sizing: border-box; margin:0; padding:0; }
body { font-family: Arial, sans-serif; background:#fff; color:#000; }
header { background:#1b5e20; padding:1rem; text-align:center; }
header h1 { font-family:'Old English', serif; font-size:3rem; color:#fff; }
nav { display:flex; justify-content:center; background:#66bb6a; padding:0.5rem; gap:0.5rem; flex-wrap:wrap; }
nav button { background:#66bb6a; border:none; color:#fff; padding:0.5rem 1rem; cursor:pointer; font-weight:bold; transition:0.3s; }
nav button:hover { background:#4caf50; }
.container { max-width:900px; margin:1rem auto; padding:0 1rem; }
section { display:none; }
section.active { display:block; }
.btn { background:#1b5e20; color:#fff; border:none; padding:0.5rem 1rem; cursor:pointer; margin:0.5rem 0; }
.btn:hover { background:#145a16; }
.form-group { margin-bottom:1rem; }
.form-group label { display:block; margin-bottom:0.5rem; }
.form-group input, .form-group select, .form-group textarea { width:100%; padding:0.5rem; }
.article { background:#f5f5f5; border:1px solid #ddd; padding:1rem; margin-bottom:1rem; border-radius:5px; }
.article h3 { margin-bottom:0.5rem; }
.article .meta { font-size:0.9rem; color:#555; margin-bottom:0.5rem; }
.article .actions button { margin-right:0.5rem; }
details { margin-bottom:1rem; }
details summary { cursor:pointer; font-weight:bold; }
</style>
</head>
<body>
<header>
<h1>Jornal Oliveira</h1>
</header>
<nav>
<button onclick="openSection('inicio')">Início</button>
<button onclick="openSection('avaliar')">Avaliar</button>
<button onclick="openSection('sugestoes')">Sugestões</button>
<button onclick="openSection('participar')">Participe</button>
<button onclick="openSection('login')">Login</button>
<button id="btnEnviar" class="hidden" onclick="openSection('enviar')">Enviar Matéria</button>
<button id="btnEditor" class="hidden" onclick="openSection('editor')">Painel do Editor</button>
</nav> <div class="container">
<!-- Início -->
<section id="inicio" class="active">
<h2>Últimas Matérias</h2>
<div id="listaPublicadas"></div>
</section><!-- Avaliar -->
<section id="avaliar">
<h2>Avalie o Jornal</h2>
<div class="form-group">
<label>Nota (1-5):</label>
<select id="inputNota"><option></option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option></select>
</div>
<div class="form-group">
<label>Comentário:</label>
<textarea id="inputComent" rows="3"></textarea>
</div>
<button class="btn" onclick="enviarAvaliacao()">Enviar Avaliação</button>
</section>
<!-- Sugestões -->
<section id="sugestoes">
<h2>Sugestões</h2>
<div class="form-group">
<label>Texto (mín. 10 palavras):</label>
<textarea id="inputSugestao" rows="3"></textarea>
</div>
<button class="btn" onclick="enviarSugestao()">Enviar Sugestão</button>
</section>
<!-- Participe -->
<section id="participar">
<h2>Participe do Jornal</h2>
<div class="form-group"><label>Nome completo:</label><input id="inpNome" type="text"></div>
<div class="form-group"><label>Série:</label><input id="inpSerie" type="text"></div>
<div class="form-group"><label>Período:</label><select id="inpPeriodo"><option></option><option>Manhã</option><option>Tarde</option><option>Noite</option></select></div>
<div class="form-group"><label>RA (000...):</label><input id="inpRA" type="text" pattern="000[0-9]+"></div>
<details>
<summary>Termo de Condição de Participação</summary>
<p><strong>TERMO DE CONDIÇÃO DE PARTICIPAÇÃO – JORNAL OLIVEIRA</strong></p>
<p>Prezado(a) estudante, para fins de organização e reconhecimento dos participantes do Jornal Oliveira, solicitamos que os novos integrantes forneçam o seu RA (Registro do Aluno) no momento da inscrição. Essa informação será utilizada exclusivamente para identificação interna no âmbito do projeto.</p>
<p>O Jornal Oliveira compromete-se a utilizar o RA apenas para os fins aqui descritos, não realizando qualquer tipo de divulgação ou compartilhamento não autorizado. Contudo, ao fornecer essa informação, o participante declara estar ciente de que a organização não se responsabiliza por eventuais vazamentos ou acessos indevidos que ocorram por fatores externos ou alheios à sua vontade.</p>
<p>Ao assinalar a opção abaixo, o(a) participante declara estar de acordo com os termos apresentados e autoriza expressamente o uso do seu RA para os fins descritos.</p>
</details>
<div><input id="chkTermo" type="checkbox"> Declaro que li e concordo com os termos acima para participar do Jornal Oliveira.</div>
<button class="btn" onclick="enviarParticipacao()">Enviar Inscrição</button>
</section>
<!-- Login -->
<section id="login">
<h2>Login</h2>
<div class="form-group"><input id="inpCodigo" type="password" placeholder="Código" /></div>
<button class="btn" onclick="fazerLogin()">Entrar</button>
</section>
<!-- Enviar Matéria -->
<section id="enviar">
<h2>Enviar Matéria</h2>
<div class="form-group"><label>Categoria:</label><select id="inpCat"><option></option><option>Notícias da Escola</option><option>Entrevistas</option><option>Opinião</option><option>Cultura e Arte</option><option>Esportes</option><option>Humor</option><option>Você Sabia?</option><option>Projetos e Grêmios</option><option>Fala Estudante</option><option>Investigação</option></select></div>
<div class="form-group"><label>Título:</label><input type="text" id="inpTitulo" /></div>
<div class="form-group"><label>Líde:</label><textarea id="inpLide" rows="2"></textarea></div>
<div class="form-group"><label>Corpo:</label><textarea id="inpCorpo" rows="4"></textarea></div>
<div class="form-group"><label>Autor:</label><input type="text" id="inpAutor" /></div>
<div class="form-group"><label>Outros participantes (opcional):</label><input type="text" id="inpPart" /></div>
<div class="form-group"><label>Data:</label><input type="date" id="inpData" /></div>
<button class="btn" onclick="enviarMateria()">Enviar para Aprovação</button>
</section>
<!-- Painel do Editor -->
<section id="editor">
<h2>Painel do Editor</h2>
<div id="pendentes"></div>
</section>
</div> <script>
let materias = [], pendentes = [];
function openSection(id) {
document.querySelectorAll('section').forEach(s=>s.classList.remove('active'));
document.getElementById(id).classList.add('active');
}
function enviarAvaliacao() {
const n = document.getElementById('inputNota').value;
const c = document.getElementById('inputComent').value.trim();
if(!n||!c) return alert('Preencha nota e comentário.');
alert('Avaliação enviada!');
document.getElementById('inputNota').value='';
document.getElementById('inputComent').value='';
}
function enviarSugestao() {
const t = document.getElementById('inputSugestao').value.trim();
if(t.split(' ').length<10) return alert('Mínimo 10 palavras.');
alert('Sugestão enviada!'); document.getElementById('inputSugestao').value='';
}
function enviarParticipacao() {
const n=document.getElementById('inpNome').value.trim();
const s=document.getElementById('inpSerie').value.trim();
const p=document.getElementById('inpPeriodo').value;
const r=document.getElementById('inpRA').value.trim();
const ok=document.getElementById('chkTermo').checked;
if(!n||!s||!p||!r.startsWith('000')||!ok) return alert('Complete e aceite.');
alert('Inscrição enviada!'); document.getElementById('inpNome').value='';
}
function fazerLogin() {
const code=document.getElementById('inpCodigo').value.trim();
document.getElementById('btnEnviar').classList.add('hidden');
document.getElementById('btnEditor').classList.add('hidden');
if(code==='BRJORNAL') document.getElementById('btnEnviar').classList.remove('hidden');
else if(code==='BRJORNALEDITOR') document.getElementById('btnEditor').classList.remove('hidden');
else return alert('Código inválido');
openSection('inicio'); renderPublicadas();
}
function enviarMateria() {
const m={cat:document.getElementById('inpCat').value,titulo:document.getElementById('inpTitulo').value.trim(),lide:document.getElementById('inpLide').value.trim(),corpo:document.getElementById('inpCorpo').value.trim(),autor:document.getElementById('inpAutor').value.trim(),part:document.getElementById('inpPart').value.trim(),data:document.getElementById('inpData').value};
if(!m.cat||!m.titulo||!m.lide||!m.corpo||!m.autor||!m.data) return alert('Preencha todos');
pendentes.push(m); alert('Enviado para aprovação'); renderPendentes();
}
function renderPublicadas() {
const out=document.getElementById('listaPublicadas'); out.innerHTML='';
materias.forEach(m=>{ const d=document.createElement('div'); d.className='article'; d.innerHTML=`<h3>${m.titulo}</h3><div class="meta">${m.cat} - ${m.data}</div><p>${m.lide}</p><span onclick="alert('${m.corpo}')" style="color:blue;cursor:pointer;">Leia mais</span>`; out.appendChild(d);} );
}
function renderPendentes() {
const out=document.getElementById('pendentes'); out.innerHTML='';
pendentes.forEach((m,i)=>{ const d=document.createElement('div'); d.className='article'; d.innerHTML=`<h3>${m.titulo}</h3><div class="meta">${m.cat} - ${m.data}</div><p>${m.lide}</p><div class="actions"><button class="btn" onclick="aprovar(${i})">Aprovar</button><button class="btn" onclick="rejeitar(${i})">Rejeitar</button></div>`; out.appendChild(d);} );
}
function aprovar(i) { materias.push(pendentes.splice(i,1)[0]); renderPendentes(); renderPublicadas(); }
function rejeitar(i) { pendentes.splice(i,1); renderPendentes(); }
</script><p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Rwhehhehe/teste-1-9" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>