mirror of
https://github.com/thecyberlearn/Victor-AI-Hub.git
synced 2026-08-18 07:53:03 +00:00
first commit
This commit is contained in:
commit
2de592507f
666
calendar-agent.html
Normal file
666
calendar-agent.html
Normal file
@ -0,0 +1,666 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Calendar Agent - AI Calendar Management</title>
|
||||||
|
<script src="https://cdn.tailwindcss.com"></script>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||||
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Plus Jakarta Sans', sans-serif;
|
||||||
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-hover {
|
||||||
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-hover:hover {
|
||||||
|
transform: translateY(-4px);
|
||||||
|
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.meeting-upcoming { border-left: 4px solid #3b82f6; background: rgba(59, 130, 246, 0.1); }
|
||||||
|
.meeting-current { border-left: 4px solid #ef4444; background: rgba(239, 68, 68, 0.1); }
|
||||||
|
.meeting-completed { border-left: 4px solid #10b981; background: rgba(16, 185, 129, 0.1); }
|
||||||
|
|
||||||
|
.time-slot-available { background: rgba(16, 185, 129, 0.2); border: 1px solid rgba(16, 185, 129, 0.3); }
|
||||||
|
.time-slot-busy { background: rgba(239, 68, 68, 0.2); border: 1px solid rgba(239, 68, 68, 0.3); }
|
||||||
|
.time-slot-selected { background: rgba(59, 130, 246, 0.3); border: 2px solid #3b82f6; }
|
||||||
|
|
||||||
|
@keyframes fadeIn {
|
||||||
|
from { opacity: 0; transform: translateY(20px); }
|
||||||
|
to { opacity: 1; transform: translateY(0); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.fade-in {
|
||||||
|
animation: fadeIn 0.4s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-scrollbar::-webkit-scrollbar {
|
||||||
|
width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-scrollbar::-webkit-scrollbar-track {
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-scrollbar::-webkit-scrollbar-thumb {
|
||||||
|
background: rgba(255, 255, 255, 0.3);
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
|
||||||
|
background: rgba(255, 255, 255, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-day {
|
||||||
|
aspect-ratio: 1;
|
||||||
|
transition: all 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-day:hover {
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-day.today {
|
||||||
|
background: rgba(59, 130, 246, 0.3);
|
||||||
|
border: 2px solid #3b82f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-day.has-events {
|
||||||
|
background: rgba(16, 185, 129, 0.2);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!-- Navigation Header -->
|
||||||
|
<nav class="bg-white shadow-sm border-b sticky top-0 z-50">
|
||||||
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||||
|
<div class="flex justify-between items-center py-4">
|
||||||
|
<div class="flex items-center gap-3">
|
||||||
|
<button onclick="goHome()" class="w-10 h-10 bg-indigo-100 rounded-lg flex items-center justify-center hover:bg-indigo-200 transition-colors">
|
||||||
|
<i class="fas fa-home text-indigo-600"></i>
|
||||||
|
</button>
|
||||||
|
<div class="w-10 h-10 bg-green-600 rounded-xl flex items-center justify-center shadow-lg">
|
||||||
|
<i class="fas fa-calendar-alt text-white text-lg"></i>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h1 class="text-lg font-bold text-gray-800">Calendar Agent</h1>
|
||||||
|
<p class="text-sm text-gray-500">AI Calendar Management</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hidden md:flex items-center gap-6">
|
||||||
|
<div class="text-right">
|
||||||
|
<p class="text-sm text-gray-500">Last sync</p>
|
||||||
|
<p class="font-semibold text-gray-800" id="lastSync">Just now</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<div class="w-2 h-2 bg-green-400 rounded-full animate-pulse"></div>
|
||||||
|
<span class="text-sm text-green-600 font-medium">Synced</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<!-- Main Content -->
|
||||||
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6 bg-gray-50 min-h-screen">
|
||||||
|
|
||||||
|
<!-- Header Section -->
|
||||||
|
<div class="text-center mb-8">
|
||||||
|
<h1 class="text-3xl lg:text-4xl font-bold text-gray-800 mb-4">AI Calendar Management</h1>
|
||||||
|
<p class="text-xl text-gray-600 max-w-2xl mx-auto">
|
||||||
|
Smart scheduling, optimal time finding, and intelligent meeting management powered by AI.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Calendar Command Center -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 mb-8 shadow-lg border border-gray-200">
|
||||||
|
<div class="flex items-center gap-3 mb-4">
|
||||||
|
<div class="w-10 h-10 bg-green-600 rounded-lg flex items-center justify-center">
|
||||||
|
<i class="fas fa-brain text-white"></i>
|
||||||
|
</div>
|
||||||
|
<h2 class="text-xl font-bold text-gray-800">Calendar AI Command</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-col sm:flex-row gap-3">
|
||||||
|
<div class="flex-1">
|
||||||
|
<input
|
||||||
|
id="calendarCommand"
|
||||||
|
type="text"
|
||||||
|
placeholder="Ask AI: 'Schedule team meeting tomorrow 2PM', 'Find free time this week', 'Reschedule conflicting meetings'"
|
||||||
|
class="w-full px-4 py-3 rounded-xl border border-gray-300 bg-white text-gray-800 placeholder-gray-500 focus:border-green-400 focus:ring-2 focus:ring-green-400/50 outline-none transition-all"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
onclick="executeCalendarCommand()"
|
||||||
|
class="w-full sm:w-auto bg-green-600 hover:bg-green-700 text-white px-6 py-3 rounded-xl font-semibold transition-all flex items-center justify-center gap-2 min-w-[120px]"
|
||||||
|
id="calendarAiBtn"
|
||||||
|
>
|
||||||
|
<i class="fas fa-robot"></i>
|
||||||
|
<span>Execute</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Quick Commands -->
|
||||||
|
<div class="mt-4 flex flex-wrap gap-2">
|
||||||
|
<span class="text-sm text-gray-500 mr-2">Quick commands:</span>
|
||||||
|
<button onclick="setCalendarCommand('Show today\'s schedule')" class="text-xs bg-green-100 hover:bg-green-200 text-green-700 px-3 py-1 rounded-full transition-colors">
|
||||||
|
Today's Schedule
|
||||||
|
</button>
|
||||||
|
<button onclick="setCalendarCommand('Find free time this week')" class="text-xs bg-green-100 hover:bg-green-200 text-green-700 px-3 py-1 rounded-full transition-colors">
|
||||||
|
Find Free Time
|
||||||
|
</button>
|
||||||
|
<button onclick="setCalendarCommand('Schedule team meeting')" class="text-xs bg-green-100 hover:bg-green-200 text-green-700 px-3 py-1 rounded-full transition-colors">
|
||||||
|
Schedule Meeting
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Stats Dashboard -->
|
||||||
|
<div class="grid grid-cols-2 lg:grid-cols-4 gap-4 mb-8">
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-10 h-10 bg-blue-100 rounded-lg flex items-center justify-center mx-auto mb-2">
|
||||||
|
<i class="fas fa-calendar-day text-blue-600"></i>
|
||||||
|
</div>
|
||||||
|
<div class="text-2xl font-bold text-gray-800" id="todayMeetings">5</div>
|
||||||
|
<div class="text-sm text-gray-500">Today</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-10 h-10 bg-orange-100 rounded-lg flex items-center justify-center mx-auto mb-2">
|
||||||
|
<i class="fas fa-clock text-orange-600"></i>
|
||||||
|
</div>
|
||||||
|
<div class="text-2xl font-bold text-gray-800" id="nextMeeting">2:30 PM</div>
|
||||||
|
<div class="text-sm text-gray-500">Next</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-10 h-10 bg-green-100 rounded-lg flex items-center justify-center mx-auto mb-2">
|
||||||
|
<i class="fas fa-check-circle text-green-600"></i>
|
||||||
|
</div>
|
||||||
|
<div class="text-2xl font-bold text-gray-800" id="freeSlots">3</div>
|
||||||
|
<div class="text-sm text-gray-500">Free Slots</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-10 h-10 bg-purple-100 rounded-lg flex items-center justify-center mx-auto mb-2">
|
||||||
|
<i class="fas fa-robot text-purple-600"></i>
|
||||||
|
</div>
|
||||||
|
<div class="text-2xl font-bold text-gray-800" id="aiScheduled">12</div>
|
||||||
|
<div class="text-sm text-gray-500">AI Scheduled</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Main Calendar Interface -->
|
||||||
|
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
|
||||||
|
|
||||||
|
<!-- Calendar View & Today's Schedule -->
|
||||||
|
<div class="lg:col-span-2 space-y-6">
|
||||||
|
|
||||||
|
<!-- Mini Calendar -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<div class="flex items-center justify-between mb-4">
|
||||||
|
<h3 class="text-xl font-bold text-gray-800">December 2024</h3>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<button class="p-2 bg-gray-100 rounded-lg hover:bg-gray-200 transition-colors">
|
||||||
|
<i class="fas fa-chevron-left text-gray-600"></i>
|
||||||
|
</button>
|
||||||
|
<button class="p-2 bg-gray-100 rounded-lg hover:bg-gray-200 transition-colors">
|
||||||
|
<i class="fas fa-chevron-right text-gray-600"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid grid-cols-7 gap-1 mb-2">
|
||||||
|
<div class="text-center text-sm font-medium text-gray-500 py-2">Sun</div>
|
||||||
|
<div class="text-center text-sm font-medium text-gray-500 py-2">Mon</div>
|
||||||
|
<div class="text-center text-sm font-medium text-gray-500 py-2">Tue</div>
|
||||||
|
<div class="text-center text-sm font-medium text-gray-500 py-2">Wed</div>
|
||||||
|
<div class="text-center text-sm font-medium text-gray-500 py-2">Thu</div>
|
||||||
|
<div class="text-center text-sm font-medium text-gray-500 py-2">Fri</div>
|
||||||
|
<div class="text-center text-sm font-medium text-gray-500 py-2">Sat</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid grid-cols-7 gap-1">
|
||||||
|
<!-- Calendar days -->
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-500 bg-gray-50">1</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 today bg-blue-100 border-2 border-blue-500">2</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 has-events bg-green-100">3</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 hover:bg-gray-100">4</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 has-events bg-green-100">5</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 hover:bg-gray-100">6</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 hover:bg-gray-100">7</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 hover:bg-gray-100">8</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 has-events bg-green-100">9</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 hover:bg-gray-100">10</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 hover:bg-gray-100">11</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 has-events bg-green-100">12</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 hover:bg-gray-100">13</div>
|
||||||
|
<div class="calendar-day rounded-lg p-2 text-center text-gray-800 hover:bg-gray-100">14</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Today's Schedule -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<div class="flex items-center justify-between mb-6">
|
||||||
|
<h3 class="text-xl font-bold text-gray-800">Today's Schedule</h3>
|
||||||
|
<span class="text-sm text-gray-500">Monday, Dec 2, 2024</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="space-y-4 custom-scrollbar max-h-96 overflow-y-auto" id="scheduleList">
|
||||||
|
<!-- Current Meeting -->
|
||||||
|
<div class="meeting-current p-4 rounded-lg border border-red-200">
|
||||||
|
<div class="flex items-center justify-between mb-2">
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<div class="w-3 h-3 bg-red-500 rounded-full animate-pulse"></div>
|
||||||
|
<span class="font-semibold text-gray-800">Team Standup</span>
|
||||||
|
<span class="px-2 py-1 bg-red-100 text-red-700 text-xs rounded-full">Live</span>
|
||||||
|
</div>
|
||||||
|
<span class="text-sm text-gray-500">9:00 - 9:30 AM</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-gray-600 mb-2">Daily sync with development team</p>
|
||||||
|
<div class="flex items-center gap-4 text-xs text-gray-500">
|
||||||
|
<span><i class="fas fa-users mr-1"></i>8 attendees</span>
|
||||||
|
<span><i class="fas fa-video mr-1"></i>Zoom Meeting</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Upcoming Meetings -->
|
||||||
|
<div class="meeting-upcoming p-4 rounded-lg border border-blue-200">
|
||||||
|
<div class="flex items-center justify-between mb-2">
|
||||||
|
<span class="font-semibold text-gray-800">Client Presentation</span>
|
||||||
|
<span class="text-sm text-gray-500">2:30 - 3:30 PM</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-gray-600 mb-2">Q4 strategy review with ABC Corp</p>
|
||||||
|
<div class="flex items-center gap-4 text-xs text-gray-500 mb-2">
|
||||||
|
<span><i class="fas fa-users mr-1"></i>5 attendees</span>
|
||||||
|
<span><i class="fas fa-map-marker-alt mr-1"></i>Conference Room A</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex gap-2">
|
||||||
|
<button class="px-3 py-1 bg-blue-600 text-white text-xs rounded-lg hover:bg-blue-700 transition-colors">Join</button>
|
||||||
|
<button class="px-3 py-1 bg-gray-100 text-gray-700 text-xs rounded-lg hover:bg-gray-200 transition-colors">Reschedule</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="meeting-upcoming p-4 rounded-lg border border-blue-200">
|
||||||
|
<div class="flex items-center justify-between mb-2">
|
||||||
|
<span class="font-semibold text-gray-800">Budget Review</span>
|
||||||
|
<span class="text-sm text-gray-500">4:00 - 5:00 PM</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-gray-600 mb-2">Monthly financial planning session</p>
|
||||||
|
<div class="flex items-center gap-4 text-xs text-gray-500">
|
||||||
|
<span><i class="fas fa-users mr-1"></i>3 attendees</span>
|
||||||
|
<span><i class="fas fa-video mr-1"></i>Teams Meeting</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Free Time Block -->
|
||||||
|
<div class="p-4 rounded-lg border-2 border-dashed border-green-400 bg-green-50">
|
||||||
|
<div class="flex items-center justify-between mb-2">
|
||||||
|
<span class="font-semibold text-green-700">Focus Time</span>
|
||||||
|
<span class="text-sm text-green-600">10:00 - 12:00 PM</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-green-600">2-hour block reserved for deep work</p>
|
||||||
|
<div class="flex items-center gap-2 text-xs text-green-600 mt-2">
|
||||||
|
<i class="fas fa-brain mr-1"></i>AI Protected Time
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- AI Actions Panel -->
|
||||||
|
<div class="space-y-6">
|
||||||
|
|
||||||
|
<!-- Quick Actions -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-4">Quick Actions</h3>
|
||||||
|
<div class="space-y-3">
|
||||||
|
<button onclick="scheduleMeeting()" class="w-full p-3 bg-green-600 hover:bg-green-700 rounded-lg text-white font-medium transition-colors flex items-center gap-3">
|
||||||
|
<i class="fas fa-plus"></i>
|
||||||
|
<span>Schedule Meeting</span>
|
||||||
|
</button>
|
||||||
|
<button onclick="findFreeTime()" class="w-full p-3 bg-blue-600 hover:bg-blue-700 rounded-lg text-white font-medium transition-colors flex items-center gap-3">
|
||||||
|
<i class="fas fa-search"></i>
|
||||||
|
<span>Find Free Time</span>
|
||||||
|
</button>
|
||||||
|
<button onclick="blockFocusTime()" class="w-full p-3 bg-purple-600 hover:bg-purple-700 rounded-lg text-white font-medium transition-colors flex items-center gap-3">
|
||||||
|
<i class="fas fa-brain"></i>
|
||||||
|
<span>Block Focus Time</span>
|
||||||
|
</button>
|
||||||
|
<button onclick="optimizeSchedule()" class="w-full p-3 bg-orange-600 hover:bg-orange-700 rounded-lg text-white font-medium transition-colors flex items-center gap-3">
|
||||||
|
<i class="fas fa-magic"></i>
|
||||||
|
<span>Optimize Schedule</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Time Analysis -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-4">Time Analysis</h3>
|
||||||
|
<div class="space-y-4">
|
||||||
|
<div class="bg-blue-50 rounded-lg p-3 border border-blue-200">
|
||||||
|
<h4 class="font-medium text-blue-700 mb-1">Meeting Load</h4>
|
||||||
|
<div class="w-full bg-gray-200 rounded-full h-2 mb-1">
|
||||||
|
<div class="bg-blue-500 h-2 rounded-full" style="width: 65%"></div>
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-blue-600">65% of day in meetings</p>
|
||||||
|
</div>
|
||||||
|
<div class="bg-green-50 rounded-lg p-3 border border-green-200">
|
||||||
|
<h4 class="font-medium text-green-700 mb-1">Focus Time</h4>
|
||||||
|
<div class="w-full bg-gray-200 rounded-full h-2 mb-1">
|
||||||
|
<div class="bg-green-500 h-2 rounded-full" style="width: 35%"></div>
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-green-600">2.8 hours available</p>
|
||||||
|
</div>
|
||||||
|
<div class="bg-orange-50 rounded-lg p-3 border border-orange-200">
|
||||||
|
<h4 class="font-medium text-orange-700 mb-1">Efficiency Score</h4>
|
||||||
|
<p class="text-2xl font-bold text-orange-600">87%</p>
|
||||||
|
<p class="text-sm text-orange-600">Above average</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Upcoming Conflicts -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-4">AI Insights</h3>
|
||||||
|
<div class="space-y-3">
|
||||||
|
<div class="bg-yellow-50 border border-yellow-200 rounded-lg p-3">
|
||||||
|
<h4 class="font-medium text-yellow-700 mb-1">⚠️ Potential Conflict</h4>
|
||||||
|
<p class="text-sm text-yellow-600">Tomorrow 3PM: Two meetings scheduled</p>
|
||||||
|
</div>
|
||||||
|
<div class="bg-blue-50 border border-blue-200 rounded-lg p-3">
|
||||||
|
<h4 class="font-medium text-blue-700 mb-1">💡 Suggestion</h4>
|
||||||
|
<p class="text-sm text-blue-600">Move standup to 8:30 AM for better flow</p>
|
||||||
|
</div>
|
||||||
|
<div class="bg-green-50 border border-green-200 rounded-lg p-3">
|
||||||
|
<h4 class="font-medium text-green-700 mb-1">✨ Opportunity</h4>
|
||||||
|
<p class="text-sm text-green-600">Friday 2-4 PM available for deep work</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Recent AI Actions -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-4">Recent AI Actions</h3>
|
||||||
|
<div class="space-y-3 custom-scrollbar max-h-48 overflow-y-auto">
|
||||||
|
<div class="flex items-start gap-3 p-2 bg-gray-50 rounded-lg">
|
||||||
|
<div class="w-6 h-6 bg-green-100 rounded flex items-center justify-center flex-shrink-0 mt-1">
|
||||||
|
<i class="fas fa-calendar-plus text-green-600 text-xs"></i>
|
||||||
|
</div>
|
||||||
|
<div class="flex-1 min-w-0">
|
||||||
|
<p class="text-sm text-gray-800">Scheduled team meeting</p>
|
||||||
|
<p class="text-xs text-gray-500">3 minutes ago</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-start gap-3 p-2 bg-gray-50 rounded-lg">
|
||||||
|
<div class="w-6 h-6 bg-blue-100 rounded flex items-center justify-center flex-shrink-0 mt-1">
|
||||||
|
<i class="fas fa-search text-blue-600 text-xs"></i>
|
||||||
|
</div>
|
||||||
|
<div class="flex-1 min-w-0">
|
||||||
|
<p class="text-sm text-gray-800">Found optimal meeting time</p>
|
||||||
|
<p class="text-xs text-gray-500">8 minutes ago</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-start gap-3 p-2 bg-gray-50 rounded-lg">
|
||||||
|
<div class="w-6 h-6 bg-purple-100 rounded flex items-center justify-center flex-shrink-0 mt-1">
|
||||||
|
<i class="fas fa-brain text-purple-600 text-xs"></i>
|
||||||
|
</div>
|
||||||
|
<div class="flex-1 min-w-0">
|
||||||
|
<p class="text-sm text-gray-800">Protected focus time</p>
|
||||||
|
<p class="text-xs text-gray-500">15 minutes ago</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- AI Response Modal -->
|
||||||
|
<div id="aiModal" class="hidden fixed inset-0 bg-black bg-opacity-50 z-50 flex items-center justify-center p-4">
|
||||||
|
<div class="bg-white rounded-2xl max-w-2xl w-full max-h-[80vh] overflow-hidden">
|
||||||
|
<div class="p-6 border-b border-gray-200">
|
||||||
|
<div class="flex items-center justify-between">
|
||||||
|
<div class="flex items-center gap-3">
|
||||||
|
<div class="w-10 h-10 bg-green-100 rounded-lg flex items-center justify-center">
|
||||||
|
<i class="fas fa-robot text-green-600"></i>
|
||||||
|
</div>
|
||||||
|
<h3 class="text-lg font-bold text-gray-800">Calendar AI Response</h3>
|
||||||
|
</div>
|
||||||
|
<button onclick="closeAIModal()" class="text-gray-400 hover:text-gray-600">
|
||||||
|
<i class="fas fa-times"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="p-6 overflow-y-auto custom-scrollbar" id="aiResponse">
|
||||||
|
<!-- AI response content will be loaded here -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Navigation function
|
||||||
|
function goHome() {
|
||||||
|
if (confirm('Return to AI Services Hub?')) {
|
||||||
|
alert('Navigating to AI Services Hub...\n\nIn production, this would load: index.html');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
updateLastSync();
|
||||||
|
initializeEventListeners();
|
||||||
|
});
|
||||||
|
|
||||||
|
function initializeEventListeners() {
|
||||||
|
document.getElementById('calendarCommand').addEventListener('keypress', function(e) {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
executeCalendarCommand();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateLastSync() {
|
||||||
|
document.getElementById('lastSync').textContent = new Date().toLocaleTimeString();
|
||||||
|
}
|
||||||
|
|
||||||
|
function setCalendarCommand(command) {
|
||||||
|
document.getElementById('calendarCommand').value = command;
|
||||||
|
executeCalendarCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function executeCalendarCommand() {
|
||||||
|
const command = document.getElementById('calendarCommand').value.trim();
|
||||||
|
if (!command) {
|
||||||
|
alert('Please enter a command');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const btn = document.getElementById('calendarAiBtn');
|
||||||
|
btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Processing...';
|
||||||
|
btn.disabled = true;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Simulate AI processing
|
||||||
|
await new Promise(resolve => setTimeout(resolve, 1500));
|
||||||
|
|
||||||
|
const response = generateCalendarAIResponse(command);
|
||||||
|
showAIModal(response);
|
||||||
|
|
||||||
|
// Update stats
|
||||||
|
updateCalendarStats();
|
||||||
|
updateLastSync();
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
alert('Error processing command: ' + error.message);
|
||||||
|
} finally {
|
||||||
|
btn.innerHTML = '<i class="fas fa-robot"></i> <span>Execute</span>';
|
||||||
|
btn.disabled = false;
|
||||||
|
document.getElementById('calendarCommand').value = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateCalendarAIResponse(command) {
|
||||||
|
const lowerCommand = command.toLowerCase();
|
||||||
|
|
||||||
|
if (lowerCommand.includes('schedule') && lowerCommand.includes('meeting')) {
|
||||||
|
return `
|
||||||
|
<div class="space-y-4">
|
||||||
|
<h4 class="text-lg font-semibold text-gray-800">📅 Schedule Meeting</h4>
|
||||||
|
<div class="bg-green-50 border border-green-200 p-4 rounded-lg">
|
||||||
|
<h5 class="font-medium text-green-800 mb-2">✅ Optimal Time Found</h5>
|
||||||
|
<p class="text-sm text-green-700 mb-3">Best time for all attendees: <strong>Tomorrow 3:30 PM - 4:30 PM</strong></p>
|
||||||
|
<div class="space-y-2 text-sm text-green-700">
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<i class="fas fa-users text-green-600"></i>
|
||||||
|
<span>5 attendees available</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<i class="fas fa-map-marker-alt text-green-600"></i>
|
||||||
|
<span>Conference Room B reserved</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<i class="fas fa-video text-green-600"></i>
|
||||||
|
<span>Zoom link generated</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bg-blue-50 border border-blue-200 p-4 rounded-lg">
|
||||||
|
<h5 class="font-medium text-blue-800 mb-2">📋 Meeting Details</h5>
|
||||||
|
<div class="space-y-2 text-sm text-blue-700">
|
||||||
|
<p><strong>Title:</strong> Team Strategy Discussion</p>
|
||||||
|
<p><strong>Duration:</strong> 1 hour</p>
|
||||||
|
<p><strong>Attendees:</strong> Sarah, John, Mike, Lisa, David</p>
|
||||||
|
<p><strong>Agenda:</strong> Q1 planning and resource allocation</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex gap-3">
|
||||||
|
<button class="flex-1 bg-green-600 text-white py-2 px-4 rounded-lg hover:bg-green-700 transition-colors">Confirm & Send Invites</button>
|
||||||
|
<button class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50 transition-colors">Modify Details</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return `
|
||||||
|
<div class="space-y-4">
|
||||||
|
<h4 class="text-lg font-semibold text-gray-800">🤖 Calendar AI Response</h4>
|
||||||
|
<div class="bg-green-50 border border-green-200 p-4 rounded-lg">
|
||||||
|
<p class="text-green-700">Processing your request: "<em>${command}</em>"</p>
|
||||||
|
<p class="text-sm text-green-600 mt-2">I can help you with:</p>
|
||||||
|
<ul class="mt-3 space-y-1 text-sm text-green-700">
|
||||||
|
<li>• Smart meeting scheduling and optimization</li>
|
||||||
|
<li>• Finding optimal free time slots</li>
|
||||||
|
<li>• Conflict detection and resolution</li>
|
||||||
|
<li>• Focus time blocking and protection</li>
|
||||||
|
<li>• Calendar analysis and insights</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showAIModal(content) {
|
||||||
|
document.getElementById('aiResponse').innerHTML = content;
|
||||||
|
document.getElementById('aiModal').classList.remove('hidden');
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeAIModal() {
|
||||||
|
document.getElementById('aiModal').classList.add('hidden');
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateCalendarStats() {
|
||||||
|
const aiScheduled = document.getElementById('aiScheduled');
|
||||||
|
const current = parseInt(aiScheduled.textContent);
|
||||||
|
aiScheduled.textContent = current + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Quick action functions
|
||||||
|
function scheduleMeeting() {
|
||||||
|
showAIModal(`
|
||||||
|
<div class="space-y-4">
|
||||||
|
<h4 class="text-lg font-semibold text-gray-800">📅 Schedule New Meeting</h4>
|
||||||
|
<div class="space-y-4">
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Meeting Title:</label>
|
||||||
|
<input type="text" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500 focus:border-green-500" placeholder="Team Strategy Discussion">
|
||||||
|
</div>
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Date:</label>
|
||||||
|
<input type="date" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500 focus:border-green-500">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Duration:</label>
|
||||||
|
<select class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500 focus:border-green-500">
|
||||||
|
<option value="30">30 minutes</option>
|
||||||
|
<option value="60" selected>1 hour</option>
|
||||||
|
<option value="90">1.5 hours</option>
|
||||||
|
<option value="120">2 hours</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Attendees:</label>
|
||||||
|
<input type="text" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500 focus:border-green-500" placeholder="sarah@company.com, john@company.com">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Meeting Type:</label>
|
||||||
|
<div class="grid grid-cols-2 gap-3">
|
||||||
|
<label class="flex items-center p-3 border border-gray-300 rounded-lg cursor-pointer hover:bg-gray-50">
|
||||||
|
<input type="radio" name="meetingType" value="inPerson" class="mr-2">
|
||||||
|
<span class="text-sm">In-Person</span>
|
||||||
|
</label>
|
||||||
|
<label class="flex items-center p-3 border border-gray-300 rounded-lg cursor-pointer hover:bg-gray-50">
|
||||||
|
<input type="radio" name="meetingType" value="virtual" class="mr-2" checked>
|
||||||
|
<span class="text-sm">Virtual</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button class="w-full bg-green-600 text-white py-3 px-4 rounded-lg hover:bg-green-700 transition-colors font-medium">
|
||||||
|
🤖 Find Optimal Time & Schedule
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function findFreeTime() {
|
||||||
|
updateCalendarStats();
|
||||||
|
alert('🔍 Found 3 optimal time slots this week for your requirements');
|
||||||
|
}
|
||||||
|
|
||||||
|
function blockFocusTime() {
|
||||||
|
updateCalendarStats();
|
||||||
|
alert('🧠 Protected 2-hour focus block scheduled for tomorrow 10-12 AM');
|
||||||
|
}
|
||||||
|
|
||||||
|
function optimizeSchedule() {
|
||||||
|
if (confirm('Let AI optimize your schedule for maximum productivity?')) {
|
||||||
|
updateCalendarStats();
|
||||||
|
alert('✨ Schedule optimized! Moved 3 meetings to create better focus blocks and reduced meeting fragmentation by 40%.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
588
email-agent.html
Normal file
588
email-agent.html
Normal file
@ -0,0 +1,588 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Email Agent - AI Email Management</title>
|
||||||
|
<script src="https://cdn.tailwindcss.com"></script>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||||
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Plus Jakarta Sans', sans-serif;
|
||||||
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-hover {
|
||||||
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-hover:hover {
|
||||||
|
transform: translateY(-4px);
|
||||||
|
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.priority-high { border-left: 4px solid #ef4444; }
|
||||||
|
.priority-medium { border-left: 4px solid #f59e0b; }
|
||||||
|
.priority-low { border-left: 4px solid #10b981; }
|
||||||
|
|
||||||
|
.email-unread { background: rgba(59, 130, 246, 0.1); border-left: 3px solid #3b82f6; }
|
||||||
|
.email-read { background: rgba(255, 255, 255, 0.05); }
|
||||||
|
|
||||||
|
@keyframes fadeIn {
|
||||||
|
from { opacity: 0; transform: translateY(20px); }
|
||||||
|
to { opacity: 1; transform: translateY(0); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.fade-in {
|
||||||
|
animation: fadeIn 0.4s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-scrollbar::-webkit-scrollbar {
|
||||||
|
width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-scrollbar::-webkit-scrollbar-track {
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-scrollbar::-webkit-scrollbar-thumb {
|
||||||
|
background: rgba(255, 255, 255, 0.3);
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
|
||||||
|
background: rgba(255, 255, 255, 0.5);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!-- Navigation Header -->
|
||||||
|
<nav class="bg-white shadow-sm border-b sticky top-0 z-50">
|
||||||
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||||
|
<div class="flex justify-between items-center py-4">
|
||||||
|
<div class="flex items-center gap-3">
|
||||||
|
<button onclick="goHome()" class="w-10 h-10 bg-indigo-100 rounded-lg flex items-center justify-center hover:bg-indigo-200 transition-colors">
|
||||||
|
<i class="fas fa-home text-indigo-600"></i>
|
||||||
|
</button>
|
||||||
|
<div class="w-10 h-10 bg-blue-600 rounded-xl flex items-center justify-center shadow-lg">
|
||||||
|
<i class="fas fa-envelope text-white text-lg"></i>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h1 class="text-lg font-bold text-gray-800">Email Agent</h1>
|
||||||
|
<p class="text-sm text-gray-500">AI Email Management</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hidden md:flex items-center gap-6">
|
||||||
|
<div class="text-right">
|
||||||
|
<p class="text-sm text-gray-500">Last sync</p>
|
||||||
|
<p class="font-semibold text-gray-800" id="lastSync">Just now</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<div class="w-2 h-2 bg-green-400 rounded-full animate-pulse"></div>
|
||||||
|
<span class="text-sm text-green-600 font-medium">Online</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<!-- Main Content -->
|
||||||
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6 bg-gray-50 min-h-screen">
|
||||||
|
|
||||||
|
<!-- Header Section -->
|
||||||
|
<div class="text-center mb-8">
|
||||||
|
<h1 class="text-3xl lg:text-4xl font-bold text-gray-800 mb-4">AI Email Management</h1>
|
||||||
|
<p class="text-xl text-gray-600 max-w-2xl mx-auto">
|
||||||
|
Let AI handle your inbox intelligently. Summarize, categorize, and manage emails with natural language commands.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Email Command Center -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 mb-8 shadow-lg border border-gray-200">
|
||||||
|
<div class="flex items-center gap-3 mb-4">
|
||||||
|
<div class="w-10 h-10 bg-blue-600 rounded-lg flex items-center justify-center">
|
||||||
|
<i class="fas fa-brain text-white"></i>
|
||||||
|
</div>
|
||||||
|
<h2 class="text-xl font-bold text-gray-800">Email AI Command</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-col sm:flex-row gap-3">
|
||||||
|
<div class="flex-1">
|
||||||
|
<input
|
||||||
|
id="emailCommand"
|
||||||
|
type="text"
|
||||||
|
placeholder="Ask AI: 'Summarize today's emails', 'Mark all newsletters as read', 'Show priority emails'"
|
||||||
|
class="w-full px-4 py-3 rounded-xl border border-gray-300 bg-white text-gray-800 placeholder-gray-500 focus:border-blue-400 focus:ring-2 focus:ring-blue-400/50 outline-none transition-all"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
onclick="executeEmailCommand()"
|
||||||
|
class="w-full sm:w-auto bg-blue-600 hover:bg-blue-700 text-white px-6 py-3 rounded-xl font-semibold transition-all flex items-center justify-center gap-2 min-w-[120px]"
|
||||||
|
id="emailAiBtn"
|
||||||
|
>
|
||||||
|
<i class="fas fa-robot"></i>
|
||||||
|
<span>Execute</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Quick Commands -->
|
||||||
|
<div class="mt-4 flex flex-wrap gap-2">
|
||||||
|
<span class="text-sm text-gray-500 mr-2">Quick commands:</span>
|
||||||
|
<button onclick="setEmailCommand('Summarize unread emails')" class="text-xs bg-blue-100 hover:bg-blue-200 text-blue-700 px-3 py-1 rounded-full transition-colors">
|
||||||
|
Summarize Unread
|
||||||
|
</button>
|
||||||
|
<button onclick="setEmailCommand('Show priority emails')" class="text-xs bg-blue-100 hover:bg-blue-200 text-blue-700 px-3 py-1 rounded-full transition-colors">
|
||||||
|
Priority Emails
|
||||||
|
</button>
|
||||||
|
<button onclick="setEmailCommand('Archive old emails')" class="text-xs bg-blue-100 hover:bg-blue-200 text-blue-700 px-3 py-1 rounded-full transition-colors">
|
||||||
|
Archive Old
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Stats Dashboard -->
|
||||||
|
<div class="grid grid-cols-2 lg:grid-cols-4 gap-4 mb-8">
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-10 h-10 bg-red-100 rounded-lg flex items-center justify-center mx-auto mb-2">
|
||||||
|
<i class="fas fa-envelope text-red-600"></i>
|
||||||
|
</div>
|
||||||
|
<div class="text-2xl font-bold text-gray-800" id="unreadCount">23</div>
|
||||||
|
<div class="text-sm text-gray-500">Unread</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-10 h-10 bg-orange-100 rounded-lg flex items-center justify-center mx-auto mb-2">
|
||||||
|
<i class="fas fa-exclamation-triangle text-orange-600"></i>
|
||||||
|
</div>
|
||||||
|
<div class="text-2xl font-bold text-gray-800" id="priorityCount">5</div>
|
||||||
|
<div class="text-sm text-gray-500">Priority</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-10 h-10 bg-green-100 rounded-lg flex items-center justify-center mx-auto mb-2">
|
||||||
|
<i class="fas fa-check-circle text-green-600"></i>
|
||||||
|
</div>
|
||||||
|
<div class="text-2xl font-bold text-gray-800" id="processedCount">147</div>
|
||||||
|
<div class="text-sm text-gray-500">Processed</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-10 h-10 bg-purple-100 rounded-lg flex items-center justify-center mx-auto mb-2">
|
||||||
|
<i class="fas fa-robot text-purple-600"></i>
|
||||||
|
</div>
|
||||||
|
<div class="text-2xl font-bold text-gray-800" id="aiActionsCount">89</div>
|
||||||
|
<div class="text-sm text-gray-500">AI Actions</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Main Email Interface -->
|
||||||
|
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
|
||||||
|
|
||||||
|
<!-- Email List -->
|
||||||
|
<div class="lg:col-span-2">
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<div class="flex items-center justify-between mb-6">
|
||||||
|
<h3 class="text-xl font-bold text-gray-800">Inbox</h3>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<button onclick="refreshEmails()" class="p-2 bg-gray-100 rounded-lg hover:bg-gray-200 transition-colors">
|
||||||
|
<i class="fas fa-sync-alt text-gray-600"></i>
|
||||||
|
</button>
|
||||||
|
<select class="bg-gray-100 border border-gray-300 rounded-lg px-3 py-1 text-gray-700 text-sm">
|
||||||
|
<option value="all">All</option>
|
||||||
|
<option value="unread">Unread</option>
|
||||||
|
<option value="priority">Priority</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="space-y-3 custom-scrollbar max-h-96 overflow-y-auto" id="emailList">
|
||||||
|
<!-- Priority Email -->
|
||||||
|
<div class="email-unread priority-high p-4 rounded-lg cursor-pointer hover:bg-blue-50 transition-colors border border-gray-200" onclick="selectEmail(1)">
|
||||||
|
<div class="flex items-start justify-between">
|
||||||
|
<div class="flex-1">
|
||||||
|
<div class="flex items-center gap-2 mb-1">
|
||||||
|
<span class="font-semibold text-gray-800">Sarah Johnson</span>
|
||||||
|
<span class="px-2 py-1 bg-red-100 text-red-700 text-xs rounded-full">High Priority</span>
|
||||||
|
</div>
|
||||||
|
<h4 class="font-medium text-gray-800 mb-1">Project Kickoff Meeting - Urgent Response Needed</h4>
|
||||||
|
<p class="text-sm text-gray-600 line-clamp-2">Hi team, we need to schedule the project kickoff meeting for next week. Please confirm your availability...</p>
|
||||||
|
</div>
|
||||||
|
<div class="text-right ml-4">
|
||||||
|
<div class="text-sm text-gray-500">2 min ago</div>
|
||||||
|
<div class="flex items-center gap-1 mt-1">
|
||||||
|
<i class="fas fa-paperclip text-gray-400 text-xs"></i>
|
||||||
|
<span class="text-xs text-gray-500">2</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Regular Email -->
|
||||||
|
<div class="email-unread priority-medium p-4 rounded-lg cursor-pointer hover:bg-blue-50 transition-colors border border-gray-200" onclick="selectEmail(2)">
|
||||||
|
<div class="flex items-start justify-between">
|
||||||
|
<div class="flex-1">
|
||||||
|
<div class="flex items-center gap-2 mb-1">
|
||||||
|
<span class="font-semibold text-gray-800">Finance Team</span>
|
||||||
|
<span class="px-2 py-1 bg-orange-100 text-orange-700 text-xs rounded-full">Medium</span>
|
||||||
|
</div>
|
||||||
|
<h4 class="font-medium text-gray-800 mb-1">Invoice Approval Required - $2,500</h4>
|
||||||
|
<p class="text-sm text-gray-600 line-clamp-2">Please review and approve the attached invoice from our vendor for the recent software purchase...</p>
|
||||||
|
</div>
|
||||||
|
<div class="text-right ml-4">
|
||||||
|
<div class="text-sm text-gray-500">15 min ago</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Read Email -->
|
||||||
|
<div class="email-read priority-low p-4 rounded-lg cursor-pointer hover:bg-gray-50 transition-colors border border-gray-200" onclick="selectEmail(3)">
|
||||||
|
<div class="flex items-start justify-between">
|
||||||
|
<div class="flex-1">
|
||||||
|
<div class="flex items-center gap-2 mb-1">
|
||||||
|
<span class="font-medium text-gray-600">Marketing Team</span>
|
||||||
|
<span class="px-2 py-1 bg-green-100 text-green-700 text-xs rounded-full">Low</span>
|
||||||
|
</div>
|
||||||
|
<h4 class="font-medium text-gray-600 mb-1">Q4 Campaign Results Summary</h4>
|
||||||
|
<p class="text-sm text-gray-500 line-clamp-2">Here's the summary of our Q4 marketing campaign performance. Overall, we exceeded our targets...</p>
|
||||||
|
</div>
|
||||||
|
<div class="text-right ml-4">
|
||||||
|
<div class="text-sm text-gray-500">1 hour ago</div>
|
||||||
|
<i class="fas fa-check text-green-500 text-sm mt-1"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Newsletter -->
|
||||||
|
<div class="email-read p-4 rounded-lg cursor-pointer hover:bg-gray-50 transition-colors border border-gray-200" onclick="selectEmail(4)">
|
||||||
|
<div class="flex items-start justify-between">
|
||||||
|
<div class="flex-1">
|
||||||
|
<div class="flex items-center gap-2 mb-1">
|
||||||
|
<span class="font-medium text-gray-600">TechCrunch</span>
|
||||||
|
<span class="px-2 py-1 bg-gray-100 text-gray-600 text-xs rounded-full">Newsletter</span>
|
||||||
|
</div>
|
||||||
|
<h4 class="font-medium text-gray-600 mb-1">Daily Tech News Digest</h4>
|
||||||
|
<p class="text-sm text-gray-500 line-clamp-2">Today's top stories in technology: AI breakthrough, startup funding, and more...</p>
|
||||||
|
</div>
|
||||||
|
<div class="text-right ml-4">
|
||||||
|
<div class="text-sm text-gray-500">3 hours ago</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- AI Actions Panel -->
|
||||||
|
<div class="space-y-6">
|
||||||
|
|
||||||
|
<!-- Quick Actions -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-4">Quick Actions</h3>
|
||||||
|
<div class="space-y-3">
|
||||||
|
<button onclick="composeEmail()" class="w-full p-3 bg-blue-600 hover:bg-blue-700 rounded-lg text-white font-medium transition-colors flex items-center gap-3">
|
||||||
|
<i class="fas fa-edit"></i>
|
||||||
|
<span>Compose Email</span>
|
||||||
|
</button>
|
||||||
|
<button onclick="markAllRead()" class="w-full p-3 bg-green-600 hover:bg-green-700 rounded-lg text-white font-medium transition-colors flex items-center gap-3">
|
||||||
|
<i class="fas fa-check-double"></i>
|
||||||
|
<span>Mark All Read</span>
|
||||||
|
</button>
|
||||||
|
<button onclick="archiveOld()" class="w-full p-3 bg-orange-600 hover:bg-orange-700 rounded-lg text-white font-medium transition-colors flex items-center gap-3">
|
||||||
|
<i class="fas fa-archive"></i>
|
||||||
|
<span>Archive Old</span>
|
||||||
|
</button>
|
||||||
|
<button onclick="smartSort()" class="w-full p-3 bg-purple-600 hover:bg-purple-700 rounded-lg text-white font-medium transition-colors flex items-center gap-3">
|
||||||
|
<i class="fas fa-magic"></i>
|
||||||
|
<span>Smart Sort</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- AI Insights -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-4">AI Insights</h3>
|
||||||
|
<div class="space-y-4">
|
||||||
|
<div class="bg-blue-50 rounded-lg p-3 border border-blue-200">
|
||||||
|
<h4 class="font-medium text-blue-700 mb-1">Peak Email Times</h4>
|
||||||
|
<p class="text-sm text-blue-600">Most emails arrive 9-11 AM</p>
|
||||||
|
</div>
|
||||||
|
<div class="bg-green-50 rounded-lg p-3 border border-green-200">
|
||||||
|
<h4 class="font-medium text-green-700 mb-1">Response Rate</h4>
|
||||||
|
<p class="text-sm text-green-600">87% avg response time: 2.3 hours</p>
|
||||||
|
</div>
|
||||||
|
<div class="bg-orange-50 rounded-lg p-3 border border-orange-200">
|
||||||
|
<h4 class="font-medium text-orange-700 mb-1">Productivity Tip</h4>
|
||||||
|
<p class="text-sm text-orange-600">Schedule focused email time blocks</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Recent AI Actions -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-4">Recent AI Actions</h3>
|
||||||
|
<div class="space-y-3 custom-scrollbar max-h-48 overflow-y-auto">
|
||||||
|
<div class="flex items-start gap-3 p-2 bg-gray-50 rounded-lg">
|
||||||
|
<div class="w-6 h-6 bg-blue-100 rounded flex items-center justify-center flex-shrink-0 mt-1">
|
||||||
|
<i class="fas fa-envelope text-blue-600 text-xs"></i>
|
||||||
|
</div>
|
||||||
|
<div class="flex-1 min-w-0">
|
||||||
|
<p class="text-sm text-gray-800">Summarized 15 emails</p>
|
||||||
|
<p class="text-xs text-gray-500">2 minutes ago</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-start gap-3 p-2 bg-gray-50 rounded-lg">
|
||||||
|
<div class="w-6 h-6 bg-green-100 rounded flex items-center justify-center flex-shrink-0 mt-1">
|
||||||
|
<i class="fas fa-check text-green-600 text-xs"></i>
|
||||||
|
</div>
|
||||||
|
<div class="flex-1 min-w-0">
|
||||||
|
<p class="text-sm text-gray-800">Auto-archived newsletters</p>
|
||||||
|
<p class="text-xs text-gray-500">5 minutes ago</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-start gap-3 p-2 bg-gray-50 rounded-lg">
|
||||||
|
<div class="w-6 h-6 bg-purple-100 rounded flex items-center justify-center flex-shrink-0 mt-1">
|
||||||
|
<i class="fas fa-magic text-purple-600 text-xs"></i>
|
||||||
|
</div>
|
||||||
|
<div class="flex-1 min-w-0">
|
||||||
|
<p class="text-sm text-gray-800">Smart sorted by priority</p>
|
||||||
|
<p class="text-xs text-gray-500">10 minutes ago</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- AI Response Modal -->
|
||||||
|
<div id="aiModal" class="hidden fixed inset-0 bg-black bg-opacity-50 z-50 flex items-center justify-center p-4">
|
||||||
|
<div class="bg-white rounded-2xl max-w-2xl w-full max-h-[80vh] overflow-hidden">
|
||||||
|
<div class="p-6 border-b border-gray-200">
|
||||||
|
<div class="flex items-center justify-between">
|
||||||
|
<div class="flex items-center gap-3">
|
||||||
|
<div class="w-10 h-10 bg-blue-100 rounded-lg flex items-center justify-center">
|
||||||
|
<i class="fas fa-robot text-blue-600"></i>
|
||||||
|
</div>
|
||||||
|
<h3 class="text-lg font-bold text-gray-800">Email AI Response</h3>
|
||||||
|
</div>
|
||||||
|
<button onclick="closeAIModal()" class="text-gray-400 hover:text-gray-600">
|
||||||
|
<i class="fas fa-times"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="p-6 overflow-y-auto custom-scrollbar" id="aiResponse">
|
||||||
|
<!-- AI response content will be loaded here -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Navigation function
|
||||||
|
function goHome() {
|
||||||
|
if (confirm('Return to AI Services Hub?')) {
|
||||||
|
alert('Navigating to AI Services Hub...\n\nIn production, this would load: index.html');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
updateLastSync();
|
||||||
|
initializeEventListeners();
|
||||||
|
});
|
||||||
|
|
||||||
|
function initializeEventListeners() {
|
||||||
|
document.getElementById('emailCommand').addEventListener('keypress', function(e) {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
executeEmailCommand();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateLastSync() {
|
||||||
|
document.getElementById('lastSync').textContent = new Date().toLocaleTimeString();
|
||||||
|
}
|
||||||
|
|
||||||
|
function setEmailCommand(command) {
|
||||||
|
document.getElementById('emailCommand').value = command;
|
||||||
|
executeEmailCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function executeEmailCommand() {
|
||||||
|
const command = document.getElementById('emailCommand').value.trim();
|
||||||
|
if (!command) {
|
||||||
|
alert('Please enter a command');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const btn = document.getElementById('emailAiBtn');
|
||||||
|
btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Processing...';
|
||||||
|
btn.disabled = true;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Simulate AI processing
|
||||||
|
await new Promise(resolve => setTimeout(resolve, 1500));
|
||||||
|
|
||||||
|
const response = generateEmailAIResponse(command);
|
||||||
|
showAIModal(response);
|
||||||
|
|
||||||
|
// Update stats
|
||||||
|
updateEmailStats();
|
||||||
|
updateLastSync();
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
alert('Error processing command: ' + error.message);
|
||||||
|
} finally {
|
||||||
|
btn.innerHTML = '<i class="fas fa-robot"></i> <span>Execute</span>';
|
||||||
|
btn.disabled = false;
|
||||||
|
document.getElementById('emailCommand').value = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateEmailAIResponse(command) {
|
||||||
|
const lowerCommand = command.toLowerCase();
|
||||||
|
|
||||||
|
if (lowerCommand.includes('summarize') || lowerCommand.includes('summary')) {
|
||||||
|
return `
|
||||||
|
<div class="space-y-4">
|
||||||
|
<h4 class="text-lg font-semibold text-gray-800">📧 Email Summary</h4>
|
||||||
|
<div class="bg-red-50 border border-red-200 p-4 rounded-lg">
|
||||||
|
<h5 class="font-medium text-red-800 mb-2">High Priority Emails (2)</h5>
|
||||||
|
<ul class="space-y-2 text-sm text-red-700">
|
||||||
|
<li>• Sarah Johnson - Project Kickoff Meeting (requires immediate response)</li>
|
||||||
|
<li>• Finance Team - Invoice Approval for $2,500 vendor payment</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="bg-orange-50 border border-orange-200 p-4 rounded-lg">
|
||||||
|
<h5 class="font-medium text-orange-800 mb-2">Medium Priority (3)</h5>
|
||||||
|
<ul class="space-y-1 text-sm text-orange-700">
|
||||||
|
<li>• Client feedback on Q4 proposal</li>
|
||||||
|
<li>• Team update from HR department</li>
|
||||||
|
<li>• Security alert notification</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="bg-gray-50 border border-gray-200 p-4 rounded-lg">
|
||||||
|
<h5 class="font-medium text-gray-800 mb-2">Other Emails (18)</h5>
|
||||||
|
<p class="text-sm text-gray-600">Newsletters (12), Social notifications (4), Automated reports (2)</p>
|
||||||
|
</div>
|
||||||
|
<div class="bg-blue-50 border border-blue-200 p-4 rounded-lg">
|
||||||
|
<p class="text-sm text-blue-700">💡 <strong>AI Recommendation:</strong> Focus on the 2 high-priority emails first. I can auto-archive the newsletters and draft responses for medium priority items.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return `
|
||||||
|
<div class="space-y-4">
|
||||||
|
<h4 class="text-lg font-semibold text-gray-800">🤖 Email AI Response</h4>
|
||||||
|
<div class="bg-blue-50 border border-blue-200 p-4 rounded-lg">
|
||||||
|
<p class="text-blue-700">Processing your request: "<em>${command}</em>"</p>
|
||||||
|
<p class="text-sm text-blue-600 mt-2">I can help you with:</p>
|
||||||
|
<ul class="mt-3 space-y-1 text-sm text-blue-700">
|
||||||
|
<li>• Email summarization and prioritization</li>
|
||||||
|
<li>• Automatic categorization and sorting</li>
|
||||||
|
<li>• Draft response generation</li>
|
||||||
|
<li>• Schedule meetings from emails</li>
|
||||||
|
<li>• Archive and organize emails</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showAIModal(content) {
|
||||||
|
document.getElementById('aiResponse').innerHTML = content;
|
||||||
|
document.getElementById('aiModal').classList.remove('hidden');
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeAIModal() {
|
||||||
|
document.getElementById('aiModal').classList.add('hidden');
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateEmailStats() {
|
||||||
|
const aiActions = document.getElementById('aiActionsCount');
|
||||||
|
const current = parseInt(aiActions.textContent);
|
||||||
|
aiActions.textContent = current + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Quick action functions
|
||||||
|
function composeEmail() {
|
||||||
|
showAIModal(`
|
||||||
|
<div class="space-y-4">
|
||||||
|
<h4 class="text-lg font-semibold text-gray-800">✍️ Compose New Email</h4>
|
||||||
|
<div class="space-y-4">
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">To:</label>
|
||||||
|
<input type="email" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="recipient@example.com">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Subject:</label>
|
||||||
|
<input type="text" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="Email subject">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Message:</label>
|
||||||
|
<textarea rows="6" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="Type your message here..."></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="flex gap-3">
|
||||||
|
<button class="flex-1 bg-blue-600 text-white py-2 px-4 rounded-lg hover:bg-blue-700 transition-colors">Send Email</button>
|
||||||
|
<button class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50 transition-colors">Save Draft</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectEmail(id) {
|
||||||
|
// Highlight selected email and show preview
|
||||||
|
document.querySelectorAll('#emailList > div').forEach(email => {
|
||||||
|
email.classList.remove('ring-2', 'ring-blue-400');
|
||||||
|
});
|
||||||
|
event.currentTarget.classList.add('ring-2', 'ring-blue-400');
|
||||||
|
}
|
||||||
|
|
||||||
|
function refreshEmails() {
|
||||||
|
// Simulate refresh
|
||||||
|
const btn = event.currentTarget;
|
||||||
|
btn.innerHTML = '<i class="fas fa-spinner fa-spin text-gray-600"></i>';
|
||||||
|
setTimeout(() => {
|
||||||
|
btn.innerHTML = '<i class="fas fa-sync-alt text-gray-600"></i>';
|
||||||
|
updateLastSync();
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function markAllRead() {
|
||||||
|
if (confirm('Mark all emails as read?')) {
|
||||||
|
document.getElementById('unreadCount').textContent = '0';
|
||||||
|
updateEmailStats();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function archiveOld() {
|
||||||
|
if (confirm('Archive emails older than 30 days?')) {
|
||||||
|
updateEmailStats();
|
||||||
|
alert('Successfully archived 15 old emails');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function smartSort() {
|
||||||
|
updateEmailStats();
|
||||||
|
alert('Emails sorted by AI priority algorithm');
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
412
index.html
Normal file
412
index.html
Normal file
@ -0,0 +1,412 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>AI Services Hub</title>
|
||||||
|
<script src="https://cdn.tailwindcss.com"></script>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||||
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Plus Jakarta Sans', sans-serif;
|
||||||
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-card {
|
||||||
|
background: white;
|
||||||
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
border: 1px solid #e5e7eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-card:hover {
|
||||||
|
transform: translateY(-8px);
|
||||||
|
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes float {
|
||||||
|
0%, 100% { transform: translateY(0px); }
|
||||||
|
50% { transform: translateY(-10px); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.float-animation {
|
||||||
|
animation: float 3s ease-in-out infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pulse-glow {
|
||||||
|
0%, 100% { box-shadow: 0 0 20px rgba(102, 126, 234, 0.4); }
|
||||||
|
50% { box-shadow: 0 0 30px rgba(102, 126, 234, 0.8); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.pulse-glow {
|
||||||
|
animation: pulse-glow 2s ease-in-out infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-indicator {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-indicator::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: -2px;
|
||||||
|
right: -2px;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
background: #10b981;
|
||||||
|
border-radius: 50%;
|
||||||
|
border: 2px solid white;
|
||||||
|
animation: pulse 2s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pulse {
|
||||||
|
0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }
|
||||||
|
70% { transform: scale(1); box-shadow: 0 0 0 10px rgba(16, 185, 129, 0); }
|
||||||
|
100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mobile responsiveness */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.service-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
gap: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 769px) and (max-width: 1024px) {
|
||||||
|
.service-grid {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1025px) {
|
||||||
|
.service-grid {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!-- Header -->
|
||||||
|
<nav class="bg-white/10 backdrop-blur-md border-b border-white/20 sticky top-0 z-50">
|
||||||
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||||
|
<div class="flex justify-between items-center py-4">
|
||||||
|
<div class="flex items-center gap-3">
|
||||||
|
<div class="w-12 h-12 bg-indigo-600 rounded-xl flex items-center justify-center shadow-lg status-indicator">
|
||||||
|
<i class="fas fa-brain text-white text-xl"></i>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h1 class="text-xl font-bold text-white">AI Services Hub</h1>
|
||||||
|
<p class="text-sm text-gray-200">Intelligent Business Solutions</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hidden md:flex items-center gap-6">
|
||||||
|
<div class="text-right">
|
||||||
|
<p class="text-sm text-gray-200">System Status</p>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<div class="w-2 h-2 bg-green-400 rounded-full animate-pulse"></div>
|
||||||
|
<span class="text-sm font-medium text-white">All Systems Online</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<!-- Main Content -->
|
||||||
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 lg:py-16">
|
||||||
|
|
||||||
|
<!-- Hero Section -->
|
||||||
|
<div class="text-center mb-16">
|
||||||
|
<div class="float-animation mb-8">
|
||||||
|
<div class="w-24 h-24 bg-indigo-600 rounded-3xl flex items-center justify-center mx-auto shadow-2xl pulse-glow">
|
||||||
|
<i class="fas fa-rocket text-white text-4xl"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h1 class="text-4xl lg:text-6xl font-bold text-white mb-6">
|
||||||
|
Welcome to <span class="text-indigo-200">AI Services</span>
|
||||||
|
</h1>
|
||||||
|
<p class="text-xl text-gray-200 max-w-3xl mx-auto mb-8">
|
||||||
|
Supercharge your business with our suite of AI-powered tools. From trade intelligence to email management,
|
||||||
|
we've got everything you need to work smarter, not harder.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Quick Stats -->
|
||||||
|
<div class="grid grid-cols-2 lg:grid-cols-4 gap-4 max-w-2xl mx-auto">
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg">
|
||||||
|
<div class="text-2xl font-bold text-indigo-600">4</div>
|
||||||
|
<div class="text-sm text-gray-600">AI Agents</div>
|
||||||
|
</div>
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg">
|
||||||
|
<div class="text-2xl font-bold text-indigo-600">99.9%</div>
|
||||||
|
<div class="text-sm text-gray-600">Uptime</div>
|
||||||
|
</div>
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg">
|
||||||
|
<div class="text-2xl font-bold text-indigo-600">24/7</div>
|
||||||
|
<div class="text-sm text-gray-600">Available</div>
|
||||||
|
</div>
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg">
|
||||||
|
<div class="text-2xl font-bold text-indigo-600">150+</div>
|
||||||
|
<div class="text-sm text-gray-600">Countries</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Services Grid -->
|
||||||
|
<div class="service-grid grid gap-8 lg:gap-12">
|
||||||
|
|
||||||
|
<!-- Trade Intelligence Service -->
|
||||||
|
<div class="service-card rounded-3xl p-8 lg:p-10 group cursor-pointer shadow-xl" onclick="navigateToService('trade')">
|
||||||
|
<div class="flex items-start justify-between mb-6">
|
||||||
|
<div class="flex items-center gap-4">
|
||||||
|
<div class="w-16 h-16 bg-blue-600 rounded-2xl flex items-center justify-center group-hover:scale-110 transition-transform shadow-lg">
|
||||||
|
<i class="fas fa-ship text-white text-2xl"></i>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 class="text-2xl font-bold text-gray-800 mb-2">Trade Intelligence</h3>
|
||||||
|
<p class="text-gray-600">Victor AI Agent</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<div class="w-3 h-3 bg-green-500 rounded-full animate-pulse"></div>
|
||||||
|
<span class="text-sm text-green-600 font-medium">Active</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p class="text-gray-600 mb-6 text-lg leading-relaxed">
|
||||||
|
Find exporters, importers, and trade data from around the world. Search our comprehensive database
|
||||||
|
of companies and create/update/delete records with natural language commands.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="grid grid-cols-2 gap-4 mb-6">
|
||||||
|
<div class="bg-blue-50 rounded-xl p-4">
|
||||||
|
<div class="text-xl font-bold text-blue-600">150+</div>
|
||||||
|
<div class="text-sm text-gray-600">Countries</div>
|
||||||
|
</div>
|
||||||
|
<div class="bg-blue-50 rounded-xl p-4">
|
||||||
|
<div class="text-xl font-bold text-blue-600">50K+</div>
|
||||||
|
<div class="text-sm text-gray-600">Companies</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-center justify-between">
|
||||||
|
<div class="flex flex-wrap gap-2">
|
||||||
|
<span class="px-3 py-1 bg-blue-100 text-blue-700 rounded-full text-sm">Search</span>
|
||||||
|
<span class="px-3 py-1 bg-blue-100 text-blue-700 rounded-full text-sm">CRUD</span>
|
||||||
|
<span class="px-3 py-1 bg-blue-100 text-blue-700 rounded-full text-sm">Export</span>
|
||||||
|
</div>
|
||||||
|
<i class="fas fa-arrow-right text-blue-600 opacity-0 group-hover:opacity-100 group-hover:translate-x-2 transition-all"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Email & Task Management Service -->
|
||||||
|
<div class="service-card rounded-3xl p-8 lg:p-10 group cursor-pointer shadow-xl" onclick="navigateToService('email')">
|
||||||
|
<div class="flex items-start justify-between mb-6">
|
||||||
|
<div class="flex items-center gap-4">
|
||||||
|
<div class="w-16 h-16 bg-indigo-600 rounded-2xl flex items-center justify-center group-hover:scale-110 transition-transform shadow-lg">
|
||||||
|
<i class="fas fa-envelope-open-text text-white text-2xl"></i>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 class="text-2xl font-bold text-gray-800 mb-2">Email & Task Manager</h3>
|
||||||
|
<p class="text-gray-600">AI Assistant</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<div class="w-3 h-3 bg-green-500 rounded-full animate-pulse"></div>
|
||||||
|
<span class="text-sm text-green-600 font-medium">Active</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p class="text-gray-600 mb-6 text-lg leading-relaxed">
|
||||||
|
Manage emails, schedule meetings, and organize tasks with AI assistance. Get intelligent summaries,
|
||||||
|
automated scheduling, and smart task prioritization.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="grid grid-cols-3 gap-4 mb-6">
|
||||||
|
<div class="bg-indigo-50 rounded-xl p-4">
|
||||||
|
<div class="text-xl font-bold text-indigo-600">23</div>
|
||||||
|
<div class="text-sm text-gray-600">Unread</div>
|
||||||
|
</div>
|
||||||
|
<div class="bg-indigo-50 rounded-xl p-4">
|
||||||
|
<div class="text-xl font-bold text-indigo-600">5</div>
|
||||||
|
<div class="text-sm text-gray-600">Meetings</div>
|
||||||
|
</div>
|
||||||
|
<div class="bg-indigo-50 rounded-xl p-4">
|
||||||
|
<div class="text-xl font-bold text-indigo-600">12</div>
|
||||||
|
<div class="text-sm text-gray-600">Tasks</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-center justify-between">
|
||||||
|
<div class="flex flex-wrap gap-2">
|
||||||
|
<span class="px-3 py-1 bg-indigo-100 text-indigo-700 rounded-full text-sm">Email</span>
|
||||||
|
<span class="px-3 py-1 bg-indigo-100 text-indigo-700 rounded-full text-sm">Calendar</span>
|
||||||
|
<span class="px-3 py-1 bg-indigo-100 text-indigo-700 rounded-full text-sm">Tasks</span>
|
||||||
|
</div>
|
||||||
|
<i class="fas fa-arrow-right text-indigo-600 opacity-0 group-hover:opacity-100 group-hover:translate-x-2 transition-all"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Individual Agent Cards Row -->
|
||||||
|
<div class="col-span-full">
|
||||||
|
<h2 class="text-2xl font-bold text-white text-center mb-8">Individual AI Agents</h2>
|
||||||
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
|
||||||
|
|
||||||
|
<!-- Email Agent -->
|
||||||
|
<div class="service-card rounded-2xl p-6 group cursor-pointer shadow-lg" onclick="navigateToService('email-agent')">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-12 h-12 bg-blue-600 rounded-xl flex items-center justify-center mx-auto mb-4 group-hover:scale-110 transition-transform shadow-lg">
|
||||||
|
<i class="fas fa-envelope text-white text-xl"></i>
|
||||||
|
</div>
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-2">Email Agent</h3>
|
||||||
|
<p class="text-gray-600 text-sm mb-4">Smart email management and summarization</p>
|
||||||
|
<div class="bg-blue-50 rounded-lg p-3 mb-4">
|
||||||
|
<div class="text-lg font-bold text-blue-600">5</div>
|
||||||
|
<div class="text-xs text-gray-600">Priority Emails</div>
|
||||||
|
</div>
|
||||||
|
<button class="w-full bg-blue-600 hover:bg-blue-700 text-white py-2 px-4 rounded-lg text-sm transition-colors">
|
||||||
|
Open Email Agent
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Calendar Agent -->
|
||||||
|
<div class="service-card rounded-2xl p-6 group cursor-pointer shadow-lg" onclick="navigateToService('calendar-agent')">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-12 h-12 bg-green-600 rounded-xl flex items-center justify-center mx-auto mb-4 group-hover:scale-110 transition-transform shadow-lg">
|
||||||
|
<i class="fas fa-calendar text-white text-xl"></i>
|
||||||
|
</div>
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-2">Calendar Agent</h3>
|
||||||
|
<p class="text-gray-600 text-sm mb-4">Intelligent scheduling and meeting management</p>
|
||||||
|
<div class="bg-green-50 rounded-lg p-3 mb-4">
|
||||||
|
<div class="text-lg font-bold text-green-600">2:30 PM</div>
|
||||||
|
<div class="text-xs text-gray-600">Next Meeting</div>
|
||||||
|
</div>
|
||||||
|
<button class="w-full bg-green-600 hover:bg-green-700 text-white py-2 px-4 rounded-lg text-sm transition-colors">
|
||||||
|
Open Calendar
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Task Agent -->
|
||||||
|
<div class="service-card rounded-2xl p-6 group cursor-pointer shadow-lg" onclick="navigateToService('task-agent')">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-12 h-12 bg-orange-600 rounded-xl flex items-center justify-center mx-auto mb-4 group-hover:scale-110 transition-transform shadow-lg">
|
||||||
|
<i class="fas fa-tasks text-white text-xl"></i>
|
||||||
|
</div>
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-2">Task Agent</h3>
|
||||||
|
<p class="text-gray-600 text-sm mb-4">Smart task management and prioritization</p>
|
||||||
|
<div class="bg-orange-50 rounded-lg p-3 mb-4">
|
||||||
|
<div class="text-lg font-bold text-orange-600">4</div>
|
||||||
|
<div class="text-xs text-gray-600">Due Today</div>
|
||||||
|
</div>
|
||||||
|
<button class="w-full bg-orange-600 hover:bg-orange-700 text-white py-2 px-4 rounded-lg text-sm transition-colors">
|
||||||
|
Open Tasks
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Bottom CTA Section -->
|
||||||
|
<div class="text-center mt-16">
|
||||||
|
<div class="bg-white rounded-3xl p-8 shadow-2xl">
|
||||||
|
<h2 class="text-2xl font-bold text-gray-800 mb-4">Need Help Getting Started?</h2>
|
||||||
|
<p class="text-gray-600 mb-6">Our AI agents are here to help you streamline your workflow and boost productivity.</p>
|
||||||
|
<div class="flex flex-col sm:flex-row gap-4 justify-center">
|
||||||
|
<button class="bg-indigo-600 text-white px-6 py-3 rounded-xl font-semibold hover:bg-indigo-700 transition-colors shadow-lg">
|
||||||
|
<i class="fas fa-play mr-2"></i>
|
||||||
|
Watch Demo
|
||||||
|
</button>
|
||||||
|
<button class="border border-indigo-600 text-indigo-600 px-6 py-3 rounded-xl font-semibold hover:bg-indigo-50 transition-colors">
|
||||||
|
<i class="fas fa-book mr-2"></i>
|
||||||
|
Documentation
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function navigateToService(service) {
|
||||||
|
// For now, we'll use alerts to show navigation
|
||||||
|
// In production, these would navigate to actual pages
|
||||||
|
|
||||||
|
const services = {
|
||||||
|
'trade': {
|
||||||
|
name: 'Trade Intelligence (Victor AI)',
|
||||||
|
url: 'trade-intelligence.html',
|
||||||
|
description: 'Navigate to comprehensive trade data search and management'
|
||||||
|
},
|
||||||
|
'email': {
|
||||||
|
name: 'Email & Task Management Dashboard',
|
||||||
|
url: 'email-task-dashboard.html',
|
||||||
|
description: 'Navigate to unified email and task management interface'
|
||||||
|
},
|
||||||
|
'email-agent': {
|
||||||
|
name: 'Dedicated Email Agent',
|
||||||
|
url: 'email-agent.html',
|
||||||
|
description: 'Navigate to specialized email management interface'
|
||||||
|
},
|
||||||
|
'calendar-agent': {
|
||||||
|
name: 'Dedicated Calendar Agent',
|
||||||
|
url: 'calendar-agent.html',
|
||||||
|
description: 'Navigate to specialized calendar management interface'
|
||||||
|
},
|
||||||
|
'task-agent': {
|
||||||
|
name: 'Dedicated Task Agent',
|
||||||
|
url: 'task-agent.html',
|
||||||
|
description: 'Navigate to specialized task management interface'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const selectedService = services[service];
|
||||||
|
|
||||||
|
if (selectedService) {
|
||||||
|
// Show navigation intent (replace with actual navigation in production)
|
||||||
|
const confirmation = confirm(`Navigate to ${selectedService.name}?\n\n${selectedService.description}\n\nURL: ${selectedService.url}`);
|
||||||
|
|
||||||
|
if (confirmation) {
|
||||||
|
// In production, use: window.location.href = selectedService.url;
|
||||||
|
alert(`Navigating to ${selectedService.name}...\n\nIn production, this would load: ${selectedService.url}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add some interactive animations
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
// Add staggered animation to service cards
|
||||||
|
const cards = document.querySelectorAll('.service-card');
|
||||||
|
cards.forEach((card, index) => {
|
||||||
|
card.style.animationDelay = `${index * 0.1}s`;
|
||||||
|
card.classList.add('opacity-0');
|
||||||
|
setTimeout(() => {
|
||||||
|
card.style.animation = 'fadeInUp 0.6s ease-out forwards';
|
||||||
|
card.classList.remove('opacity-0');
|
||||||
|
}, index * 100);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add CSS for fade in animation
|
||||||
|
const style = document.createElement('style');
|
||||||
|
style.textContent = `
|
||||||
|
@keyframes fadeInUp {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(30px);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
document.head.appendChild(style);
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
728
task-agent.html
Normal file
728
task-agent.html
Normal file
@ -0,0 +1,728 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Task Agent - AI Task Management</title>
|
||||||
|
<script src="https://cdn.tailwindcss.com"></script>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||||
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Plus Jakarta Sans', sans-serif;
|
||||||
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-hover {
|
||||||
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-hover:hover {
|
||||||
|
transform: translateY(-4px);
|
||||||
|
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.priority-high { border-left: 4px solid #ef4444; }
|
||||||
|
.priority-medium { border-left: 4px solid #f59e0b; }
|
||||||
|
.priority-low { border-left: 4px solid #10b981; }
|
||||||
|
|
||||||
|
.task-completed {
|
||||||
|
background: rgba(16, 185, 129, 0.1);
|
||||||
|
border-left: 4px solid #10b981;
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
.task-overdue {
|
||||||
|
background: rgba(239, 68, 68, 0.1);
|
||||||
|
border-left: 4px solid #ef4444;
|
||||||
|
}
|
||||||
|
.task-due-today {
|
||||||
|
background: rgba(249, 115, 22, 0.1);
|
||||||
|
border-left: 4px solid #f97316;
|
||||||
|
}
|
||||||
|
.task-upcoming {
|
||||||
|
background: rgba(59, 130, 246, 0.1);
|
||||||
|
border-left: 4px solid #3b82f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fadeIn {
|
||||||
|
from { opacity: 0; transform: translateY(20px); }
|
||||||
|
to { opacity: 1; transform: translateY(0); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.fade-in {
|
||||||
|
animation: fadeIn 0.4s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-scrollbar::-webkit-scrollbar {
|
||||||
|
width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-scrollbar::-webkit-scrollbar-track {
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-scrollbar::-webkit-scrollbar-thumb {
|
||||||
|
background: rgba(255, 255, 255, 0.3);
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
|
||||||
|
background: rgba(255, 255, 255, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-bar {
|
||||||
|
background: linear-gradient(90deg, #10b981 0%, #059669 100%);
|
||||||
|
height: 6px;
|
||||||
|
border-radius: 3px;
|
||||||
|
transition: width 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kanban-column {
|
||||||
|
min-height: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.task-card {
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.task-card:hover {
|
||||||
|
transform: translateY(-2px);
|
||||||
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!-- Navigation Header -->
|
||||||
|
<nav class="bg-white shadow-sm border-b sticky top-0 z-50">
|
||||||
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||||
|
<div class="flex justify-between items-center py-4">
|
||||||
|
<div class="flex items-center gap-3">
|
||||||
|
<button onclick="goHome()" class="w-10 h-10 bg-indigo-100 rounded-lg flex items-center justify-center hover:bg-indigo-200 transition-colors">
|
||||||
|
<i class="fas fa-home text-indigo-600"></i>
|
||||||
|
</button>
|
||||||
|
<div class="w-10 h-10 bg-orange-600 rounded-xl flex items-center justify-center shadow-lg">
|
||||||
|
<i class="fas fa-tasks text-white text-lg"></i>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h1 class="text-lg font-bold text-gray-800">Task Agent</h1>
|
||||||
|
<p class="text-sm text-gray-500">AI Task Management</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hidden md:flex items-center gap-6">
|
||||||
|
<div class="text-right">
|
||||||
|
<p class="text-sm text-gray-500">Last update</p>
|
||||||
|
<p class="font-semibold text-gray-800" id="lastUpdate">Just now</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<div class="w-2 h-2 bg-green-400 rounded-full animate-pulse"></div>
|
||||||
|
<span class="text-sm text-green-600 font-medium">Active</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<!-- Main Content -->
|
||||||
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6 bg-gray-50 min-h-screen">
|
||||||
|
|
||||||
|
<!-- Header Section -->
|
||||||
|
<div class="text-center mb-8">
|
||||||
|
<h1 class="text-3xl lg:text-4xl font-bold text-gray-800 mb-4">AI Task Management</h1>
|
||||||
|
<p class="text-xl text-gray-600 max-w-2xl mx-auto">
|
||||||
|
Intelligent task prioritization, smart categorization, and productivity insights powered by AI.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Task Command Center -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 mb-8 shadow-lg border border-gray-200">
|
||||||
|
<div class="flex items-center gap-3 mb-4">
|
||||||
|
<div class="w-10 h-10 bg-orange-600 rounded-lg flex items-center justify-center">
|
||||||
|
<i class="fas fa-brain text-white"></i>
|
||||||
|
</div>
|
||||||
|
<h2 class="text-xl font-bold text-gray-800">Task AI Command</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-col sm:flex-row gap-3">
|
||||||
|
<div class="flex-1">
|
||||||
|
<input
|
||||||
|
id="taskCommand"
|
||||||
|
type="text"
|
||||||
|
placeholder="Ask AI: 'Create task for project proposal', 'Show overdue tasks', 'Prioritize my tasks by urgency'"
|
||||||
|
class="w-full px-4 py-3 rounded-xl border border-gray-300 bg-white text-gray-800 placeholder-gray-500 focus:border-orange-400 focus:ring-2 focus:ring-orange-400/50 outline-none transition-all"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
onclick="executeTaskCommand()"
|
||||||
|
class="w-full sm:w-auto bg-orange-600 hover:bg-orange-700 text-white px-6 py-3 rounded-xl font-semibold transition-all flex items-center justify-center gap-2 min-w-[120px]"
|
||||||
|
id="taskAiBtn"
|
||||||
|
>
|
||||||
|
<i class="fas fa-robot"></i>
|
||||||
|
<span>Execute</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Quick Commands -->
|
||||||
|
<div class="mt-4 flex flex-wrap gap-2">
|
||||||
|
<span class="text-sm text-gray-500 mr-2">Quick commands:</span>
|
||||||
|
<button onclick="setTaskCommand('Show overdue tasks')" class="text-xs bg-orange-100 hover:bg-orange-200 text-orange-700 px-3 py-1 rounded-full transition-colors">
|
||||||
|
Overdue Tasks
|
||||||
|
</button>
|
||||||
|
<button onclick="setTaskCommand('Create daily standup task')" class="text-xs bg-orange-100 hover:bg-orange-200 text-orange-700 px-3 py-1 rounded-full transition-colors">
|
||||||
|
Create Task
|
||||||
|
</button>
|
||||||
|
<button onclick="setTaskCommand('Prioritize by deadline')" class="text-xs bg-orange-100 hover:bg-orange-200 text-orange-700 px-3 py-1 rounded-full transition-colors">
|
||||||
|
Smart Prioritize
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Stats Dashboard -->
|
||||||
|
<div class="grid grid-cols-2 lg:grid-cols-4 gap-4 mb-8">
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-10 h-10 bg-red-100 rounded-lg flex items-center justify-center mx-auto mb-2">
|
||||||
|
<i class="fas fa-exclamation-triangle text-red-600"></i>
|
||||||
|
</div>
|
||||||
|
<div class="text-2xl font-bold text-gray-800" id="overdueCount">3</div>
|
||||||
|
<div class="text-sm text-gray-500">Overdue</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-10 h-10 bg-orange-100 rounded-lg flex items-center justify-center mx-auto mb-2">
|
||||||
|
<i class="fas fa-clock text-orange-600"></i>
|
||||||
|
</div>
|
||||||
|
<div class="text-2xl font-bold text-gray-800" id="dueTodayCount">4</div>
|
||||||
|
<div class="text-sm text-gray-500">Due Today</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-10 h-10 bg-blue-100 rounded-lg flex items-center justify-center mx-auto mb-2">
|
||||||
|
<i class="fas fa-list text-blue-600"></i>
|
||||||
|
</div>
|
||||||
|
<div class="text-2xl font-bold text-gray-800" id="totalTasks">15</div>
|
||||||
|
<div class="text-sm text-gray-500">Active</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-white rounded-xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="w-10 h-10 bg-green-100 rounded-lg flex items-center justify-center mx-auto mb-2">
|
||||||
|
<i class="fas fa-check-circle text-green-600"></i>
|
||||||
|
</div>
|
||||||
|
<div class="text-2xl font-bold text-gray-800" id="completedToday">8</div>
|
||||||
|
<div class="text-sm text-gray-500">Completed</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Main Task Interface -->
|
||||||
|
<div class="grid grid-cols-1 lg:grid-cols-4 gap-6">
|
||||||
|
|
||||||
|
<!-- Kanban Board -->
|
||||||
|
<div class="lg:col-span-3">
|
||||||
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
|
||||||
|
|
||||||
|
<!-- To Do Column -->
|
||||||
|
<div class="bg-white rounded-2xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="flex items-center justify-between mb-4">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 flex items-center gap-2">
|
||||||
|
<div class="w-3 h-3 bg-gray-400 rounded-full"></div>
|
||||||
|
To Do
|
||||||
|
</h3>
|
||||||
|
<span class="text-sm text-gray-500 bg-gray-100 px-2 py-1 rounded-full">7</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="space-y-3 kanban-column custom-scrollbar overflow-y-auto">
|
||||||
|
<!-- High Priority Task -->
|
||||||
|
<div class="task-card task-overdue bg-red-50 p-4 rounded-lg border border-red-200">
|
||||||
|
<div class="flex items-start justify-between mb-2">
|
||||||
|
<h4 class="font-medium text-gray-800 text-sm">Website Security Audit</h4>
|
||||||
|
<span class="px-2 py-1 bg-red-100 text-red-700 text-xs rounded-full">High</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-xs text-gray-600 mb-3">Complete security assessment and vulnerability report</p>
|
||||||
|
<div class="flex items-center justify-between text-xs text-gray-500">
|
||||||
|
<span><i class="fas fa-calendar mr-1"></i>2 days overdue</span>
|
||||||
|
<div class="flex items-center gap-1">
|
||||||
|
<i class="fas fa-paperclip"></i>
|
||||||
|
<span>3</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Medium Priority Task -->
|
||||||
|
<div class="task-card task-due-today bg-orange-50 p-4 rounded-lg border border-orange-200">
|
||||||
|
<div class="flex items-start justify-between mb-2">
|
||||||
|
<h4 class="font-medium text-gray-800 text-sm">Update Employee Handbook</h4>
|
||||||
|
<span class="px-2 py-1 bg-orange-100 text-orange-700 text-xs rounded-full">Medium</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-xs text-gray-600 mb-3">Revise policies and procedures section</p>
|
||||||
|
<div class="flex items-center justify-between text-xs text-gray-500">
|
||||||
|
<span><i class="fas fa-clock mr-1"></i>Due today</span>
|
||||||
|
<div class="flex items-center gap-1">
|
||||||
|
<i class="fas fa-comment"></i>
|
||||||
|
<span>2</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Low Priority Task -->
|
||||||
|
<div class="task-card task-upcoming bg-blue-50 p-4 rounded-lg border border-blue-200">
|
||||||
|
<div class="flex items-start justify-between mb-2">
|
||||||
|
<h4 class="font-medium text-gray-800 text-sm">Plan Team Building Event</h4>
|
||||||
|
<span class="px-2 py-1 bg-green-100 text-green-700 text-xs rounded-full">Low</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-xs text-gray-600 mb-3">Organize quarterly team activity</p>
|
||||||
|
<div class="flex items-center justify-between text-xs text-gray-500">
|
||||||
|
<span><i class="fas fa-calendar mr-1"></i>Due Dec 15</span>
|
||||||
|
<div class="flex items-center gap-1">
|
||||||
|
<i class="fas fa-users"></i>
|
||||||
|
<span>Team</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- In Progress Column -->
|
||||||
|
<div class="bg-white rounded-2xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="flex items-center justify-between mb-4">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 flex items-center gap-2">
|
||||||
|
<div class="w-3 h-3 bg-orange-400 rounded-full"></div>
|
||||||
|
In Progress
|
||||||
|
</h3>
|
||||||
|
<span class="text-sm text-gray-500 bg-gray-100 px-2 py-1 rounded-full">4</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="space-y-3 kanban-column custom-scrollbar overflow-y-auto">
|
||||||
|
<div class="task-card bg-gray-50 p-4 rounded-lg border border-gray-200">
|
||||||
|
<div class="flex items-start justify-between mb-2">
|
||||||
|
<h4 class="font-medium text-gray-800 text-sm">Q4 Financial Report</h4>
|
||||||
|
<span class="px-2 py-1 bg-orange-100 text-orange-700 text-xs rounded-full">High</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-xs text-gray-600 mb-3">Prepare quarterly financial analysis</p>
|
||||||
|
<div class="w-full bg-gray-200 rounded-full h-2 mb-2">
|
||||||
|
<div class="progress-bar rounded-full" style="width: 65%"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center justify-between text-xs text-gray-500">
|
||||||
|
<span>65% complete</span>
|
||||||
|
<span><i class="fas fa-calendar mr-1"></i>Due Dec 10</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="task-card bg-gray-50 p-4 rounded-lg border border-gray-200">
|
||||||
|
<div class="flex items-start justify-between mb-2">
|
||||||
|
<h4 class="font-medium text-gray-800 text-sm">API Documentation</h4>
|
||||||
|
<span class="px-2 py-1 bg-blue-100 text-blue-700 text-xs rounded-full">Medium</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-xs text-gray-600 mb-3">Document new REST API endpoints</p>
|
||||||
|
<div class="w-full bg-gray-200 rounded-full h-2 mb-2">
|
||||||
|
<div class="progress-bar rounded-full" style="width: 30%"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center justify-between text-xs text-gray-500">
|
||||||
|
<span>30% complete</span>
|
||||||
|
<span><i class="fas fa-code mr-1"></i>Development</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Done Column -->
|
||||||
|
<div class="bg-white rounded-2xl p-4 shadow-lg border border-gray-200">
|
||||||
|
<div class="flex items-center justify-between mb-4">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 flex items-center gap-2">
|
||||||
|
<div class="w-3 h-3 bg-green-400 rounded-full"></div>
|
||||||
|
Done
|
||||||
|
</h3>
|
||||||
|
<span class="text-sm text-gray-500 bg-gray-100 px-2 py-1 rounded-full">8</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="space-y-3 kanban-column custom-scrollbar overflow-y-auto">
|
||||||
|
<div class="task-card task-completed bg-green-50 p-4 rounded-lg border border-green-200">
|
||||||
|
<div class="flex items-start justify-between mb-2">
|
||||||
|
<h4 class="font-medium text-gray-800 text-sm line-through">Deploy Production Update</h4>
|
||||||
|
<i class="fas fa-check-circle text-green-600"></i>
|
||||||
|
</div>
|
||||||
|
<p class="text-xs text-gray-600 mb-3">Release v2.1.3 to production servers</p>
|
||||||
|
<div class="flex items-center justify-between text-xs text-gray-500">
|
||||||
|
<span><i class="fas fa-check mr-1"></i>Completed today</span>
|
||||||
|
<span>2 hours ago</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="task-card task-completed bg-green-50 p-4 rounded-lg border border-green-200">
|
||||||
|
<div class="flex items-start justify-between mb-2">
|
||||||
|
<h4 class="font-medium text-gray-800 text-sm line-through">Client Presentation</h4>
|
||||||
|
<i class="fas fa-check-circle text-green-600"></i>
|
||||||
|
</div>
|
||||||
|
<p class="text-xs text-gray-600 mb-3">Present Q4 strategy to ABC Corp</p>
|
||||||
|
<div class="flex items-center justify-between text-xs text-gray-500">
|
||||||
|
<span><i class="fas fa-check mr-1"></i>Completed</span>
|
||||||
|
<span>Yesterday</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- AI Actions Panel -->
|
||||||
|
<div class="space-y-6">
|
||||||
|
|
||||||
|
<!-- Quick Actions -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-4">Quick Actions</h3>
|
||||||
|
<div class="space-y-3">
|
||||||
|
<button onclick="createTask()" class="w-full p-3 bg-orange-600 hover:bg-orange-700 rounded-lg text-white font-medium transition-colors flex items-center gap-3">
|
||||||
|
<i class="fas fa-plus"></i>
|
||||||
|
<span>Create Task</span>
|
||||||
|
</button>
|
||||||
|
<button onclick="prioritizeTasks()" class="w-full p-3 bg-purple-600 hover:bg-purple-700 rounded-lg text-white font-medium transition-colors flex items-center gap-3">
|
||||||
|
<i class="fas fa-sort-amount-down"></i>
|
||||||
|
<span>AI Prioritize</span>
|
||||||
|
</button>
|
||||||
|
<button onclick="bulkUpdate()" class="w-full p-3 bg-blue-600 hover:bg-blue-700 rounded-lg text-white font-medium transition-colors flex items-center gap-3">
|
||||||
|
<i class="fas fa-edit"></i>
|
||||||
|
<span>Bulk Update</span>
|
||||||
|
</button>
|
||||||
|
<button onclick="generateReport()" class="w-full p-3 bg-green-600 hover:bg-green-700 rounded-lg text-white font-medium transition-colors flex items-center gap-3">
|
||||||
|
<i class="fas fa-chart-bar"></i>
|
||||||
|
<span>Progress Report</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Productivity Insights -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-4">Productivity Insights</h3>
|
||||||
|
<div class="space-y-4">
|
||||||
|
<div class="bg-green-50 rounded-lg p-3 border border-green-200">
|
||||||
|
<h4 class="font-medium text-green-700 mb-1">Completion Rate</h4>
|
||||||
|
<div class="w-full bg-gray-200 rounded-full h-2 mb-1">
|
||||||
|
<div class="bg-green-500 h-2 rounded-full" style="width: 87%"></div>
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-green-600">87% (Above average)</p>
|
||||||
|
</div>
|
||||||
|
<div class="bg-blue-50 rounded-lg p-3 border border-blue-200">
|
||||||
|
<h4 class="font-medium text-blue-700 mb-1">Focus Score</h4>
|
||||||
|
<div class="text-2xl font-bold text-blue-600">8.2/10</div>
|
||||||
|
<p class="text-sm text-blue-600">Excellent focus</p>
|
||||||
|
</div>
|
||||||
|
<div class="bg-orange-50 rounded-lg p-3 border border-orange-200">
|
||||||
|
<h4 class="font-medium text-orange-700 mb-1">Avg Task Time</h4>
|
||||||
|
<p class="text-lg font-bold text-orange-600">2.3 days</p>
|
||||||
|
<p class="text-sm text-orange-600">15% faster this week</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- AI Recommendations -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-4">AI Recommendations</h3>
|
||||||
|
<div class="space-y-3">
|
||||||
|
<div class="bg-red-50 border border-red-200 rounded-lg p-3">
|
||||||
|
<h4 class="font-medium text-red-700 mb-1">🚨 Urgent Action</h4>
|
||||||
|
<p class="text-sm text-red-600">Security audit is 2 days overdue</p>
|
||||||
|
</div>
|
||||||
|
<div class="bg-blue-50 border border-blue-200 rounded-lg p-3">
|
||||||
|
<h4 class="font-medium text-blue-700 mb-1">💡 Suggestion</h4>
|
||||||
|
<p class="text-sm text-blue-600">Break large tasks into smaller chunks</p>
|
||||||
|
</div>
|
||||||
|
<div class="bg-green-50 border border-green-200 rounded-lg p-3">
|
||||||
|
<h4 class="font-medium text-green-700 mb-1">✨ Optimization</h4>
|
||||||
|
<p class="text-sm text-green-600">Batch similar tasks for efficiency</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Recent AI Actions -->
|
||||||
|
<div class="bg-white rounded-2xl p-6 shadow-lg border border-gray-200">
|
||||||
|
<h3 class="text-lg font-bold text-gray-800 mb-4">Recent AI Actions</h3>
|
||||||
|
<div class="space-y-3 custom-scrollbar max-h-48 overflow-y-auto">
|
||||||
|
<div class="flex items-start gap-3 p-2 bg-gray-50 rounded-lg">
|
||||||
|
<div class="w-6 h-6 bg-orange-100 rounded flex items-center justify-center flex-shrink-0 mt-1">
|
||||||
|
<i class="fas fa-sort text-orange-600 text-xs"></i>
|
||||||
|
</div>
|
||||||
|
<div class="flex-1 min-w-0">
|
||||||
|
<p class="text-sm text-gray-800">Auto-prioritized 5 tasks</p>
|
||||||
|
<p class="text-xs text-gray-500">3 minutes ago</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-start gap-3 p-2 bg-gray-50 rounded-lg">
|
||||||
|
<div class="w-6 h-6 bg-green-100 rounded flex items-center justify-center flex-shrink-0 mt-1">
|
||||||
|
<i class="fas fa-check text-green-600 text-xs"></i>
|
||||||
|
</div>
|
||||||
|
<div class="flex-1 min-w-0">
|
||||||
|
<p class="text-sm text-gray-800">Marked deployment complete</p>
|
||||||
|
<p class="text-xs text-gray-500">2 hours ago</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-start gap-3 p-2 bg-gray-50 rounded-lg">
|
||||||
|
<div class="w-6 h-6 bg-blue-100 rounded flex items-center justify-center flex-shrink-0 mt-1">
|
||||||
|
<i class="fas fa-plus text-blue-600 text-xs"></i>
|
||||||
|
</div>
|
||||||
|
<div class="flex-1 min-w-0">
|
||||||
|
<p class="text-sm text-gray-800">Created 3 subtasks</p>
|
||||||
|
<p class="text-xs text-gray-500">4 hours ago</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- AI Response Modal -->
|
||||||
|
<div id="aiModal" class="hidden fixed inset-0 bg-black bg-opacity-50 z-50 flex items-center justify-center p-4">
|
||||||
|
<div class="bg-white rounded-2xl max-w-2xl w-full max-h-[80vh] overflow-hidden">
|
||||||
|
<div class="p-6 border-b border-gray-200">
|
||||||
|
<div class="flex items-center justify-between">
|
||||||
|
<div class="flex items-center gap-3">
|
||||||
|
<div class="w-10 h-10 bg-orange-100 rounded-lg flex items-center justify-center">
|
||||||
|
<i class="fas fa-robot text-orange-600"></i>
|
||||||
|
</div>
|
||||||
|
<h3 class="text-lg font-bold text-gray-800">Task AI Response</h3>
|
||||||
|
</div>
|
||||||
|
<button onclick="closeAIModal()" class="text-gray-400 hover:text-gray-600">
|
||||||
|
<i class="fas fa-times"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="p-6 overflow-y-auto custom-scrollbar" id="aiResponse">
|
||||||
|
<!-- AI response content will be loaded here -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Navigation function
|
||||||
|
function goHome() {
|
||||||
|
if (confirm('Return to AI Services Hub?')) {
|
||||||
|
alert('Navigating to AI Services Hub...\n\nIn production, this would load: index.html');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
updateLastUpdate();
|
||||||
|
initializeEventListeners();
|
||||||
|
});
|
||||||
|
|
||||||
|
function initializeEventListeners() {
|
||||||
|
document.getElementById('taskCommand').addEventListener('keypress', function(e) {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
executeTaskCommand();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateLastUpdate() {
|
||||||
|
document.getElementById('lastUpdate').textContent = new Date().toLocaleTimeString();
|
||||||
|
}
|
||||||
|
|
||||||
|
function setTaskCommand(command) {
|
||||||
|
document.getElementById('taskCommand').value = command;
|
||||||
|
executeTaskCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function executeTaskCommand() {
|
||||||
|
const command = document.getElementById('taskCommand').value.trim();
|
||||||
|
if (!command) {
|
||||||
|
alert('Please enter a command');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const btn = document.getElementById('taskAiBtn');
|
||||||
|
btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Processing...';
|
||||||
|
btn.disabled = true;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Simulate AI processing
|
||||||
|
await new Promise(resolve => setTimeout(resolve, 1500));
|
||||||
|
|
||||||
|
const response = generateTaskAIResponse(command);
|
||||||
|
showAIModal(response);
|
||||||
|
|
||||||
|
// Update stats
|
||||||
|
updateTaskStats();
|
||||||
|
updateLastUpdate();
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
alert('Error processing command: ' + error.message);
|
||||||
|
} finally {
|
||||||
|
btn.innerHTML = '<i class="fas fa-robot"></i> <span>Execute</span>';
|
||||||
|
btn.disabled = false;
|
||||||
|
document.getElementById('taskCommand').value = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateTaskAIResponse(command) {
|
||||||
|
const lowerCommand = command.toLowerCase();
|
||||||
|
|
||||||
|
if (lowerCommand.includes('overdue')) {
|
||||||
|
return `
|
||||||
|
<div class="space-y-4">
|
||||||
|
<h4 class="text-lg font-semibold text-gray-800">⚠️ Overdue Tasks Analysis</h4>
|
||||||
|
<div class="space-y-3">
|
||||||
|
<div class="border-l-4 border-red-500 bg-red-50 p-4 rounded-r-lg">
|
||||||
|
<div class="flex justify-between items-start">
|
||||||
|
<div>
|
||||||
|
<h5 class="font-medium text-red-800">Website Security Audit</h5>
|
||||||
|
<p class="text-sm text-red-600">Complete security assessment and report</p>
|
||||||
|
<div class="flex items-center gap-4 mt-2 text-xs text-red-700">
|
||||||
|
<span><i class="fas fa-calendar mr-1"></i>2 days overdue</span>
|
||||||
|
<span><i class="fas fa-exclamation-triangle mr-1"></i>High Priority</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="border-l-4 border-orange-500 bg-orange-50 p-4 rounded-r-lg">
|
||||||
|
<div class="flex justify-between items-start">
|
||||||
|
<div>
|
||||||
|
<h5 class="font-medium text-orange-800">Update Employee Handbook</h5>
|
||||||
|
<p class="text-sm text-orange-600">Revise policies and procedures</p>
|
||||||
|
<div class="flex items-center gap-4 mt-2 text-xs text-orange-700">
|
||||||
|
<span><i class="fas fa-calendar mr-1"></i>1 day overdue</span>
|
||||||
|
<span><i class="fas fa-clock mr-1"></i>Medium Priority</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bg-blue-50 border border-blue-200 p-4 rounded-lg">
|
||||||
|
<h5 class="font-medium text-blue-800 mb-2">🤖 AI Recommendations</h5>
|
||||||
|
<ul class="text-sm text-blue-700 space-y-1">
|
||||||
|
<li>• Immediately allocate 4 hours for security audit completion</li>
|
||||||
|
<li>• Break handbook update into 30-minute daily chunks</li>
|
||||||
|
<li>• Set up automated reminders 1 day before deadlines</li>
|
||||||
|
<li>• Consider delegating non-critical sections</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="flex gap-3">
|
||||||
|
<button class="flex-1 bg-red-600 text-white py-2 px-4 rounded-lg hover:bg-red-700 transition-colors">Mark as Priority</button>
|
||||||
|
<button class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50 transition-colors">Reschedule</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return `
|
||||||
|
<div class="space-y-4">
|
||||||
|
<h4 class="text-lg font-semibold text-gray-800">🤖 Task AI Response</h4>
|
||||||
|
<div class="bg-orange-50 border border-orange-200 p-4 rounded-lg">
|
||||||
|
<p class="text-orange-700">Processing your request: "<em>${command}</em>"</p>
|
||||||
|
<p class="text-sm text-orange-600 mt-2">I can help you with:</p>
|
||||||
|
<ul class="mt-3 space-y-1 text-sm text-orange-700">
|
||||||
|
<li>• Smart task creation and categorization</li>
|
||||||
|
<li>• Priority scoring and optimization</li>
|
||||||
|
<li>• Deadline management and reminders</li>
|
||||||
|
<li>• Progress tracking and analytics</li>
|
||||||
|
<li>• Workload balancing and delegation</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showAIModal(content) {
|
||||||
|
document.getElementById('aiResponse').innerHTML = content;
|
||||||
|
document.getElementById('aiModal').classList.remove('hidden');
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeAIModal() {
|
||||||
|
document.getElementById('aiModal').classList.add('hidden');
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateTaskStats() {
|
||||||
|
const completedToday = document.getElementById('completedToday');
|
||||||
|
const current = parseInt(completedToday.textContent);
|
||||||
|
completedToday.textContent = current + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Quick action functions
|
||||||
|
function createTask() {
|
||||||
|
showAIModal(`
|
||||||
|
<div class="space-y-4">
|
||||||
|
<h4 class="text-lg font-semibold text-gray-800">➕ Quick Task Creation</h4>
|
||||||
|
<div class="space-y-4">
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Task Title:</label>
|
||||||
|
<input type="text" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-orange-500 focus:border-orange-500" placeholder="Enter task description">
|
||||||
|
</div>
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Priority:</label>
|
||||||
|
<select class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-orange-500 focus:border-orange-500">
|
||||||
|
<option value="low">Low</option>
|
||||||
|
<option value="medium" selected>Medium</option>
|
||||||
|
<option value="high">High</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Due Date:</label>
|
||||||
|
<input type="date" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-orange-500 focus:border-orange-500">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bg-orange-50 border border-orange-200 p-4 rounded-lg">
|
||||||
|
<h5 class="font-medium text-orange-800 mb-2">🤖 AI Assistance</h5>
|
||||||
|
<ul class="text-sm text-orange-700 space-y-1">
|
||||||
|
<li>• Auto-categorization based on description</li>
|
||||||
|
<li>• Smart deadline suggestions</li>
|
||||||
|
<li>• Related task recommendations</li>
|
||||||
|
<li>• Optimal time slot suggestions</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<button class="w-full bg-orange-600 text-white py-3 px-4 rounded-lg hover:bg-orange-700 transition-colors font-medium">
|
||||||
|
Create Task
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function prioritizeTasks() {
|
||||||
|
if (confirm('Let AI re-prioritize all tasks based on urgency, impact, and deadlines?')) {
|
||||||
|
updateTaskStats();
|
||||||
|
alert('🎯 Tasks prioritized! AI algorithm ranked 15 tasks by optimal completion order. Security audit moved to top priority.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function bulkUpdate() {
|
||||||
|
updateTaskStats();
|
||||||
|
alert('📝 Bulk update completed! Modified 8 tasks with new deadlines and priorities.');
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateReport() {
|
||||||
|
updateTaskStats();
|
||||||
|
alert('📊 Progress report generated! 87% completion rate this week, 15% faster than average.');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Task interaction functions
|
||||||
|
function markTaskComplete(taskId) {
|
||||||
|
updateTaskStats();
|
||||||
|
alert('✅ Task marked as complete!');
|
||||||
|
}
|
||||||
|
|
||||||
|
function editTask(taskId) {
|
||||||
|
alert('📝 Opening task editor...');
|
||||||
|
}
|
||||||
|
|
||||||
|
function deleteTask(taskId) {
|
||||||
|
if (confirm('Are you sure you want to delete this task?')) {
|
||||||
|
alert('🗑️ Task deleted successfully');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1245
trade-intelligence.html
Normal file
1245
trade-intelligence.html
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user