| <!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"> |
| |
| <section id="inicio" class="active"> |
| <h2>Últimas Matérias</h2> |
| <div id="listaPublicadas"></div> |
| </section> |
| <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> |
|
|
| |
| <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> |
|
|
| |
| <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> |
|
|
| |
| <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> |
|
|
| |
| <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> |
|
|
| |
| <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> |