diff --git a/src/app/admin/campaigns/[id]/propositions/page.tsx b/src/app/admin/campaigns/[id]/propositions/page.tsx index a1d5187..b50bb90 100644 --- a/src/app/admin/campaigns/[id]/propositions/page.tsx +++ b/src/app/admin/campaigns/[id]/propositions/page.tsx @@ -15,6 +15,7 @@ import { Avatar, AvatarFallback } from '@/components/ui/avatar'; import Navigation from '@/components/Navigation'; import AuthGuard from '@/components/AuthGuard'; import { FileText, Calendar, Mail, Upload } from 'lucide-react'; +import { MarkdownContent } from '@/components/MarkdownContent'; export const dynamic = 'force-dynamic'; @@ -196,7 +197,7 @@ function CampaignPropositionsPageContent() {
{proposition.title} - {proposition.description} +
diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx index 361d89d..fab97fd 100644 --- a/src/app/admin/page.tsx +++ b/src/app/admin/page.tsx @@ -15,6 +15,7 @@ import { Badge } from '@/components/ui/badge'; import AuthGuard from '@/components/AuthGuard'; import { FolderOpen, Users, FileText, Plus, BarChart3, Settings, Check, Copy } from 'lucide-react'; import StatusSwitch from '@/components/StatusSwitch'; +import { MarkdownContent } from '@/components/MarkdownContent'; export const dynamic = 'force-dynamic'; @@ -255,7 +256,7 @@ function AdminPageContent() {
- {campaign.description} + {/* Status Switch */} diff --git a/src/app/admin/settings/page.tsx b/src/app/admin/settings/page.tsx index 8094ed3..6cfed4d 100644 --- a/src/app/admin/settings/page.tsx +++ b/src/app/admin/settings/page.tsx @@ -9,7 +9,7 @@ import { Label } from '@/components/ui/label'; import Navigation from '@/components/Navigation'; import AuthGuard from '@/components/AuthGuard'; import SmtpSettingsForm from '@/components/SmtpSettingsForm'; -import { Settings, Monitor, Save, CheckCircle, Mail } from 'lucide-react'; +import { Settings, Monitor, Save, CheckCircle, Mail, FileText } from 'lucide-react'; export const dynamic = 'force-dynamic'; @@ -19,6 +19,8 @@ function SettingsPageContent() { const [saving, setSaving] = useState(false); const [saved, setSaved] = useState(false); const [randomizePropositions, setRandomizePropositions] = useState(false); + const [proposePageMessage, setProposePageMessage] = useState(''); + const [footerMessage, setFooterMessage] = useState(''); useEffect(() => { loadSettings(); @@ -33,6 +35,14 @@ function SettingsPageContent() { // Charger la valeur du paramètre d'ordre aléatoire const randomizeValue = await settingsService.getBooleanValue('randomize_propositions', false); setRandomizePropositions(randomizeValue); + + // Charger le message de la page de dépôt de propositions + const messageValue = await settingsService.getStringValue('propose_page_message', 'Partagez votre vision et proposez des projets qui feront la différence dans votre collectif. Votre voix compte pour façonner l\'avenir de votre communauté.'); + setProposePageMessage(messageValue); + + // Charger le message du bas de page + const footerValue = await settingsService.getStringValue('footer_message', 'Développé avec ❤️ pour faciliter la démocratie participative - [Logiciel libre et open source](GITURL) et transparent pour tous'); + setFooterMessage(footerValue); } catch (error) { console.error('Erreur lors du chargement des paramètres:', error); } finally { @@ -48,6 +58,8 @@ function SettingsPageContent() { try { setSaving(true); await settingsService.setBooleanValue('randomize_propositions', randomizePropositions); + await settingsService.setStringValue('propose_page_message', proposePageMessage); + await settingsService.setStringValue('footer_message', footerMessage); setSaved(true); setTimeout(() => setSaved(false), 2000); } catch (error) { @@ -148,6 +160,62 @@ function SettingsPageContent() { + {/* Textes Category */} + + +
+
+ +
+
+ Textes + + Personnalisez les textes affichés dans l'application + +
+
+
+ + {/* Propose Page Message Setting */} +
+
+ +

+ Ce texte apparaît sous le titre de la campagne pour inviter les utilisateurs à déposer des propositions. +

+
+