From 4e9c9bfe6f4b47e7b0ed67a7db61e47cf7307d25 Mon Sep 17 00:00:00 2001
From: michaelschal <35957947-michaelschal@users.noreply.replit.com>
Date: Wed, 1 Oct 2025 13:46:57 +0000
Subject: [PATCH 1/3] Configure external network for Nginx proxy in Docker
Compose
Add `nginx_default` external network to `docker-compose.yml` for Nginx reverse proxy communication, and assign the `internal` network to PostgreSQL and the application.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/vhNnBGJ
---
docker-compose.yml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/docker-compose.yml b/docker-compose.yml
index d2f2597..1483697 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -12,6 +12,8 @@ services:
POSTGRES_PASSWORD: ${PGPASSWORD:-changeme}
volumes:
- postgres_data:/var/lib/postgresql/data
+ networks:
+ - internal
# Port non exposé sur l'hôte pour plus de sécurité en production
# Décommentez la ligne suivante si vous avez besoin d'accéder à la DB localement
# ports:
@@ -40,6 +42,9 @@ services:
APP_URL: ${APP_URL:-http://localhost:5000}
volumes:
- ./uploads:/app/uploads
+ networks:
+ - internal
+ - nginx_default
depends_on:
postgres:
condition: service_healthy
@@ -48,3 +53,12 @@ services:
volumes:
postgres_data:
driver: local
+
+networks:
+ # Réseau interne pour la communication DB <-> App
+ internal:
+ driver: bridge
+
+ # Réseau externe pour nginx reverse proxy
+ nginx_default:
+ external: true
From f50f77922faed022e77b4e7a1eeb59adb628184a Mon Sep 17 00:00:00 2001
From: michaelschal <35957947-michaelschal@users.noreply.replit.com>
Date: Wed, 1 Oct 2025 13:54:40 +0000
Subject: [PATCH 2/3] Add functionality to display scheduled posts and indicate
upcoming features
Implement a calendar view to display scheduled posts, and modify AI chat buttons to show "Coming Soon" notifications.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/vhNnBGJ
---
client/src/components/ai-chat.tsx | 14 ++++-
client/src/components/calendar-view.tsx | 74 +++++++++++++++----------
client/src/components/media-upload.tsx | 7 ++-
3 files changed, 63 insertions(+), 32 deletions(-)
diff --git a/client/src/components/ai-chat.tsx b/client/src/components/ai-chat.tsx
index 48427de..0ba4791 100644
--- a/client/src/components/ai-chat.tsx
+++ b/client/src/components/ai-chat.tsx
@@ -173,11 +173,21 @@ export default function AiChat() {
-
- {/* Sample events - in real app, filter scheduledPosts by date */}
- {day.isCurrentMonth && day.date.getDate() % 7 === 5 && (
-
-
-
-
14h - Promo
+ {/* Real scheduled posts for this date */}
+ {(() => {
+ if (!day.isCurrentMonth) return null;
+ const postsForDay = getPostsForDate(day.date);
+ if (postsForDay.length === 0) return null;
+
+ return (
+
+ {postsForDay.slice(0, 2).map((post, idx) => {
+ const time = post.scheduledAt ? new Date(post.scheduledAt).toLocaleTimeString('fr-FR', { hour: '2-digit', minute: '2-digit' }) : '';
+ const isPending = !post.publishedAt;
+ const isPublished = !!post.publishedAt;
+
+ return (
+
+ {time} - {post.postType || 'Post'}
+
+ );
+ })}
+ {postsForDay.length > 2 && (
+
+ +{postsForDay.length - 2} autre(s)
+
+ )}
-
- )}
-
- {day.isCurrentMonth && day.date.getDate() % 7 === 0 && (
-
- )}
+ );
+ })()}
))}
{/* Legend */}
diff --git a/client/src/components/media-upload.tsx b/client/src/components/media-upload.tsx
index 7c2bf09..f65dc9c 100644
--- a/client/src/components/media-upload.tsx
+++ b/client/src/components/media-upload.tsx
@@ -48,7 +48,7 @@ export default function MediaUpload() {
}
}, []);
- const { getRootProps, getInputProps, isDragActive } = useDropzone({
+ const { getRootProps, getInputProps, isDragActive, open } = useDropzone({
onDrop,
accept: {
"image/*": [".png", ".jpg", ".jpeg", ".gif"],
@@ -76,7 +76,10 @@ export default function MediaUpload() {
Ajoutez des photos ou vidéos, elles seront automatiquement recadrées pour Facebook et Instagram
-
+
Parcourir
From 560ec5806143816302d026d4e6edf654b6a94266 Mon Sep 17 00:00:00 2001
From: michaelschal <35957947-michaelschal@users.noreply.replit.com>
Date: Wed, 1 Oct 2025 13:54:56 +0000
Subject: [PATCH 3/3] Improve the responsiveness and user interface of the
social media planner
Fix broken buttons and enhance the overall user experience of the web application.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/vhNnBGJ