Case Submission Portal (Admin Moderation Queue): - Add statistics endpoint (GET /api/cases/submissions/stats) - Enhance filtering: status, failure_mode, AI relevance score - Add sorting options: date, relevance, completeness - Create admin moderation interface (case-moderation.html) - Implement CSP-compliant admin UI (no inline event handlers) - Deploy moderation actions: approve, reject, request-info - Fix API parameter mapping for different action types Internationalization (i18n): - Implement lightweight i18n system (i18n-simple.js, ~5KB) - Add language selector component with flag emojis - Create German and French translations for homepage - Document Te Reo Māori translation requirements - Add i18n attributes to homepage - Integrate language selector into navbar Bug Fixes: - Fix search button modal display on docs.html (remove conflicting flex class) Page Enhancements: - Add dedicated JS modules for researcher, leader, koha pages - Improve page-specific functionality and interactions Documentation: - Add I18N_IMPLEMENTATION_SUMMARY.md (implementation guide) - Add TE_REO_MAORI_TRANSLATION_REQUIREMENTS.md (cultural sensitivity guide) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
30 lines
846 B
JavaScript
30 lines
846 B
JavaScript
/**
|
|
* Leader Page - Accordion Functionality
|
|
* Handles expandable/collapsible sections for leadership content
|
|
*/
|
|
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
// Get all accordion buttons
|
|
const accordionButtons = document.querySelectorAll('[data-accordion]');
|
|
|
|
accordionButtons.forEach(button => {
|
|
button.addEventListener('click', function() {
|
|
const accordionId = this.dataset.accordion;
|
|
toggleAccordion(accordionId);
|
|
});
|
|
});
|
|
|
|
/**
|
|
* Toggle accordion section open/closed
|
|
* @param {string} id - Accordion section ID
|
|
*/
|
|
function toggleAccordion(id) {
|
|
const content = document.getElementById(id + '-content');
|
|
const icon = document.getElementById(id + '-icon');
|
|
|
|
if (content && icon) {
|
|
content.classList.toggle('active');
|
|
icon.classList.toggle('active');
|
|
}
|
|
}
|
|
});
|