jobs/static/invoices.html

732 lines
21 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Invoices</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Urbanist:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
</head>
<body>
<div class="navbar">
<div class="logo-container">
<i class="fas fa-link logo-icon"></i>
<span class="logo-text">jLink</span>
</div>
<div class="search-container">
<i class="fas fa-search search-icon"></i>
<input type="text" placeholder="Search" class="search-input">
</div>
<div class="nav-items">
<div class="nav-item">
<a href="discover.html" class="nav-link">
<i class="fas fa-compass"></i>
<span>Discover</span>
<div class="blank"></div>
</a>
</div>
<div class="nav-item">
<a href="jobs.html" class="nav-link">
<i class="fas fa-briefcase"></i>
<span>Jobs</span>
<div class="blank"></div>
</a>
</div>
<div class="nav-item">
<a href="proposals.html" class="nav-link">
<i class="fas fa-file-alt"></i>
<span>Proposals</span>
<div class="blank"></div>
</a>
</div>
<div class="nav-item active">
<a href="invoices.html" class="nav-link">
<i class="fas fa-dollar-sign"></i>
<span>Invoices</span>
<div class="blank"></div>
</a>
</div>
<div class="nav-item">
<a href="learn.html" class="nav-link">
<i class="fas fa-graduation-cap"></i>
<span>Learn</span>
<div class="blank"></div>
</a>
</div>
</div>
<div class="bottom-nav">
<div class="nav-item">
<a href="wallet.html" class="nav-link">
<i class="fas fa-wallet"></i>
<span>Wallet</span>
<span class="badge">$8,210.45</span>
</a>
</div>
<div class="nav-item">
<a href="inbox.html" class="nav-link">
<i class="fas fa-inbox"></i>
<span>Inbox</span>
<span class="badge">7</span>
</a>
</div>
<div class="nav-item user-item">
<a href="profile.html" class="nav-link">
<div class="user-avatar">
<img src="https://images.unsplash.com/photo-1639039186034-27f98b6e5a2f" alt="Profile">
</div>
<span>Emily</span>
<i class="fas fa-cog settings-icon right"></i>
</a>
</div>
</div>
</div>
<div class="content">
<div class="invoices-header">
<div class="invoices-title">
<h1>Invoices</h1>
<p>Manage and track your payment history</p>
</div>
<div class="invoices-actions">
<button class="create-invoice-btn"><i class="fas fa-plus"></i> Create New Invoice</button>
</div>
</div>
<div class="invoices-summary">
<div class="summary-card">
<div class="summary-icon pending">
<i class="fas fa-clock"></i>
</div>
<div class="summary-details">
<h3>Pending</h3>
<p class="summary-amount">$12,450</p>
<p class="summary-count">3 invoices</p>
</div>
</div>
<div class="summary-card">
<div class="summary-icon paid">
<i class="fas fa-check-circle"></i>
</div>
<div class="summary-details">
<h3>Paid</h3>
<p class="summary-amount">$45,800</p>
<p class="summary-count">12 invoices</p>
</div>
</div>
<div class="summary-card">
<div class="summary-icon overdue">
<i class="fas fa-exclamation-circle"></i>
</div>
<div class="summary-details">
<h3>Overdue</h3>
<p class="summary-amount">$3,200</p>
<p class="summary-count">1 invoice</p>
</div>
</div>
<div class="summary-card">
<div class="summary-icon total">
<i class="fas fa-chart-line"></i>
</div>
<div class="summary-details">
<h3>Total (2025)</h3>
<p class="summary-amount">$61,450</p>
<p class="summary-count">16 invoices</p>
</div>
</div>
</div>
<div class="invoices-filters">
<div class="filter-group">
<label>Filter by status:</label>
<select class="filter-select">
<option value="all">All Invoices</option>
<option value="pending">Pending</option>
<option value="paid">Paid</option>
<option value="overdue">Overdue</option>
</select>
</div>
<div class="filter-group">
<label>Date range:</label>
<select class="filter-select">
<option value="all-time">All Time</option>
<option value="this-month" selected>This Month</option>
<option value="last-month">Last Month</option>
<option value="this-year">This Year</option>
<option value="custom">Custom Range</option>
</select>
</div>
<div class="filter-group search">
<input type="text" placeholder="Search invoices..." class="filter-search">
<i class="fas fa-search"></i>
</div>
</div>
<div class="invoices-table">
<div class="table-header">
<div class="header-cell invoice-number">Invoice #</div>
<div class="header-cell client">Client</div>
<div class="header-cell issue-date">Issue Date</div>
<div class="header-cell due-date">Due Date</div>
<div class="header-cell amount">Amount</div>
<div class="header-cell status">Status</div>
<div class="header-cell actions">Actions</div>
</div>
<div class="table-row">
<div class="cell invoice-number">INV-2025-042</div>
<div class="cell client">FinTech Solutions</div>
<div class="cell issue-date">Apr 10, 2025</div>
<div class="cell due-date">Apr 24, 2025</div>
<div class="cell amount">$4,200</div>
<div class="cell status"><span class="status-badge pending">Pending</span></div>
<div class="cell actions">
<button class="action-btn"><i class="fas fa-eye"></i></button>
<button class="action-btn"><i class="fas fa-download"></i></button>
<button class="action-btn"><i class="fas fa-ellipsis-v"></i></button>
</div>
</div>
<div class="table-row">
<div class="cell invoice-number">INV-2025-041</div>
<div class="cell client">CloudTech Inc.</div>
<div class="cell issue-date">Apr 5, 2025</div>
<div class="cell due-date">Apr 19, 2025</div>
<div class="cell amount">$2,600</div>
<div class="cell status"><span class="status-badge pending">Pending</span></div>
<div class="cell actions">
<button class="action-btn"><i class="fas fa-eye"></i></button>
<button class="action-btn"><i class="fas fa-download"></i></button>
<button class="action-btn"><i class="fas fa-ellipsis-v"></i></button>
</div>
</div>
<div class="table-row">
<div class="cell invoice-number">INV-2025-040</div>
<div class="cell client">GreenLife Organics</div>
<div class="cell issue-date">Apr 1, 2025</div>
<div class="cell due-date">Apr 15, 2025</div>
<div class="cell amount">$5,650</div>
<div class="cell status"><span class="status-badge pending">Pending</span></div>
<div class="cell actions">
<button class="action-btn"><i class="fas fa-eye"></i></button>
<button class="action-btn"><i class="fas fa-download"></i></button>
<button class="action-btn"><i class="fas fa-ellipsis-v"></i></button>
</div>
</div>
<div class="table-row">
<div class="cell invoice-number">INV-2025-039</div>
<div class="cell client">RetailGiant Corp</div>
<div class="cell issue-date">Mar 25, 2025</div>
<div class="cell due-date">Apr 8, 2025</div>
<div class="cell amount">$3,200</div>
<div class="cell status"><span class="status-badge overdue">Overdue</span></div>
<div class="cell actions">
<button class="action-btn"><i class="fas fa-eye"></i></button>
<button class="action-btn"><i class="fas fa-download"></i></button>
<button class="action-btn"><i class="fas fa-ellipsis-v"></i></button>
</div>
</div>
<div class="table-row">
<div class="cell invoice-number">INV-2025-038</div>
<div class="cell client">HealthTech Solutions</div>
<div class="cell issue-date">Mar 20, 2025</div>
<div class="cell due-date">Apr 3, 2025</div>
<div class="cell amount">$6,800</div>
<div class="cell status"><span class="status-badge paid">Paid</span></div>
<div class="cell actions">
<button class="action-btn"><i class="fas fa-eye"></i></button>
<button class="action-btn"><i class="fas fa-download"></i></button>
<button class="action-btn"><i class="fas fa-ellipsis-v"></i></button>
</div>
</div>
<div class="table-row">
<div class="cell invoice-number">INV-2025-037</div>
<div class="cell client">FashionBrand Inc.</div>
<div class="cell issue-date">Mar 15, 2025</div>
<div class="cell due-date">Mar 29, 2025</div>
<div class="cell amount">$4,500</div>
<div class="cell status"><span class="status-badge paid">Paid</span></div>
<div class="cell actions">
<button class="action-btn"><i class="fas fa-eye"></i></button>
<button class="action-btn"><i class="fas fa-download"></i></button>
<button class="action-btn"><i class="fas fa-ellipsis-v"></i></button>
</div>
</div>
</div>
<div class="pagination">
<button class="pagination-btn disabled"><i class="fas fa-chevron-left"></i></button>
<button class="pagination-btn active">1</button>
<button class="pagination-btn">2</button>
<button class="pagination-btn">3</button>
<span class="pagination-ellipsis">...</span>
<button class="pagination-btn">8</button>
<button class="pagination-btn"><i class="fas fa-chevron-right"></i></button>
</div>
</div>
</body>
<style>
* {
box-sizing: border-box;
font-family: "Urbanist", sans-serif;
}
body {
margin: 0;
min-width: 320px;
min-height: 100vh;
width: 100vw;
height: 100vh;
padding: 20px;
display: flex;
gap: 20px;
}
.navbar {
width: 300px;
height: 100%;
background-color: #EBF2F2;
border-radius: 20px;
padding: 20px;
display: flex;
flex-direction: column;
overflow-y: auto;
}
.content {
width: 100%;
height: 100%;
background-color: white;
border-radius: 20px;
padding: 30px;
overflow-y: auto;
}
/* Logo styling */
.logo-container {
display: flex;
align-items: center;
margin-bottom: 20px;
}
.logo-icon {
font-size: 24px;
margin-right: 10px;
color: #333;
}
.logo-text {
font-size: 22px;
font-weight: bold;
color: #333;
}
/* Search bar styling */
.search-container {
position: relative;
margin-bottom: 25px;
}
.search-input {
width: 100%;
padding: 12px 15px 12px 40px;
border: none;
border-radius: 20px;
background-color: white;
font-size: 14px;
}
.search-icon {
position: absolute;
left: 15px;
top: 50%;
transform: translateY(-50%);
color: #888;
}
/* Navigation items */
.nav-items {
display: flex;
flex-direction: column;
gap: 20px;
margin-bottom: auto;
}
.nav-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 8px 10px;
color: #333;
font-weight: 500;
position: relative;
border-radius: 10px;
margin: 2px 0;
transition: background-color 0.3s ease;
}
.nav-item i {
width: 25px;
font-size: 16px;
position: relative;
z-index: 2;
}
.nav-item i.right {
display: flex;
justify-content: flex-end;
margin-left: auto;
}
.nav-item span {
font-size: 16px;
position: relative;
z-index: 2;
}
.nav-link {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
color: inherit;
text-decoration: none;
}
.nav-item.active {
background-color: white;
}
/* Bottom navigation */
.bottom-nav {
margin-top: auto;
border-top: 1px solid rgba(0, 0, 0, 0.05);
padding-top: 20px;
display: flex;
flex-direction: column;
gap: 20px;
}
/* Badge styling */
.badge {
color: #333;
border-radius: 10px;
font-size: 12px;
margin-left: auto;
position: relative;
z-index: 2;
}
/* User item styling */
.user-item {
margin-top: 5px;
}
.user-avatar {
width: 19px;
height: 19px;
background-color: #FF6B6B;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
margin-right: 10px;
position: relative;
z-index: 2;
}
.user-avatar img {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: cover;
}
.blank {
margin-left: auto;
}
/* Invoices page specific styles */
.invoices-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 30px;
}
.invoices-title h1 {
font-size: 32px;
margin: 0 0 5px 0;
color: #333;
}
.invoices-title p {
font-size: 16px;
color: #666;
margin: 0;
}
.create-invoice-btn {
background-color: #222;
color: white;
border: none;
border-radius: 20px;
padding: 10px 20px;
font-size: 14px;
font-weight: 500;
display: flex;
align-items: center;
gap: 8px;
cursor: pointer;
}
/* Summary cards */
.invoices-summary {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
margin-bottom: 30px;
}
.summary-card {
background-color: #f9f9f9;
border-radius: 15px;
padding: 20px;
display: flex;
align-items: center;
gap: 15px;
}
.summary-icon {
width: 50px;
height: 50px;
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
color: white;
}
.summary-icon.pending {
background-color: #FFC107;
}
.summary-icon.paid {
background-color: #4CAF50;
}
.summary-icon.overdue {
background-color: #F44336;
}
.summary-icon.total {
background-color: #2196F3;
}
.summary-details h3 {
margin: 0 0 5px 0;
font-size: 16px;
color: #555;
}
.summary-amount {
font-size: 22px;
font-weight: 700;
color: #333;
margin: 0 0 3px 0;
}
.summary-count {
font-size: 13px;
color: #777;
margin: 0;
}
/* Filters */
.invoices-filters {
display: flex;
gap: 20px;
margin-bottom: 25px;
padding-bottom: 20px;
border-bottom: 1px solid #eee;
}
.filter-group {
display: flex;
align-items: center;
gap: 10px;
}
.filter-group label {
font-size: 14px;
color: #555;
}
.filter-select {
padding: 8px 15px;
border: 1px solid #ddd;
border-radius: 8px;
font-size: 14px;
color: #333;
background-color: white;
}
.filter-group.search {
position: relative;
margin-left: auto;
}
.filter-search {
padding: 8px 15px 8px 35px;
border: 1px solid #ddd;
border-radius: 8px;
font-size: 14px;
width: 250px;
}
.filter-group.search i {
position: absolute;
left: 12px;
top: 50%;
transform: translateY(-50%);
color: #888;
}
/* Table */
.invoices-table {
background-color: #f9f9f9;
border-radius: 15px;
overflow: hidden;
margin-bottom: 20px;
}
.table-header {
display: flex;
background-color: #f0f0f0;
padding: 15px 20px;
font-weight: 600;
color: #555;
font-size: 14px;
}
.table-row {
display: flex;
padding: 15px 20px;
border-bottom: 1px solid #eee;
align-items: center;
}
.table-row:last-child {
border-bottom: none;
}
.header-cell, .cell {
flex: 1;
}
.invoice-number {
flex: 0.8;
}
.client {
flex: 1.2;
}
.issue-date, .due-date {
flex: 0.8;
}
.amount {
flex: 0.6;
font-weight: 600;
}
.status {
flex: 0.8;
}
.actions {
flex: 0.5;
display: flex;
justify-content: flex-end;
gap: 5px;
}
.status-badge {
padding: 5px 10px;
border-radius: 20px;
font-size: 12px;
font-weight: 500;
}
.status-badge.pending {
background-color: rgba(255, 193, 7, 0.15);
color: #FFC107;
}
.status-badge.paid {
background-color: rgba(76, 175, 80, 0.15);
color: #4CAF50;
}
.status-badge.overdue {
background-color: rgba(244, 67, 54, 0.15);
color: #F44336;
}
.action-btn {
width: 30px;
height: 30px;
border-radius: 50%;
border: 1px solid #ddd;
background-color: white;
display: flex;
align-items: center;
justify-content: center;
color: #555;
cursor: pointer;
}
/* Pagination */
.pagination {
display: flex;
justify-content: center;
gap: 5px;
margin-top: 30px;
}
.pagination-btn {
width: 35px;
height: 35px;
border-radius: 8px;
border: 1px solid #ddd;
background-color: white;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
color: #555;
cursor: pointer;
}
.pagination-btn.active {
background-color: #222;
color: white;
border-color: #222;
}
.pagination-btn.disabled {
opacity: 0.5;
cursor: not-allowed;
}
.pagination-ellipsis {
display: flex;
align-items: center;
justify-content: center;
width: 35px;
color: #555;
}
</style>
</html>