+
diff --git a/app/radio/page.tsx b/app/radio/page.tsx
index ac8e80ad..782db942 100644
--- a/app/radio/page.tsx
+++ b/app/radio/page.tsx
@@ -1,7 +1,7 @@
import { getServerSession } from "next-auth/next";
import { authOptions } from "@/app/api/auth/[...nextauth]/route";
import { redirect } from "next/navigation";
-import { RadioFrame } from "@/components/radio/radio-frame";
+import { ResponsiveIframe } from "@/app/components/responsive-iframe";
export default async function Page() {
const session = await getServerSession(authOptions);
@@ -10,5 +10,14 @@ export default async function Page() {
redirect("/signin");
}
- return
;
+ return (
+
+
+
+
+
+ );
}
\ No newline at end of file
diff --git a/components/main-nav.tsx b/components/main-nav.tsx
index b28b8776..fb438c4c 100644
--- a/components/main-nav.tsx
+++ b/components/main-nav.tsx
@@ -166,37 +166,62 @@ export function MainNav() {
// Base menu items (available for everyone)
const baseMenuItems = [
{
- title: "HealthView",
- icon: Heart,
- href: '/health-view',
+ title: "TimeTracker",
+ icon: Clock,
+ href: '/timetracker',
},
{
- title: "MissionView",
- icon: Target,
- href: '/mission-view',
+ title: "Calendar",
+ icon: Calendar,
+ href: '/calendar',
+ },
+ {
+ title: "Notes",
+ icon: PenLine,
+ href: '/notes',
+ },
+ {
+ title: "AI Assistant",
+ icon: Robot,
+ href: '/ai-assistant',
+ },
+ {
+ title: "Conference",
+ icon: Video,
+ href: '/conference',
+ },
+ {
+ title: "Radio",
+ icon: RadioIcon,
+ href: '/radio',
+ },
+ {
+ title: "Observatory",
+ icon: Telescope,
+ href: '/observatory',
},
];
// Role-specific menu items
const roleSpecificItems = [
{
- title: "ShowCase",
+ title: "Announcement",
+ icon: Megaphone,
+ href: '/announcement',
+ requiredRoles: ["Admin", "Entrepreneurship", "Expression"],
+ },
+ {
+ title: "Artlab",
icon: Lightbulb,
- href: '/showcase',
+ href: '/design',
requiredRoles: ["Expression"],
},
{
- title: "UsersView",
+ title: "Management",
icon: UserCog,
href: '/management',
requiredRoles: ["Admin", "Entrepreneurship"],
},
- {
- title: "TheMessage",
- icon: Mail,
- href: '/the-message',
- requiredRoles: ["Mediation", "Expression"],
- },
];
// Get visible menu items based on user roles
@@ -262,10 +287,12 @@ export function MainNav() {
Radio
-
-
-
Announcement
-
+ {hasRole(["Admin", "Entrepreneurship", "Expression"]) && (
+
+
+
Announcement
+
+ )}
{/* Right side */}
diff --git a/components/messages.tsx b/components/messages.tsx
deleted file mode 100644
index 52b68d59..00000000
--- a/components/messages.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
-
-export function Messages() {
- return (
-
-
- Messages - Non Lu
-
-
- Aucun nouveau messages
-
-
- );
-}
diff --git a/components/sidebar.tsx b/components/sidebar.tsx
index df7c09b5..59a18227 100644
--- a/components/sidebar.tsx
+++ b/components/sidebar.tsx
@@ -5,23 +5,20 @@ import { useState } from "react";
import { cn } from "@/lib/utils";
import {
- BookOpen,
- Share2,
- Palette,
- GitFork,
- Building2,
+ Clock,
Calendar,
- Target,
- Mail,
- HardDrive,
- GraduationCap,
- MessageSquare,
FileText,
- Calculator,
- Users,
- Kanban,
+ Bot,
+ Video,
+ Radio,
+ Eye,
+ Bell,
ChevronLeft,
ChevronRight,
+ Palette,
+ GitFork,
+ Calculator,
+ Building2,
} from "lucide-react";
import { Button } from "@/components/ui/button";
import { ScrollArea } from "@/components/ui/scroll-area";
@@ -65,13 +62,22 @@ export function Sidebar({ isOpen, onClose }: SidebarProps) {
});
};
+ const handleNavigation = (href: string, external?: boolean) => {
+ if (external && href) {
+ window.open(href, "_blank");
+ } else {
+ router.push(href);
+ }
+ onClose();
+ };
+
// Base menu items (available for everyone)
const baseMenuItems: MenuItem[] = [
{
- title: "Diary",
- icon: BookOpen,
- href: "/diary",
- iframe: process.env.NEXT_PUBLIC_IFRAME_DIARY_URL,
+ title: "TimeTracker",
+ icon: Clock,
+ href: "/timetracker",
+ iframe: process.env.NEXT_PUBLIC_IFRAME_TIMETRACKER_URL || '',
},
{
title: "Calendar",
@@ -80,52 +86,40 @@ export function Sidebar({ isOpen, onClose }: SidebarProps) {
external: false,
},
{
- title: "Email",
- icon: Mail,
- href: "/email",
- iframe: process.env.NEXT_PUBLIC_IFRAME_MAIL_URL,
- },
- {
- title: "Drive",
- icon: HardDrive,
- href: "/drive",
- iframe: process.env.NEXT_PUBLIC_IFRAME_DRIVE_URL,
- },
- {
- title: "Contacts",
- icon: Users,
- href: "/contacts",
- iframe: process.env.NEXT_PUBLIC_IFRAME_CONTACTS_URL,
- },
- {
- title: "Learn",
- icon: GraduationCap,
- href: "/learn",
- iframe: process.env.NEXT_PUBLIC_IFRAME_LEARN_URL,
- },
- {
- title: "Parole",
- icon: MessageSquare,
- href: "/parole",
- iframe: process.env.NEXT_PUBLIC_IFRAME_PAROLE_URL,
- },
- {
- title: "MissionsBoard",
- icon: Kanban,
- href: "/missions-board",
- iframe: process.env.NEXT_PUBLIC_IFRAME_MISSIONSBOARD_URL,
- },
- {
- title: "Chapter",
+ title: "Notes",
icon: FileText,
- href: "/chapter",
- iframe: process.env.NEXT_PUBLIC_IFRAME_CHAPTER_URL,
+ href: "/notes",
+ iframe: process.env.NEXT_PUBLIC_IFRAME_NOTES_URL || '',
},
{
- title: "Agility",
- icon: Share2,
- href: "/flow",
- iframe: process.env.NEXT_PUBLIC_IFRAME_AGILITY_URL,
+ title: "AI Assistant",
+ icon: Bot,
+ href: "/ai-assistant",
+ iframe: process.env.NEXT_PUBLIC_IFRAME_AI_ASSISTANT_URL || '',
+ },
+ {
+ title: "Conference",
+ icon: Video,
+ href: "/conference",
+ iframe: process.env.NEXT_PUBLIC_IFRAME_CONFERENCE_URL || '',
+ },
+ {
+ title: "Radio",
+ icon: Radio,
+ href: "/radio",
+ iframe: process.env.NEXT_PUBLIC_IFRAME_RADIO_URL || '',
+ },
+ {
+ title: "Observatory",
+ icon: Eye,
+ href: "/observatory",
+ iframe: process.env.NEXT_PUBLIC_IFRAME_OBSERVATORY_URL || '',
+ },
+ {
+ title: "Announcement",
+ icon: Bell,
+ href: "/announcement",
+ iframe: process.env.NEXT_PUBLIC_IFRAME_ANNOUNCEMENT_URL || '',
},
];
@@ -135,28 +129,28 @@ export function Sidebar({ isOpen, onClose }: SidebarProps) {
title: "Artlab",
icon: Palette,
href: "/design",
- iframe: process.env.NEXT_PUBLIC_IFRAME_ARTLAB_URL,
+ iframe: process.env.NEXT_PUBLIC_IFRAME_ARTLAB_URL || '',
requiredRole: "Expression",
},
{
title: "Gite",
icon: GitFork,
href: "/gite",
- iframe: process.env.NEXT_PUBLIC_IFRAME_GITE_URL,
+ iframe: process.env.NEXT_PUBLIC_IFRAME_GITE_URL || '',
requiredRole: "Coding",
},
{
title: "Calculation",
icon: Calculator,
href: "/calculation",
- iframe: process.env.NEXT_PUBLIC_IFRAME_CALCULATION_URL,
+ iframe: process.env.NEXT_PUBLIC_IFRAME_CALCULATION_URL || '',
requiredRole: "DataIntelligence",
},
{
title: "Mediations",
icon: Building2,
href: "/crm",
- iframe: process.env.NEXT_PUBLIC_IFRAME_MEDIATIONS_URL,
+ iframe: process.env.NEXT_PUBLIC_IFRAME_MEDIATIONS_URL || '',
requiredRole: "Mediation",
},
];
@@ -167,15 +161,6 @@ export function Sidebar({ isOpen, onClose }: SidebarProps) {
...roleSpecificItems.filter(item => hasRole(item.requiredRole))
];
- const handleNavigation = (href: string, external?: boolean) => {
- if (external && href) {
- window.open(href, "_blank");
- } else {
- router.push(href);
- }
- onClose();
- };
-
return (
<>
{/* Backdrop */}