refactor: move supporters loading to separate API endpoint

- Add SupportersHandler in misc_handlers.py to serve /api/lm/supporters
- Register new endpoint in misc_route_registrar.py
- Remove supporters from page load template context in model_handlers.py
- Create supportersService.js for frontend data fetching
- Update Header.js to fetch supporters when support modal opens
- Modify support_modal.html to use client-side rendering

This change improves page load performance by loading supporters data
on-demand instead of during initial page render.
This commit is contained in:
Will Miao
2026-02-28 20:14:20 +08:00
parent 77a2215e62
commit 78b55d10ba
20 changed files with 1206 additions and 89 deletions

View File

@@ -1342,7 +1342,14 @@
"showWechatQR": "WeChat QR-Code anzeigen",
"hideWechatQR": "WeChat QR-Code ausblenden"
},
"footer": "Vielen Dank, dass Sie LoRA Manager verwenden! ❤️"
"footer": "Vielen Dank, dass Sie LoRA Manager verwenden! ❤️",
"supporters": {
"title": "Danke an alle Unterstützer",
"subtitle": "Danke an {count} Unterstützer, die dieses Projekt möglich gemacht haben",
"specialThanks": "Besonderer Dank",
"allSupporters": "Alle Unterstützer",
"totalCount": "{count} Unterstützer insgesamt"
}
},
"toast": {
"general": {

View File

@@ -1342,7 +1342,14 @@
"showWechatQR": "Show WeChat QR Code",
"hideWechatQR": "Hide WeChat QR Code"
},
"footer": "Thank you for using LoRA Manager! ❤️"
"footer": "Thank you for using LoRA Manager! ❤️",
"supporters": {
"title": "Thank You To Our Supporters",
"subtitle": "Thanks to {count} supporters who made this project possible",
"specialThanks": "Special Thanks",
"allSupporters": "All Supporters",
"totalCount": "{count} supporters in total"
}
},
"toast": {
"general": {

View File

@@ -1342,7 +1342,14 @@
"showWechatQR": "Mostrar código QR de WeChat",
"hideWechatQR": "Ocultar código QR de WeChat"
},
"footer": "¡Gracias por usar el gestor de LoRA! ❤️"
"footer": "¡Gracias por usar el gestor de LoRA! ❤️",
"supporters": {
"title": "Gracias a todos los seguidores",
"subtitle": "Gracias a {count} seguidores que hicieron este proyecto posible",
"specialThanks": "Agradecimientos especiales",
"allSupporters": "Todos los seguidores",
"totalCount": "{count} seguidores en total"
}
},
"toast": {
"general": {

View File

@@ -1342,7 +1342,14 @@
"showWechatQR": "Afficher le QR Code WeChat",
"hideWechatQR": "Masquer le QR Code WeChat"
},
"footer": "Merci d'utiliser le Gestionnaire LoRA ! ❤️"
"footer": "Merci d'utiliser le Gestionnaire LoRA ! ❤️",
"supporters": {
"title": "Merci à tous les supporters",
"subtitle": "Merci aux {count} supporters qui ont rendu ce projet possible",
"specialThanks": "Remerciements spéciaux",
"allSupporters": "Tous les supporters",
"totalCount": "{count} supporters au total"
}
},
"toast": {
"general": {

View File

@@ -1342,7 +1342,14 @@
"showWechatQR": "הצג קוד QR של WeChat",
"hideWechatQR": "הסתר קוד QR של WeChat"
},
"footer": "תודה על השימוש במנהל LoRA! ❤️"
"footer": "תודה על השימוש במנהל LoRA! ❤️",
"supporters": {
"title": "תודה לכל התומכים",
"subtitle": "תודה ל־{count} תומכים שהפכו את הפרויקט הזה לאפשרי",
"specialThanks": "תודה מיוחדת",
"allSupporters": "כל התומכים",
"totalCount": "{count} תומכים בסך הכל"
}
},
"toast": {
"general": {

View File

@@ -1342,7 +1342,14 @@
"showWechatQR": "WeChat QRコードを表示",
"hideWechatQR": "WeChat QRコードを非表示"
},
"footer": "LoRA Managerをご利用いただきありがとうございます ❤️"
"footer": "LoRA Managerをご利用いただきありがとうございます ❤️",
"supporters": {
"title": "サポーターの皆様に感謝",
"subtitle": "{count} 名のサポーターの皆様に、このプロジェクトを実現していただきありがとうございます",
"specialThanks": "特別感謝",
"allSupporters": "全サポーター",
"totalCount": "サポーター {count} 名"
}
},
"toast": {
"general": {

View File

@@ -1342,7 +1342,14 @@
"showWechatQR": "WeChat QR 코드 표시",
"hideWechatQR": "WeChat QR 코드 숨기기"
},
"footer": "LoRA Manager를 사용해주셔서 감사합니다! ❤️"
"footer": "LoRA Manager를 사용해주셔서 감사합니다! ❤️",
"supporters": {
"title": "후원자 분들께 감사드립니다",
"subtitle": "이 프로젝트를 가능하게 해준 {count}명의 후원자분들께 감사드립니다",
"specialThanks": "특별 감사",
"allSupporters": "모든 후원자",
"totalCount": "총 {count}명의 후원자"
}
},
"toast": {
"general": {

View File

@@ -1342,7 +1342,14 @@
"showWechatQR": "Показать QR-код WeChat",
"hideWechatQR": "Скрыть QR-код WeChat"
},
"footer": "Спасибо за использование LoRA Manager! ❤️"
"footer": "Спасибо за использование LoRA Manager! ❤️",
"supporters": {
"title": "Спасибо всем сторонникам",
"subtitle": "Спасибо {count} сторонникам, которые сделали этот проект возможным",
"specialThanks": "Особая благодарность",
"allSupporters": "Все сторонники",
"totalCount": "Всего {count} сторонников"
}
},
"toast": {
"general": {

View File

@@ -1342,7 +1342,14 @@
"showWechatQR": "显示微信二维码",
"hideWechatQR": "隐藏微信二维码"
},
"footer": "感谢使用 LoRA 管理器!❤️"
"footer": "感谢使用 LoRA 管理器!❤️",
"supporters": {
"title": "感谢所有支持者",
"subtitle": "感谢 {count} 位支持者让这个项目成为可能",
"specialThanks": "特别感谢",
"allSupporters": "所有支持者",
"totalCount": "共 {count} 位支持者"
}
},
"toast": {
"general": {

View File

@@ -1342,7 +1342,14 @@
"showWechatQR": "顯示微信二維碼",
"hideWechatQR": "隱藏微信二維碼"
},
"footer": "感謝您使用 LoRA 管理器!❤️"
"footer": "感謝您使用 LoRA 管理器!❤️",
"supporters": {
"title": "感謝所有支持者",
"subtitle": "感謝 {count} 位支持者讓這個專案成為可能",
"specialThanks": "特別感謝",
"allSupporters": "所有支持者",
"totalCount": "共 {count} 位支持者"
}
},
"toast": {
"general": {