Initial commit: SFA Tool mockup with renewal management features

This commit is contained in:
2025-05-27 10:20:20 +02:00
commit db27898a7f
6 changed files with 2374 additions and 0 deletions

835
index.html Normal file
View File

@@ -0,0 +1,835 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SFA Tool - Renewals</title>
<!-- Add Font Awesome CDN -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: #f5f5f5;
color: #333;
line-height: 1.6;
padding-top: 60px; /* Add padding for fixed header */
}
.container {
max-width: 1600px;
margin: 0 auto;
padding: 0.5rem 1rem;
}
header {
background-color: #2c3e50;
color: white;
padding: 0.5rem 0;
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.header-content {
display: flex;
justify-content: space-between;
align-items: center;
}
h1 {
font-size: 1.25rem;
font-weight: 500;
}
nav {
display: flex;
gap: 1.5rem;
}
nav a {
color: white;
text-decoration: none;
padding: 0.25rem 0.75rem;
border-radius: 4px;
transition: background-color 0.2s;
font-size: 0.9rem;
}
nav a:hover {
background-color: rgba(255, 255, 255, 0.1);
}
nav a.active {
background-color: rgba(255, 255, 255, 0.2);
font-weight: 500;
}
.content {
background-color: #fff;
padding: 2rem;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
margin-top: 1.5rem;
}
.task-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1.5rem;
}
.task-filters {
display: flex;
gap: 1rem;
margin-bottom: 1.5rem;
flex-wrap: wrap;
}
.filter-button {
padding: 0.5rem 1rem;
border: 1px solid #ddd;
border-radius: 4px;
background: white;
cursor: pointer;
font-size: 0.9rem;
}
.filter-button:hover {
background: #f5f5f5;
}
.date-filter {
display: flex;
gap: 1rem;
align-items: center;
margin-bottom: 1.5rem;
padding: 1rem;
background: #f8f9fa;
border-radius: 4px;
}
.date-filter label {
font-weight: 500;
color: #666;
}
.date-filter input[type="date"] {
padding: 0.5rem;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 0.9rem;
}
.date-filter .date-range {
display: flex;
align-items: center;
gap: 0.5rem;
}
.date-filter .apply-button {
padding: 0.5rem 1rem;
background: #2c3e50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 0.9rem;
}
.date-filter .apply-button:hover {
background: #34495e;
}
.task-table {
width: 100%;
border-collapse: collapse;
margin-top: 1rem;
}
.task-table th {
background: #f8f9fa;
padding: 0.75rem;
text-align: left;
font-weight: 500;
color: #666;
border-bottom: 2px solid #eee;
}
.task-table td {
padding: 0.75rem;
border-bottom: 1px solid #eee;
vertical-align: middle;
}
.task-table tr:hover {
background-color: #f8f9fa;
}
.task-status {
padding: 0.25rem 0.5rem;
border-radius: 4px;
font-size: 0.8rem;
display: inline-block;
}
.status-in-progress {
background: #e3f2fd;
color: #1976d2;
}
.status-pending {
background: #fff3e0;
color: #f57c00;
}
.status-completed {
background: #e8f5e9;
color: #388e3c;
}
.status-overdue {
background: #ffebee;
color: #d32f2f;
}
.priority-high {
color: #d32f2f;
font-weight: 500;
}
.priority-medium {
color: #f57c00;
}
.priority-low {
color: #388e3c;
}
.add-task-button {
padding: 0.5rem 1rem;
background: #2c3e50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 0.9rem;
}
.add-task-button:hover {
background: #34495e;
}
.action-icon {
cursor: pointer;
font-size: 1.2rem;
color: #2c3e50;
transition: color 0.2s;
padding: 0.5rem;
border-radius: 4px;
}
.action-icon:hover {
color: #34495e;
background-color: #f8f9fa;
}
/* Modal styles */
.modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: 1000;
}
.modal-content {
position: relative;
background-color: #fff;
margin: 10% auto;
padding: 2rem;
width: 80%;
max-width: 800px;
border-radius: 8px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.close-modal {
position: absolute;
right: 1rem;
top: 1rem;
font-size: 1.5rem;
cursor: pointer;
color: #666;
}
.close-modal:hover {
color: #333;
}
.modal-details {
margin-top: 1rem;
max-height: 900px;
overflow-y: auto;
}
.detail-row {
display: flex;
margin-bottom: 1rem;
padding-bottom: 1rem;
border-bottom: 1px solid #eee;
}
.detail-label {
width: 200px;
font-weight: 500;
color: #666;
}
.detail-value {
flex: 1;
}
</style>
</head>
<body>
<header>
<div class="container">
<div class="header-content">
<h1>SFA Tool</h1>
<nav>
<a href="index.html" class="active">Renewals</a>
<a href="my-tasks.html">My Tasks</a>
<a href="profile.html">Profile Settings</a>
</nav>
</div>
</div>
</header>
<main class="container">
<div class="content">
<div class="task-header">
<h2>Renewals</h2>
<button class="add-task-button">+ Add Renewal</button>
</div>
<div class="task-filters">
<button class="filter-button">All Renewals</button>
<button class="filter-button">In Progress</button>
<button class="filter-button">Completed</button>
<button class="filter-button">Overdue</button>
</div>
<div class="date-filter">
<div class="date-range">
<label>From:</label>
<input type="date" value="2024-03-01">
<label>To:</label>
<input type="date" value="2024-03-31">
</div>
<button class="apply-button">Apply Filter</button>
</div>
<table class="task-table">
<thead>
<tr>
<th>Policy Number</th>
<th>Policy Name</th>
<th>Policy Holder Category</th>
<th>Broker Name</th>
<th>Priority</th>
<th>Status</th>
<th>Expiry Date</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td>POL-2024-001</td>
<td>Q1 Sales Report Policy</td>
<td>Corporate</td>
<td>John Smith</td>
<td class="priority-high">High</td>
<td><span class="task-status status-in-progress">In Progress</span></td>
<td>Mar 31, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-001')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 1')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-002</td>
<td>Customer Database Policy</td>
<td>Enterprise</td>
<td>Sarah Johnson</td>
<td class="priority-medium">Medium</td>
<td><span class="task-status status-pending">Pending</span></td>
<td>Mar 25, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-002')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 2')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-003</td>
<td>Team Meeting Policy</td>
<td>Small Business</td>
<td>Mike Brown</td>
<td class="priority-low">Low</td>
<td><span class="task-status status-completed">Completed</span></td>
<td>Mar 20, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-003')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 3')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-004</td>
<td>Client Presentation Policy</td>
<td>Corporate</td>
<td>Emma Wilson</td>
<td class="priority-high">High</td>
<td><span class="task-status status-overdue">Overdue</span></td>
<td>Mar 15, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-004')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 4')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-005</td>
<td>Sales Training Policy</td>
<td>Enterprise</td>
<td>David Lee</td>
<td class="priority-medium">Medium</td>
<td><span class="task-status status-in-progress">In Progress</span></td>
<td>Mar 28, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-005')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 5')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-006</td>
<td>Quarterly Budget Policy</td>
<td>Corporate</td>
<td>Lisa Chen</td>
<td class="priority-high">High</td>
<td><span class="task-status status-pending">Pending</span></td>
<td>Mar 30, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-006')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 6')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-007</td>
<td>Product Launch Policy</td>
<td>Enterprise</td>
<td>Alex Rodriguez</td>
<td class="priority-high">High</td>
<td><span class="task-status status-in-progress">In Progress</span></td>
<td>Mar 27, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-007')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 7')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-008</td>
<td>Customer Survey Policy</td>
<td>Small Business</td>
<td>Maria Garcia</td>
<td class="priority-medium">Medium</td>
<td><span class="task-status status-completed">Completed</span></td>
<td>Mar 18, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-008')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 8')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-009</td>
<td>Website License Policy</td>
<td>Corporate</td>
<td>James Wilson</td>
<td class="priority-low">Low</td>
<td><span class="task-status status-overdue">Overdue</span></td>
<td>Mar 12, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-009')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 9')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-010</td>
<td>Sales Team License Policy</td>
<td>Enterprise</td>
<td>Rachel Kim</td>
<td class="priority-medium">Medium</td>
<td><span class="task-status status-in-progress">In Progress</span></td>
<td>Mar 29, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-010')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 10')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-011</td>
<td>Marketing Campaign Policy</td>
<td>Corporate</td>
<td>Tom Anderson</td>
<td class="priority-high">High</td>
<td><span class="task-status status-pending">Pending</span></td>
<td>Mar 26, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-011')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 11')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-012</td>
<td>Inventory System Policy</td>
<td>Enterprise</td>
<td>Patricia Martinez</td>
<td class="priority-medium">Medium</td>
<td><span class="task-status status-completed">Completed</span></td>
<td>Mar 19, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-012')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 12')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-013</td>
<td>Client Portal Policy</td>
<td>Corporate</td>
<td>Chris Taylor</td>
<td class="priority-high">High</td>
<td><span class="task-status status-in-progress">In Progress</span></td>
<td>Mar 28, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-013')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 13')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-014</td>
<td>Performance Tool Policy</td>
<td>Small Business</td>
<td>Sophie Clark</td>
<td class="priority-medium">Medium</td>
<td><span class="task-status status-overdue">Overdue</span></td>
<td>Mar 14, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-014')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 14')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-015</td>
<td>Sales Strategy Policy</td>
<td>Enterprise</td>
<td>Daniel White</td>
<td class="priority-low">Low</td>
<td><span class="task-status status-completed">Completed</span></td>
<td>Mar 17, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-015')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 15')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-016</td>
<td>CRM License Policy</td>
<td>Corporate</td>
<td>Olivia Brown</td>
<td class="priority-high">High</td>
<td><span class="task-status status-pending">Pending</span></td>
<td>Mar 27, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-016')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 16')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-017</td>
<td>Team Software Policy</td>
<td>Small Business</td>
<td>Michael Davis</td>
<td class="priority-low">Low</td>
<td><span class="task-status status-in-progress">In Progress</span></td>
<td>Mar 30, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-017')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 17')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-018</td>
<td>Annual License Policy</td>
<td>Enterprise</td>
<td>Jennifer Lee</td>
<td class="priority-high">High</td>
<td><span class="task-status status-overdue">Overdue</span></td>
<td>Mar 13, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-018')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 18')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-019</td>
<td>Sales Tool Policy</td>
<td>Corporate</td>
<td>Robert Johnson</td>
<td class="priority-medium">Medium</td>
<td><span class="task-status status-completed">Completed</span></td>
<td>Mar 16, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-019')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 19')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>POL-2024-020</td>
<td>Market Research Tool Policy</td>
<td>Enterprise</td>
<td>Emily Wilson</td>
<td class="priority-high">High</td>
<td><span class="task-status status-in-progress">In Progress</span></td>
<td>Mar 29, 2024</td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-020')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 20')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
</tbody>
</table>
<!-- Modal for details -->
<div id="detailsModal" class="modal">
<div class="modal-content">
<span class="close-modal" onclick="closeModal()">&times;</span>
<h2>Policy Details</h2>
<div id="modalDetails" class="modal-details">
<!-- Details will be populated by JavaScript -->
</div>
</div>
</div>
<!-- Diagram Modal -->
<div id="diagramModal" class="modal">
<div class="modal-content" style="max-width: 1400px; width: 90%; margin: 2% auto; max-height: 96vh; overflow-y: auto;">
<div class="modal-header" style="padding: 1rem 2rem; border-bottom: 1px solid #eee; position: sticky; top: 0; background: white; z-index: 1;">
<h2>Renewal Diagram</h2>
</div>
<div class="modal-body" style="padding: 2rem;">
<div style="display: flex; gap: 2rem; margin-bottom: 2rem;">
<div id="diagramPlaceholder" style="flex: 2; height: 600px; background-color: #f8f9fa; border: 2px dashed #ccc; display: flex; align-items: center; justify-content: center;">
<p style="color: #666;">Diagram placeholder - Image will be added here</p>
</div>
<div class="diagram-info" style="flex: 1; padding: 1.5rem; background-color: #f8f9fa; border-radius: 4px;">
<div class="next-steps" style="margin-bottom: 2rem;">
<h3 style="margin-bottom: 1rem; color: #2c3e50;">Next Possible Steps for this step</h3>
<div style="display: flex; flex-direction: column; gap: 0.75rem;">
<button class="next-step-button" style="padding: 0.75rem; background-color: #2c3e50; color: white; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 0.5rem;">
<i class="fas fa-envelope"></i>
Message all involved
</button>
<button class="next-step-button" style="padding: 0.75rem; background-color: #2c3e50; color: white; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 0.5rem;">
<i class="fas fa-file-signature"></i>
Get Quote from supplier
</button>
<button class="next-step-button" style="padding: 0.75rem; background-color: #2c3e50; color: white; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 0.5rem;">
<i class="fas fa-check-circle"></i>
Mark as Completed
</button>
</div>
</div>
<h3 style="margin-bottom: 1.5rem; color: #2c3e50;">Key Information for this step</h3>
<div class="info-field">
<label style="display: block; color: #666; font-size: 0.9rem; margin-bottom: 0.25rem;">Policy Number</label>
<div id="diagramPolicyNumber" style="font-weight: 500; margin-bottom: 1.5rem;">-</div>
</div>
<div class="info-field">
<label style="display: block; color: #666; font-size: 0.9rem; margin-bottom: 0.25rem;">Status</label>
<div id="diagramStatus" style="font-weight: 500; margin-bottom: 1.5rem;">-</div>
</div>
<div class="info-field">
<label style="display: block; color: #666; font-size: 0.9rem; margin-bottom: 0.25rem;">Expiry Date</label>
<div id="diagramExpiry" style="font-weight: 500; margin-bottom: 1.5rem;">-</div>
</div>
<div class="info-field">
<label style="display: block; color: #666; font-size: 0.9rem; margin-bottom: 0.25rem;">Broker</label>
<div id="diagramBroker" style="font-weight: 500; margin-bottom: 1.5rem;">-</div>
</div>
</div>
</div>
<div class="mail-history" style="background-color: #f8f9fa; border-radius: 4px; padding: 1.5rem;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem;">
<h3 style="color: #2c3e50;">Mail History for this step</h3>
<button class="clear-mailbox-button" style="padding: 0.5rem 1rem; background-color: #dc3545; color: white; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 0.5rem; font-size: 0.9rem;">
<i class="fas fa-trash-alt"></i>
Clear these from my mailbox
</button>
</div>
<div id="mailHistoryList" style="max-height: 300px; overflow-y: auto;">
<!-- Mail history items will be populated here -->
</div>
</div>
</div>
</div>
</div>
<script>
function showDetails(policyNumber) {
const modal = document.getElementById('detailsModal');
const detailsContainer = document.getElementById('modalDetails');
// Example details - in a real application, this would come from a database
const details = {
'POL-2024-001': {
'LOB Code': 'PROP',
'COB Code': 'FIRE',
'Policy Number': 'POL-2024-001',
'Policy Holder': 'Acme Corporation',
'Policy Holder Name': 'Acme HQ',
'Policy Holder Category': 'Corporate',
'Policy Holder Phone': '+1 555-123-4567',
'Broker Name': 'John Smith',
'Date Issued': 'Apr 1, 2023',
'Date Effective': 'Apr 1, 2023',
'Date Expiry': 'Mar 31, 2024',
'Net Premium': '$20,000',
'Gross Premium': '$25,000',
'Total Premium': '$25,000',
'Due Amount': '$5,000',
'Claim Count': '2',
'Total Claim': '$12,000',
'Loss Ratio': '48%',
'FAC': 'No',
'Product Description': 'Commercial Property Insurance',
'Is Group': 'No',
'Assigned To': 'Jane Doe',
'Priority': 'High'
}
};
const policyDetails = details[policyNumber] || {
'Policy Number': policyNumber,
'Status': 'Details not available'
};
let detailsHTML = '';
for (const [key, value] of Object.entries(policyDetails)) {
detailsHTML += `
<div class="detail-row">
<div class="detail-label">${key}</div>
<div class="detail-value">${value}</div>
</div>
`;
}
detailsContainer.innerHTML = detailsHTML;
modal.style.display = 'block';
}
function closeModal() {
const modal = document.getElementById('detailsModal');
modal.style.display = 'none';
}
function openDiagramModal(policyName) {
const modal = document.getElementById('diagramModal');
const row = event.target.closest('tr');
// Get the information from the table row
const policyNumber = row.cells[0].textContent;
const status = row.querySelector('.task-status').textContent;
const expiryDate = row.cells[6].textContent;
const brokerName = row.cells[3].textContent;
// Update the information panel
document.getElementById('diagramPolicyNumber').textContent = policyNumber;
document.getElementById('diagramStatus').textContent = status;
document.getElementById('diagramExpiry').textContent = expiryDate;
document.getElementById('diagramBroker').textContent = brokerName;
// Update mail history (in a real application, this would come from a database)
const mailHistoryList = document.getElementById('mailHistoryList');
mailHistoryList.innerHTML = `
<div class="mail-item" style="padding: 1rem; border-bottom: 1px solid #eee; background-color: white; margin-bottom: 1rem; border-radius: 4px; cursor: pointer;" onclick="window.location.href='mail-detail.html'">
<div style="display: flex; justify-content: space-between; margin-bottom: 0.5rem;">
<span style="font-weight: 500;">Initial Renewal Notice</span>
<span style="color: #666; font-size: 0.9rem;">Mar 15, 2024 10:30 AM</span>
</div>
<div style="color: #666; font-size: 0.9rem; margin-bottom: 0.5rem;">Sent to: ${brokerName.toLowerCase().replace(' ', '.')}@broker.com</div>
<div style="color: #666;">Subject: Policy Renewal Notice - ${policyNumber}</div>
</div>
<div class="mail-item" style="padding: 1rem; border-bottom: 1px solid #eee; background-color: white; margin-bottom: 1rem; border-radius: 4px; cursor: pointer;" onclick="window.location.href='mail-detail.html'">
<div style="display: flex; justify-content: space-between; margin-bottom: 0.5rem;">
<span style="font-weight: 500;">Follow-up Reminder</span>
<span style="color: #666; font-size: 0.9rem;">Mar 22, 2024 02:15 PM</span>
</div>
<div style="color: #666; font-size: 0.9rem; margin-bottom: 0.5rem;">Sent to: ${brokerName.toLowerCase().replace(' ', '.')}@broker.com</div>
<div style="color: #666;">Subject: Reminder: Policy Renewal Due - ${policyNumber}</div>
</div>
`;
modal.style.display = 'block';
}
function closeDiagramModal() {
const modal = document.getElementById('diagramModal');
modal.style.display = 'none';
}
// Close modal when clicking outside
window.onclick = function(event) {
const detailsModal = document.getElementById('detailsModal');
const diagramModal = document.getElementById('diagramModal');
if (event.target == detailsModal) {
detailsModal.style.display = 'none';
}
if (event.target == diagramModal) {
diagramModal.style.display = 'none';
}
}
</script>
</div>
</main>
</body>
</html>

253
mail-detail.html Normal file
View File

@@ -0,0 +1,253 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mail Detail - SFA Tool</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: #f5f5f5;
color: #333;
line-height: 1.6;
padding-top: 60px;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0.5rem 1rem;
}
header {
background-color: #2c3e50;
color: white;
padding: 0.5rem 0;
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.header-content {
display: flex;
justify-content: space-between;
align-items: center;
}
h1 {
font-size: 1.25rem;
font-weight: 500;
}
nav {
display: flex;
gap: 1.5rem;
}
nav a {
color: white;
text-decoration: none;
padding: 0.25rem 0.75rem;
border-radius: 4px;
transition: background-color 0.2s;
font-size: 0.9rem;
}
nav a:hover {
background-color: rgba(255, 255, 255, 0.1);
}
nav a.active {
background-color: rgba(255, 255, 255, 0.2);
font-weight: 500;
}
.content {
background-color: #fff;
padding: 2rem;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
margin-top: 1.5rem;
}
.mail-header {
padding-bottom: 1.5rem;
border-bottom: 1px solid #eee;
margin-bottom: 1.5rem;
}
.mail-subject {
font-size: 1.5rem;
font-weight: 500;
margin-bottom: 1rem;
color: #2c3e50;
}
.mail-meta {
display: flex;
gap: 2rem;
color: #666;
font-size: 0.9rem;
}
.mail-meta-item {
display: flex;
align-items: center;
gap: 0.5rem;
}
.mail-body {
padding: 1.5rem;
background-color: #f8f9fa;
border-radius: 4px;
margin-bottom: 1.5rem;
white-space: pre-wrap;
}
.mail-actions {
display: flex;
gap: 1rem;
margin-top: 1.5rem;
}
.action-button {
padding: 0.75rem 1.5rem;
background-color: #2c3e50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
display: flex;
align-items: center;
gap: 0.5rem;
font-size: 0.9rem;
}
.action-button:hover {
background-color: #34495e;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.75rem;
color: #2c3e50;
text-decoration: none;
margin-bottom: 1.5rem;
font-weight: 500;
padding: 0.75rem 1.25rem;
background-color: #f8f9fa;
border-radius: 4px;
border: 1px solid #e9ecef;
transition: all 0.2s ease;
}
.back-button:hover {
color: #2c3e50;
background-color: #e9ecef;
transform: translateX(-4px);
}
.back-button i {
font-size: 1.1rem;
}
.back-button-text {
display: flex;
flex-direction: column;
line-height: 1.2;
}
.back-button-label {
font-size: 0.8rem;
color: #666;
}
</style>
</head>
<body>
<header>
<div class="container">
<div class="header-content">
<h1>SFA Tool</h1>
<nav>
<a href="index.html">Renewals</a>
<a href="threads.html">Threads</a>
<a href="profile.html">Profile Settings</a>
</nav>
</div>
</div>
</header>
<main class="container">
<a href="javascript:history.back()" class="back-button" style="margin-top: 25px;">
<i class="fas fa-arrow-left"></i>
<div class="back-button-text">
<span>Back to Renewal</span>
<span class="back-button-label">POL-2024-001</span>
</div>
</a>
<div class="content">
<div class="mail-header">
<h1 class="mail-subject">Policy Renewal Notice - POL-2024-001</h1>
<div class="mail-meta">
<div class="mail-meta-item">
<i class="fas fa-user"></i>
<span>From: renewal@company.com</span>
</div>
<div class="mail-meta-item">
<i class="fas fa-user"></i>
<span>To: john.smith@broker.com</span>
</div>
<div class="mail-meta-item">
<i class="fas fa-clock"></i>
<span>Sent: Mar 15, 2024 10:30 AM</span>
</div>
</div>
</div>
<div class="mail-body">
Dear John Smith,
This is to inform you that Policy POL-2024-001 for Acme Corporation is due for renewal on March 31, 2024.
Policy Details:
- Policy Holder: Acme Corporation
- Policy Type: Commercial Property Insurance
- Current Premium: $25,000
- Expiry Date: March 31, 2024
Please review the attached documents and let us know if you have any questions or if you'd like to proceed with the renewal process.
Best regards,
Renewal Team
</div>
<div class="mail-actions">
<button class="action-button">
<i class="fas fa-reply"></i>
Reply
</button>
<button class="action-button">
<i class="fas fa-forward"></i>
Forward
</button>
<button class="action-button">
<i class="fas fa-download"></i>
Download Attachments
</button>
</div>
</div>
</main>
</body>
</html>

573
my-tasks.html Normal file
View File

@@ -0,0 +1,573 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My Tasks - SFA Tool</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: #f5f5f5;
color: #333;
line-height: 1.6;
padding-top: 60px;
}
.container {
max-width: 1600px;
margin: 0 auto;
padding: 0.5rem 1rem;
}
header {
background-color: #2c3e50;
color: white;
padding: 0.5rem 0;
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.header-content {
display: flex;
justify-content: space-between;
align-items: center;
}
h1 {
font-size: 1.25rem;
font-weight: 500;
}
nav {
display: flex;
gap: 1.5rem;
}
nav a {
color: white;
text-decoration: none;
padding: 0.25rem 0.75rem;
border-radius: 4px;
transition: background-color 0.2s;
font-size: 0.9rem;
}
nav a:hover {
background-color: rgba(255, 255, 255, 0.1);
}
nav a.active {
background-color: rgba(255, 255, 255, 0.2);
font-weight: 500;
}
.content {
background-color: #fff;
padding: 2rem;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
margin-top: 1.5rem;
}
.task-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1.5rem;
}
.task-filters {
display: flex;
gap: 1rem;
margin-bottom: 1.5rem;
flex-wrap: wrap;
}
.filter-button {
padding: 0.5rem 1rem;
border: 1px solid #ddd;
border-radius: 4px;
background: white;
cursor: pointer;
font-size: 0.9rem;
}
.filter-button:hover {
background: #f5f5f5;
}
.task-table {
width: 100%;
border-collapse: collapse;
margin-top: 1rem;
}
.task-table th {
background: #f8f9fa;
padding: 0.75rem;
text-align: left;
font-weight: 500;
color: #666;
border-bottom: 2px solid #eee;
}
.task-table td {
padding: 0.75rem;
border-bottom: 1px solid #eee;
vertical-align: middle;
}
.task-table tr:hover {
background-color: #f8f9fa;
}
.task-status {
padding: 0.25rem 0.5rem;
border-radius: 4px;
font-size: 0.8rem;
display: inline-block;
}
.status-in-progress {
background: #e3f2fd;
color: #1976d2;
}
.status-pending {
background: #fff3e0;
color: #f57c00;
}
.status-completed {
background: #e8f5e9;
color: #388e3c;
}
.status-overdue {
background: #ffebee;
color: #d32f2f;
}
.priority-high {
color: #d32f2f;
font-weight: 500;
}
.priority-medium {
color: #f57c00;
}
.priority-low {
color: #388e3c;
}
.action-icon {
cursor: pointer;
font-size: 1.2rem;
color: #2c3e50;
transition: color 0.2s;
padding: 0.5rem;
border-radius: 4px;
}
.action-icon:hover {
color: #34495e;
background-color: #f8f9fa;
}
.due-date {
display: flex;
align-items: center;
gap: 0.5rem;
}
.due-date.overdue {
color: #d32f2f;
}
.due-date.upcoming {
color: #f57c00;
}
/* Modal styles */
.modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: 1000;
}
.modal-content {
background-color: white;
margin: 5% auto;
padding: 2rem;
border-radius: 8px;
max-width: 800px;
position: relative;
max-height: 90vh;
overflow-y: auto;
}
.close-modal {
position: absolute;
right: 1rem;
top: 1rem;
font-size: 1.5rem;
cursor: pointer;
color: #666;
}
.close-modal:hover {
color: #333;
}
.modal-details {
margin-top: 1.5rem;
}
.detail-row {
display: flex;
padding: 0.75rem;
border-bottom: 1px solid #eee;
}
.detail-row:last-child {
border-bottom: none;
}
.detail-label {
flex: 1;
font-weight: 500;
color: #666;
}
.detail-value {
flex: 2;
}
</style>
</head>
<body>
<header>
<div class="container">
<div class="header-content">
<h1>SFA Tool</h1>
<nav>
<a href="index.html">Renewals</a>
<a href="my-tasks.html" class="active">My Tasks</a>
<a href="profile.html">Profile Settings</a>
</nav>
</div>
</div>
</header>
<main class="container">
<div class="content">
<div class="task-header">
<h2>My Tasks</h2>
</div>
<div class="task-filters">
<button class="filter-button">All Tasks</button>
<button class="filter-button">In Progress</button>
<button class="filter-button">Pending</button>
<button class="filter-button">Overdue</button>
<button class="filter-button">Completed</button>
</div>
<table class="task-table">
<thead>
<tr>
<th>Task Type</th>
<th>Policy Number</th>
<th>Description</th>
<th>Due Date</th>
<th>Priority</th>
<th>Status</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td>Review Quote</td>
<td>POL-2024-001</td>
<td>Review and approve quote for Q1 Sales Report Policy</td>
<td>
<div class="due-date overdue">
<i class="fas fa-exclamation-circle"></i>
Mar 25, 2024
</div>
</td>
<td class="priority-high">High</td>
<td><span class="task-status status-overdue">Overdue</span></td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-001')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 1')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>Follow-up</td>
<td>POL-2024-007</td>
<td>Follow up with broker regarding Product Launch Policy</td>
<td>
<div class="due-date upcoming">
<i class="fas fa-clock"></i>
Mar 28, 2024
</div>
</td>
<td class="priority-medium">Medium</td>
<td><span class="task-status status-pending">Pending</span></td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-007')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 7')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>Document Review</td>
<td>POL-2024-013</td>
<td>Review updated documents for Client Portal Policy</td>
<td>
<div class="due-date">
<i class="fas fa-calendar"></i>
Mar 30, 2024
</div>
</td>
<td class="priority-high">High</td>
<td><span class="task-status status-in-progress">In Progress</span></td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-013')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 13')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
<tr>
<td>Approval</td>
<td>POL-2024-020</td>
<td>Approve final terms for Market Research Tool Policy</td>
<td>
<div class="due-date">
<i class="fas fa-calendar"></i>
Apr 2, 2024
</div>
</td>
<td class="priority-medium">Medium</td>
<td><span class="task-status status-pending">Pending</span></td>
<td>
<i class="fas fa-eye action-icon" onclick="showDetails('POL-2024-020')"></i>
<i class="fas fa-project-diagram action-icon" onclick="openDiagramModal('Policy 20')"></i>
<i class="fas fa-envelope action-icon" onclick="window.location.href='renewal-mails.html'"></i>
</td>
</tr>
</tbody>
</table>
</div>
</main>
<!-- Modal for details -->
<div id="detailsModal" class="modal">
<div class="modal-content">
<span class="close-modal" onclick="closeModal()">&times;</span>
<h2>Policy Details</h2>
<div id="modalDetails" class="modal-details">
<!-- Details will be populated by JavaScript -->
</div>
</div>
</div>
<!-- Diagram Modal -->
<div id="diagramModal" class="modal">
<div class="modal-content" style="max-width: 1400px; width: 90%; margin: 2% auto;">
<div class="modal-header" style="padding: 1rem 2rem; border-bottom: 1px solid #eee;">
<h2>Renewal Diagram</h2>
</div>
<div class="modal-body" style="padding: 2rem;">
<div style="display: flex; gap: 2rem; margin-bottom: 2rem;">
<div id="diagramPlaceholder" style="flex: 2; height: 600px; background-color: #f8f9fa; border: 2px dashed #ccc; display: flex; align-items: center; justify-content: center;">
<p style="color: #666;">Diagram placeholder - Image will be added here</p>
</div>
<div class="diagram-info" style="flex: 1; padding: 1.5rem; background-color: #f8f9fa; border-radius: 4px;">
<div class="next-steps" style="margin-bottom: 2rem;">
<h3 style="margin-bottom: 1rem; color: #2c3e50;">Next Possible Steps for this step</h3>
<div style="display: flex; flex-direction: column; gap: 0.75rem;">
<button class="next-step-button" style="padding: 0.75rem; background-color: #2c3e50; color: white; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 0.5rem;">
<i class="fas fa-envelope"></i>
Message all involved
</button>
<button class="next-step-button" style="padding: 0.75rem; background-color: #2c3e50; color: white; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 0.5rem;">
<i class="fas fa-file-signature"></i>
Get Quote from supplier
</button>
<button class="next-step-button" style="padding: 0.75rem; background-color: #2c3e50; color: white; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 0.5rem;">
<i class="fas fa-check-circle"></i>
Mark as Completed
</button>
</div>
</div>
<h3 style="margin-bottom: 1.5rem; color: #2c3e50;">Key Information for this step</h3>
<div class="info-field">
<label style="display: block; color: #666; font-size: 0.9rem; margin-bottom: 0.25rem;">Policy Number</label>
<div id="diagramPolicyNumber" style="font-weight: 500; margin-bottom: 1.5rem;">-</div>
</div>
<div class="info-field">
<label style="display: block; color: #666; font-size: 0.9rem; margin-bottom: 0.25rem;">Status</label>
<div id="diagramStatus" style="font-weight: 500; margin-bottom: 1.5rem;">-</div>
</div>
<div class="info-field">
<label style="display: block; color: #666; font-size: 0.9rem; margin-bottom: 0.25rem;">Expiry Date</label>
<div id="diagramExpiry" style="font-weight: 500; margin-bottom: 1.5rem;">-</div>
</div>
<div class="info-field">
<label style="display: block; color: #666; font-size: 0.9rem; margin-bottom: 0.25rem;">Broker</label>
<div id="diagramBroker" style="font-weight: 500; margin-bottom: 1.5rem;">-</div>
</div>
</div>
</div>
<div class="mail-history" style="background-color: #f8f9fa; border-radius: 4px; padding: 1.5rem;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem;">
<h3 style="color: #2c3e50;">Mail History for this step</h3>
<button class="clear-mailbox-button" style="padding: 0.5rem 1rem; background-color: #dc3545; color: white; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 0.5rem; font-size: 0.9rem;">
<i class="fas fa-trash-alt"></i>
Clear these from my mailbox
</button>
</div>
<div id="mailHistoryList" style="max-height: 300px; overflow-y: auto;">
<!-- Mail history items will be populated here -->
</div>
</div>
</div>
</div>
</div>
<script>
function showDetails(policyNumber) {
const modal = document.getElementById('detailsModal');
const detailsContainer = document.getElementById('modalDetails');
// Example details - in a real application, this would come from a database
const details = {
'POL-2024-001': {
'LOB Code': 'PROP',
'COB Code': 'FIRE',
'Policy Number': 'POL-2024-001',
'Policy Holder': 'Acme Corporation',
'Policy Holder Name': 'Acme HQ',
'Policy Holder Category': 'Corporate',
'Policy Holder Phone': '+1 555-123-4567',
'Broker Name': 'John Smith',
'Date Issued': 'Apr 1, 2023',
'Date Effective': 'Apr 1, 2023',
'Date Expiry': 'Mar 31, 2024',
'Net Premium': '$20,000',
'Gross Premium': '$25,000',
'Total Premium': '$25,000',
'Due Amount': '$5,000',
'Claim Count': '2',
'Total Claim': '$12,000',
'Loss Ratio': '48%',
'FAC': 'No',
'Product Description': 'Commercial Property Insurance',
'Is Group': 'No',
'Assigned To': 'Jane Doe'
}
};
const policyDetails = details[policyNumber] || {
'Policy Number': policyNumber,
'Status': 'Details not available'
};
let detailsHTML = '';
for (const [key, value] of Object.entries(policyDetails)) {
detailsHTML += `
<div class="detail-row">
<div class="detail-label">${key}</div>
<div class="detail-value">${value}</div>
</div>
`;
}
detailsContainer.innerHTML = detailsHTML;
modal.style.display = 'block';
}
function closeModal() {
const modal = document.getElementById('detailsModal');
modal.style.display = 'none';
}
function openDiagramModal(policyName) {
const modal = document.getElementById('diagramModal');
const row = event.target.closest('tr');
// Get the information from the table row
const policyNumber = row.cells[1].textContent;
const status = row.querySelector('.task-status').textContent;
const dueDate = row.querySelector('.due-date').textContent.trim();
const brokerName = "John Smith"; // This would come from the database in a real application
// Update the information panel
document.getElementById('diagramPolicyNumber').textContent = policyNumber;
document.getElementById('diagramStatus').textContent = status;
document.getElementById('diagramExpiry').textContent = dueDate;
document.getElementById('diagramBroker').textContent = brokerName;
// Update mail history (in a real application, this would come from a database)
const mailHistoryList = document.getElementById('mailHistoryList');
mailHistoryList.innerHTML = `
<div class="mail-item" style="padding: 1rem; border-bottom: 1px solid #eee; background-color: white; margin-bottom: 1rem; border-radius: 4px; cursor: pointer;" onclick="window.location.href='mail-detail.html'">
<div style="display: flex; justify-content: space-between; margin-bottom: 0.5rem;">
<span style="font-weight: 500;">Initial Renewal Notice - ${policyNumber}</span>
<span style="color: #666; font-size: 0.9rem;">Mar 15, 2024 10:30 AM</span>
</div>
<div style="color: #666; font-size: 0.9rem; margin-bottom: 0.5rem;">Sent to: ${brokerName.toLowerCase().replace(' ', '.')}@broker.com</div>
<div style="color: #666;">Subject: Policy Renewal Notice - ${policyNumber}</div>
</div>
<div class="mail-item" style="padding: 1rem; border-bottom: 1px solid #eee; background-color: white; margin-bottom: 1rem; border-radius: 4px; cursor: pointer;" onclick="window.location.href='mail-detail.html'">
<div style="display: flex; justify-content: space-between; margin-bottom: 0.5rem;">
<span style="font-weight: 500;">Follow-up Reminder - ${policyNumber}</span>
<span style="color: #666; font-size: 0.9rem;">Mar 22, 2024 02:15 PM</span>
</div>
<div style="color: #666; font-size: 0.9rem; margin-bottom: 0.5rem;">Sent to: ${brokerName.toLowerCase().replace(' ', '.')}@broker.com</div>
<div style="color: #666;">Subject: Reminder: Policy Renewal Due - ${policyNumber}</div>
</div>
`;
modal.style.display = 'block';
}
function closeDiagramModal() {
const modal = document.getElementById('diagramModal');
modal.style.display = 'none';
}
// Close modal when clicking outside
window.onclick = function(event) {
const detailsModal = document.getElementById('detailsModal');
const diagramModal = document.getElementById('diagramModal');
if (event.target == detailsModal) {
detailsModal.style.display = 'none';
}
if (event.target == diagramModal) {
diagramModal.style.display = 'none';
}
}
</script>
</body>
</html>

225
profile.html Normal file
View File

@@ -0,0 +1,225 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SFA Tool - Profile Settings</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: #f5f5f5;
color: #333;
line-height: 1.6;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0.5rem 1rem;
}
header {
background-color: #2c3e50;
color: white;
padding: 0.5rem 0;
}
.header-content {
display: flex;
justify-content: space-between;
align-items: center;
}
h1 {
font-size: 1.25rem;
font-weight: 500;
}
nav {
display: flex;
gap: 1.5rem;
}
nav a {
color: white;
text-decoration: none;
padding: 0.25rem 0.75rem;
border-radius: 4px;
transition: background-color 0.2s;
font-size: 0.9rem;
}
nav a:hover {
background-color: rgba(255, 255, 255, 0.1);
}
nav a.active {
background-color: rgba(255, 255, 255, 0.2);
font-weight: 500;
}
.content {
background-color: #fff;
padding: 2rem;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
margin-top: 1.5rem;
}
.profile-section {
max-width: 600px;
margin: 0 auto;
}
.profile-header {
margin-bottom: 2rem;
text-align: center;
}
.profile-avatar {
width: 100px;
height: 100px;
border-radius: 50%;
background-color: #e0e0e0;
margin: 0 auto 1rem;
display: flex;
align-items: center;
justify-content: center;
font-size: 2rem;
color: #666;
}
.form-group {
margin-bottom: 1.5rem;
}
.form-group label {
display: block;
margin-bottom: 0.5rem;
font-weight: 500;
}
.form-group input,
.form-group select {
width: 100%;
padding: 0.5rem;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 1rem;
}
.form-group input:focus,
.form-group select:focus {
outline: none;
border-color: #2c3e50;
}
.save-button {
padding: 0.75rem 1.5rem;
background: #2c3e50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 1rem;
width: 100%;
}
.save-button:hover {
background: #34495e;
}
.notification-settings {
margin-top: 2rem;
padding-top: 2rem;
border-top: 1px solid #eee;
}
.notification-option {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1rem;
}
</style>
</head>
<body>
<header>
<div class="container">
<div class="header-content">
<h1>SFA Tool</h1>
<nav>
<a href="index.html">Renewals</a>
<a href="threads.html">Threads</a>
<a href="profile.html" class="active">Profile Settings</a>
</nav>
</div>
</div>
</header>
<main class="container">
<div class="content">
<div class="profile-section">
<div class="profile-header">
<div class="profile-avatar">JD</div>
<h2>Profile Settings</h2>
</div>
<form>
<div class="form-group">
<label for="name">Full Name</label>
<input type="text" id="name" value="John Doe">
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" id="email" value="john.doe@company.com">
</div>
<div class="form-group">
<label for="role">Role</label>
<select id="role">
<option>Sales Representative</option>
<option>Sales Manager</option>
<option>Team Lead</option>
</select>
</div>
<div class="form-group">
<label for="timezone">Timezone</label>
<select id="timezone">
<option>UTC-8 (Pacific Time)</option>
<option>UTC-5 (Eastern Time)</option>
<option>UTC+0 (GMT)</option>
</select>
</div>
<button type="submit" class="save-button">Save Changes</button>
</form>
<div class="notification-settings">
<h3>Notification Preferences</h3>
<div class="notification-option">
<span>Email Notifications</span>
<input type="checkbox" checked>
</div>
<div class="notification-option">
<span>Task Reminders</span>
<input type="checkbox" checked>
</div>
<div class="notification-option">
<span>Thread Updates</span>
<input type="checkbox" checked>
</div>
</div>
</div>
</div>
</main>
</body>
</html>

286
renewal-mails.html Normal file
View File

@@ -0,0 +1,286 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Renewal Mails - SFA Tool</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: #f5f5f5;
color: #333;
line-height: 1.6;
padding-top: 60px;
}
.container {
max-width: 1600px;
margin: 0 auto;
padding: 0.5rem 1rem;
}
header {
background-color: #2c3e50;
color: white;
padding: 0.5rem 0;
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.header-content {
display: flex;
justify-content: space-between;
align-items: center;
}
h1 {
font-size: 1.25rem;
font-weight: 500;
}
nav {
display: flex;
gap: 1.5rem;
}
nav a {
color: white;
text-decoration: none;
padding: 0.25rem 0.75rem;
border-radius: 4px;
transition: background-color 0.2s;
font-size: 0.9rem;
}
nav a:hover {
background-color: rgba(255, 255, 255, 0.1);
}
nav a.active {
background-color: rgba(255, 255, 255, 0.2);
font-weight: 500;
}
.content {
background-color: #fff;
padding: 2rem;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
margin-top: 1.5rem;
}
.page-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 2rem;
}
.back-button {
display: inline-flex;
align-items: center;
gap: 0.75rem;
color: #2c3e50;
text-decoration: none;
font-weight: 500;
padding: 0.75rem 1.25rem;
background-color: #f8f9fa;
border-radius: 4px;
border: 1px solid #e9ecef;
transition: all 0.2s ease;
}
.back-button:hover {
color: #2c3e50;
background-color: #e9ecef;
transform: translateX(-4px);
}
.mail-table {
width: 100%;
border-collapse: collapse;
margin-top: 1rem;
table-layout: fixed;
}
.mail-table th {
background: #f8f9fa;
padding: 0.75rem;
text-align: left;
font-weight: 500;
color: #666;
border-bottom: 2px solid #eee;
}
.mail-table th:nth-child(1) { width: 15%; }
.mail-table th:nth-child(2) { width: 35%; }
.mail-table th:nth-child(3) { width: 20%; }
.mail-table th:nth-child(4) { width: 15%; }
.mail-table th:nth-child(5) { width: 10%; }
.mail-table th:nth-child(6) { width: 5%; }
.mail-table td {
padding: 0.75rem;
border-bottom: 1px solid #eee;
vertical-align: middle;
}
.mail-table tr:hover {
background-color: #f8f9fa;
cursor: pointer;
}
.mail-type {
display: flex;
align-items: center;
gap: 0.5rem;
}
.mail-type i {
color: #2c3e50;
}
.mail-status {
padding: 0.25rem 0.5rem;
border-radius: 4px;
font-size: 0.8rem;
display: inline-block;
}
.status-sent {
background: #e8f5e9;
color: #388e3c;
}
.status-draft {
background: #fff3e0;
color: #f57c00;
}
.status-failed {
background: #ffebee;
color: #d32f2f;
}
.action-button {
padding: 0.5rem 1rem;
background-color: #2c3e50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
display: flex;
align-items: center;
gap: 0.5rem;
font-size: 0.9rem;
}
.action-button:hover {
background-color: #34495e;
}
</style>
</head>
<body>
<header>
<div class="container">
<div class="header-content">
<h1>SFA Tool</h1>
<nav>
<a href="index.html">Renewals</a>
<a href="threads.html">Threads</a>
<a href="profile.html">Profile Settings</a>
</nav>
</div>
</div>
</header>
<main class="container">
<div class="page-header">
<a href="javascript:history.back()" class="back-button">
<i class="fas fa-arrow-left"></i>
<div class="back-button-text">
<span>Back to Renewal</span>
<span class="back-button-label">POL-2024-001</span>
</div>
</a>
<button class="action-button">
<i class="fas fa-envelope"></i>
Send New Mail
</button>
</div>
<div class="content">
<table class="mail-table">
<thead>
<tr>
<th>Type</th>
<th>Subject</th>
<th>Recipient</th>
<th>Date</th>
<th>Status</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr onclick="window.location.href='mail-detail.html'">
<td>
<div class="mail-type">
<i class="fas fa-envelope"></i>
Initial Notice
</div>
</td>
<td>Policy Renewal Notice - POL-2024-001</td>
<td>john.smith@broker.com</td>
<td>Mar 15, 2024 10:30 AM</td>
<td><span class="mail-status status-sent">Sent</span></td>
<td>
<i class="fas fa-eye action-icon"></i>
</td>
</tr>
<tr onclick="window.location.href='mail-detail.html'">
<td>
<div class="mail-type">
<i class="fas fa-envelope"></i>
Follow-up
</div>
</td>
<td>Reminder: Policy Renewal Due - POL-2024-001</td>
<td>john.smith@broker.com</td>
<td>Mar 22, 2024 02:15 PM</td>
<td><span class="mail-status status-sent">Sent</span></td>
<td>
<i class="fas fa-eye action-icon"></i>
</td>
</tr>
<tr onclick="window.location.href='mail-detail.html'">
<td>
<div class="mail-type">
<i class="fas fa-envelope"></i>
Quote Request
</div>
</td>
<td>Quote Request for Policy Renewal - POL-2024-001</td>
<td>supplier@company.com</td>
<td>Mar 25, 2024 09:45 AM</td>
<td><span class="mail-status status-sent">Sent</span></td>
<td>
<i class="fas fa-eye action-icon"></i>
</td>
</tr>
</tbody>
</table>
</div>
</main>
</body>
</html>

202
threads.html Normal file
View File

@@ -0,0 +1,202 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SFA Tool - Threads</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: #f5f5f5;
color: #333;
line-height: 1.6;
padding-top: 60px; /* Add padding for fixed header */
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0.5rem 1rem;
}
header {
background-color: #2c3e50;
color: white;
padding: 0.5rem 0;
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.header-content {
display: flex;
justify-content: space-between;
align-items: center;
}
h1 {
font-size: 1.25rem;
font-weight: 500;
}
nav {
display: flex;
gap: 1.5rem;
}
nav a {
color: white;
text-decoration: none;
padding: 0.25rem 0.75rem;
border-radius: 4px;
transition: background-color 0.2s;
font-size: 0.9rem;
}
nav a:hover {
background-color: rgba(255, 255, 255, 0.1);
}
nav a.active {
background-color: rgba(255, 255, 255, 0.2);
font-weight: 500;
}
.content {
background-color: #fff;
padding: 2rem;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
margin-top: 1.5rem;
}
.thread-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1.5rem;
}
.thread-filters {
display: flex;
gap: 1rem;
margin-bottom: 1.5rem;
}
.filter-button {
padding: 0.5rem 1rem;
border: 1px solid #ddd;
border-radius: 4px;
background: white;
cursor: pointer;
font-size: 0.9rem;
}
.filter-button:hover {
background: #f5f5f5;
}
.thread-list {
border: 1px solid #eee;
border-radius: 4px;
}
.thread-item {
padding: 1rem;
border-bottom: 1px solid #eee;
}
.thread-item:last-child {
border-bottom: none;
}
.thread-meta {
display: flex;
justify-content: space-between;
margin-top: 0.5rem;
font-size: 0.9rem;
color: #666;
}
.new-thread-button {
padding: 0.5rem 1rem;
background: #2c3e50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 0.9rem;
}
.new-thread-button:hover {
background: #34495e;
}
</style>
</head>
<body>
<header>
<div class="container">
<div class="header-content">
<h1>SFA Tool</h1>
<nav>
<a href="index.html">Renewals</a>
<a href="threads.html" class="active">Threads</a>
<a href="profile.html">Profile Settings</a>
</nav>
</div>
</div>
</header>
<main class="container">
<div class="content">
<div class="thread-header">
<h2>Threads</h2>
<button class="new-thread-button">+ New Thread</button>
</div>
<div class="thread-filters">
<button class="filter-button">All Threads</button>
<button class="filter-button">Recent</button>
<button class="filter-button">Unread</button>
<button class="filter-button">Archived</button>
</div>
<div class="thread-list">
<div class="thread-item">
<h3>Q1 Sales Strategy Discussion</h3>
<p>Latest updates on the Q1 sales strategy and team alignment...</p>
<div class="thread-meta">
<span>Last updated: 2 hours ago</span>
<span>5 participants</span>
</div>
</div>
<div class="thread-item">
<h3>Customer Feedback Review</h3>
<p>Compilation of recent customer feedback and suggested improvements...</p>
<div class="thread-meta">
<span>Last updated: 1 day ago</span>
<span>3 participants</span>
</div>
</div>
<div class="thread-item">
<h3>Team Meeting Notes</h3>
<p>Summary of today's team meeting and action items...</p>
<div class="thread-meta">
<span>Last updated: 3 days ago</span>
<span>8 participants</span>
</div>
</div>
</div>
</div>
</main>
</body>
</html>