tractatus/src/routes
TheFlow fe3035913e feat(crm): implement unified contact form system
Complete CRM foundation with contact modal in footer

Backend:
- Contact.model.js: Full CRUD model with statistics tracking
- contact.controller.js: Submit, list, assign, respond, update, delete
- contact.routes.js: Public submission + admin management endpoints
- routes/index.js: Mount contact routes at /api/contact

Frontend:
- footer.js: Replace mailto link with Contact Us modal button
- Contact modal: Form with type, name, email, org, subject, message
- CSRF protection: Extracts token from cookie (like newsletter)
- Rate limiting: formRateLimiter (5/min)
- Validation: Input sanitization + required fields
- UX: Success/error messages, auto-close on success

Admin UI:
- navbar-admin.js: New 'CRM & Communications' section
- Links: Contact Management, Case Submissions, Media Inquiries

Foundation for multi-project CRM across tractatus, family-history, sydigital

Next: Build /admin/contact-management.html page
2025-10-24 16:56:21 +13:00
..
admin.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
analytics.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
audit.routes.js feat: enhance framework services and format architectural documentation 2025-10-11 00:50:47 +13:00
auth.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
blog.routes.js fix(routes): Move editorial-guidelines route before /:slug catch-all 2025-10-24 12:04:17 +13:00
calendar.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
cases.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
contact.routes.js feat(crm): implement unified contact form system 2025-10-24 16:56:21 +13:00
demo.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
documents.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
governance.routes.js feat(infra): semantic versioning and systemd service implementation 2025-10-09 09:16:22 +13:00
hooks-metrics.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
index.js feat(crm): implement unified contact form system 2025-10-24 16:56:21 +13:00
koha.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
media.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
newsletter.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
projects.routes.js feat: implement Rule Manager and Project Manager admin systems 2025-10-11 17:16:51 +13:00
publications.routes.js fix(submissions): extract data from API response wrappers 2025-10-24 16:35:10 +13:00
relationships.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
rules.routes.js feat: implement Rule Manager and Project Manager admin systems 2025-10-11 17:16:51 +13:00
submissions.routes.js feat(translation): complete DeepL translation workflow 2025-10-24 11:22:50 +13:00
sync-health.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
test.routes.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00