Skip to content

Commit 08e7c1b

Browse files
add mostrar mais card projetos
1 parent 8251c9b commit 08e7c1b

File tree

2 files changed

+44
-10
lines changed

2 files changed

+44
-10
lines changed

src/components/IniciativasProjetosDePesquisaSection.astro

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ const agenciaInicial = agenciaParam || "";
9595
</div>
9696
</section>
9797

98-
9998
<script is:inline define:vars={{ projetosData, ordemInicial, agenciaInicial }}>
10099
let allProjects = projetosData || [];
101100
let currentSort = ordemInicial || 'titulo';
@@ -155,25 +154,50 @@ const agenciaInicial = agenciaParam || "";
155154
});
156155
}
157156

158-
function renderProject(p) {
159-
return `<article class="card bg-base-100 shadow border border-base-300">
157+
function renderProject(p, index) {
158+
const id = `extra-info-${index}`;
159+
160+
const temExtras = p.publico_alvo || p.resultados || p.links || p.processo || p.natureza || p.valor || p.associados || p.apoioCentro;
161+
162+
return `
163+
<article class="card bg-base-100 shadow border border-base-300 transition-all duration-300">
160164
<div class="card-body">
161165
<h2 class="card-title text-primary">${escapeHtml(p.titulo)}</h2>
162166
<p><strong>Docente responsável:</strong> ${escapeHtml(p.docente)}</p>
163167
<p class="text-sm text-base-content/70">Departamento: ${escapeHtml(p.departamento || '')}</p>
164168
<p><strong>Agência:</strong> ${escapeHtml(p.agencia)} | <strong>Período:</strong> ${escapeHtml(p.periodo)}</p>
165-
<p class="mt-2 text-base-content/80">${escapeHtml(p.resumo)}</p>
169+
170+
<p class="mt-2 text-base-content/80">
171+
<strong>Resumo:</strong> ${escapeHtml(p.resumo || '')}
172+
</p>
173+
174+
<div id="${id}" class="hidden mt-2 space-y-2 text-base-content/80">
175+
${p.publico_alvo ? `<p><strong>Público-alvo:</strong> ${escapeHtml(p.publico_alvo)}</p>` : ''}
176+
${p.resultados ? `<p><strong>Resultados esperados:</strong> ${escapeHtml(p.resultados)}</p>` : ''}
177+
${p.links ? `<p><strong>Links:</strong> <a href="${escapeHtml(p.links)}" target="_blank" class="link link-primary">${escapeHtml(p.links)}</a></p>` : ''}
178+
${p.processo ? `<p><strong>Nº do Processo:</strong> ${escapeHtml(p.processo)}</p>` : ''}
179+
${p.natureza ? `<p><strong>Natureza:</strong> ${escapeHtml(p.natureza)}</p>` : ''}
180+
${p.valor ? `<p><strong>Valor Financiado:</strong> ${escapeHtml(p.valor)}</p>` : ''}
181+
${p.associados ? `<p><strong>Pesquisadores Associados:</strong> ${escapeHtml(p.associados)}</p>` : ''}
182+
${Array.isArray(p.apoioCentro) && p.apoioCentro.length > 0
183+
? `<div><strong>Apoio do CPPS:</strong><ul class="list-disc ml-6">${p.apoioCentro.map(item => `<li>${escapeHtml(item)}</li>`).join('')}</ul></div>`
184+
: ''}
185+
</div>
186+
187+
${temExtras
188+
? `<button class="btn btn-sm btn-link text-primary-content px-0" onclick="toggleExtra('${id}', this)">Mostrar mais</button>`
189+
: ''}
166190
</div>
167191
</article>`;
168-
}
192+
}
169193

170194
function renderProjects() {
171195
const list = document.getElementById('lista-projetos');
172196
const noResults = document.getElementById('no-projects-message');
173197
const filtered = filterProjects(allProjects);
174198
const sorted = sortProjects(filtered, currentSort);
175199

176-
list.innerHTML = sorted.map(renderProject).join('');
200+
list.innerHTML = sorted.map((p, i) => renderProject(p, i)).join('');
177201
document.getElementById('project-counter').textContent = sorted.length;
178202
noResults.classList.toggle('hidden', sorted.length > 0);
179203
atualizarBotoes(currentSort, currentOrder);
@@ -191,7 +215,7 @@ const agenciaInicial = agenciaParam || "";
191215

192216
function atualizarBotoes(criterioAtivo, ordemAtual) {
193217
const icones = {
194-
asc: `<svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 ml-1" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 15l7-7 7 7" /></svg>` ,
218+
asc: `<svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 ml-1" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 15l7-7 7 7" /></svg>`,
195219
desc: `<svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 ml-1" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /></svg>`
196220
};
197221

@@ -216,6 +240,15 @@ const agenciaInicial = agenciaParam || "";
216240
select.innerHTML = '<option value="">Todos</option>' + docentes.map(d => `<option>${escapeHtml(d)}</option>`).join('');
217241
}
218242

243+
function toggleExtra(id, btn) {
244+
const el = document.getElementById(id);
245+
if (!el) return;
246+
247+
const expanded = !el.classList.contains('hidden');
248+
el.classList.toggle('hidden');
249+
btn.textContent = expanded ? 'Mostrar mais' : 'Mostrar menos';
250+
}
251+
219252
document.addEventListener('DOMContentLoaded', () => {
220253
preencherDocentes();
221254
['filtro-agencia', 'filtro-docente', 'filtro-inicio', 'filtro-fim'].forEach(id => {
@@ -225,6 +258,7 @@ const agenciaInicial = agenciaParam || "";
225258
});
226259

227260
window.ordenarProjetos = ordenarProjetos;
261+
window.toggleExtra = toggleExtra;
228262
</script>
229263

230264
<style>

src/i18n/locales/pt.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"titulo": "Ruptura metabólica e crise estrutural do capital: o complexo minero-industrial em Minas Gerais e a tendência à eliminação das condições elementares da reprodução social",
5757
"docente": "Frederico Daia Firmiano",
5858
"periodo": "2023–2026",
59-
"departamento": "teste",
59+
"departamento": "Educação, Ciências Sociais e Políticas Públicas",
6060
"agencia": "CNPq",
6161
"processo": "2022/02922-1",
6262
"natureza": "Programas Especiais / PNGP — Programa Nova Geração de Pesquisadores / PI — Auxílio à Pesquisa — Projeto Inicial — Chamada de Propostas (2022)",
@@ -73,7 +73,7 @@
7373
"titulo": "Crítica da pobreza como objeto da filosofia social",
7474
"docente": "Hélio Alexandre da Silva",
7575
"periodo": "2019–2024",
76-
"departamento": "teste",
76+
"departamento": "Educação, Ciências Sociais e Políticas Públicas",
7777
"agencia": "FAPESP",
7878
"processo": "2022/02922-1",
7979
"natureza": "Programas Especiais / PNGP — Programa Nova Geração de Pesquisadores / PI — Auxílio à Pesquisa — Projeto Inicial — Chamada de Propostas (2022)",
@@ -90,7 +90,7 @@
9090
"titulo": "Crise da democracia e arranjos jurídico-institucionais: uma análise a partir das relações entre a política e o direito",
9191
"docente": "Murilo Gaspardo",
9292
"periodo": "2022–2024",
93-
"departamento": "teste",
93+
"departamento": "Direito Público",
9494
"agencia": "FAPESP",
9595
"processo": "2022/02922-1",
9696
"natureza": "Programas Especiais / PNGP — Programa Nova Geração de Pesquisadores / PI — Auxílio à Pesquisa — Projeto Inicial — Chamada de Propostas (2022)",

0 commit comments

Comments
 (0)