Responsive updates
All checks were successful
Docker Deploy / build-and-push (push) Successful in 3m36s
All checks were successful
Docker Deploy / build-and-push (push) Successful in 3m36s
This commit is contained in:
@@ -21,8 +21,8 @@ const { title } = Astro.props;
|
|||||||
<title>{title}</title>
|
<title>{title}</title>
|
||||||
<ClientRouter />
|
<ClientRouter />
|
||||||
</head>
|
</head>
|
||||||
<body class="h-screen bg-base-100 text-base-content flex flex-col overflow-auto">
|
<body class="min-h-screen bg-base-100 text-base-content flex flex-col">
|
||||||
<div class="flex-1 overflow-auto">
|
<div class="flex-1 flex flex-col">
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
<Footer />
|
<Footer />
|
||||||
|
|||||||
@@ -205,7 +205,8 @@ const isDraft = invoice.status === 'draft';
|
|||||||
|
|
||||||
<!-- Items Table -->
|
<!-- Items Table -->
|
||||||
<div class="mb-8">
|
<div class="mb-8">
|
||||||
<table class="w-full">
|
<div class="overflow-x-auto">
|
||||||
|
<table class="w-full min-w-[600px]">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="border-b-2 border-base-200 text-left text-xs font-bold uppercase tracking-wider text-base-content/40">
|
<tr class="border-b-2 border-base-200 text-left text-xs font-bold uppercase tracking-wider text-base-content/40">
|
||||||
<th class="py-3">Description</th>
|
<th class="py-3">Description</th>
|
||||||
@@ -244,6 +245,7 @@ const isDraft = invoice.status === 'draft';
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Add Item Form (Only if Draft) -->
|
<!-- Add Item Form (Only if Draft) -->
|
||||||
{isDraft && (
|
{isDraft && (
|
||||||
|
|||||||
@@ -109,6 +109,7 @@ const getStatusColor = (status: string) => {
|
|||||||
|
|
||||||
<div class="card bg-base-100 shadow-xl border border-base-200">
|
<div class="card bg-base-100 shadow-xl border border-base-200">
|
||||||
<div class="card-body p-0">
|
<div class="card-body p-0">
|
||||||
|
<div class="overflow-x-auto">
|
||||||
<table class="table table-zebra">
|
<table class="table table-zebra">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="bg-base-200/50">
|
<tr class="bg-base-200/50">
|
||||||
@@ -212,4 +213,5 @@ const getStatusColor = (status: string) => {
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</DashboardLayout>
|
</DashboardLayout>
|
||||||
|
|||||||
@@ -164,14 +164,16 @@ const paginationPages = getPaginationPages(page, totalPages);
|
|||||||
<input type="radio" name="tracker_tabs" role="tab" class="tab text-base font-medium gap-2" aria-label="Timer" checked />
|
<input type="radio" name="tracker_tabs" role="tab" class="tab text-base font-medium gap-2" aria-label="Timer" checked />
|
||||||
<div role="tabpanel" class="tab-content bg-base-100 border-base-300 rounded-box p-6">
|
<div role="tabpanel" class="tab-content bg-base-100 border-base-300 rounded-box p-6">
|
||||||
{allClients.length === 0 ? (
|
{allClients.length === 0 ? (
|
||||||
<div class="alert alert-warning">
|
<div class="alert alert-warning flex flex-col sm:flex-row items-center gap-4">
|
||||||
<span>You need to create a client before tracking time.</span>
|
<svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-6 w-6" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
|
||||||
<a href="/dashboard/clients/new" class="btn btn-sm btn-primary">Add Client</a>
|
<span class="flex-1 text-center sm:text-left">You need to create a client before tracking time.</span>
|
||||||
|
<a href="/dashboard/clients/new" class="btn btn-sm btn-primary whitespace-nowrap">Add Client</a>
|
||||||
</div>
|
</div>
|
||||||
) : allCategories.length === 0 ? (
|
) : allCategories.length === 0 ? (
|
||||||
<div class="alert alert-warning">
|
<div class="alert alert-warning flex flex-col sm:flex-row items-center gap-4">
|
||||||
<span>You need to create a category before tracking time.</span>
|
<svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-6 w-6" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
|
||||||
<a href="/dashboard/team/settings" class="btn btn-sm btn-primary">Team Settings</a>
|
<span class="flex-1 text-center sm:text-left">You need to create a category before tracking time.</span>
|
||||||
|
<a href="/dashboard/team/settings" class="btn btn-sm btn-primary whitespace-nowrap">Team Settings</a>
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<Timer
|
<Timer
|
||||||
@@ -192,14 +194,16 @@ const paginationPages = getPaginationPages(page, totalPages);
|
|||||||
<input type="radio" name="tracker_tabs" role="tab" class="tab text-base font-medium gap-2" aria-label="Manual Entry" />
|
<input type="radio" name="tracker_tabs" role="tab" class="tab text-base font-medium gap-2" aria-label="Manual Entry" />
|
||||||
<div role="tabpanel" class="tab-content bg-base-100 border-base-300 rounded-box p-6">
|
<div role="tabpanel" class="tab-content bg-base-100 border-base-300 rounded-box p-6">
|
||||||
{allClients.length === 0 ? (
|
{allClients.length === 0 ? (
|
||||||
<div class="alert alert-warning">
|
<div class="alert alert-warning flex flex-col sm:flex-row items-center gap-4">
|
||||||
<span>You need to create a client before adding time entries.</span>
|
<svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-6 w-6" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
|
||||||
<a href="/dashboard/clients/new" class="btn btn-sm btn-primary">Add Client</a>
|
<span class="flex-1 text-center sm:text-left">You need to create a client before adding time entries.</span>
|
||||||
|
<a href="/dashboard/clients/new" class="btn btn-sm btn-primary whitespace-nowrap">Add Client</a>
|
||||||
</div>
|
</div>
|
||||||
) : allCategories.length === 0 ? (
|
) : allCategories.length === 0 ? (
|
||||||
<div class="alert alert-warning">
|
<div class="alert alert-warning flex flex-col sm:flex-row items-center gap-4">
|
||||||
<span>You need to create a category before adding time entries.</span>
|
<svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-6 w-6" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
|
||||||
<a href="/dashboard/team/settings" class="btn btn-sm btn-primary">Team Settings</a>
|
<span class="flex-1 text-center sm:text-left">You need to create a category before adding time entries.</span>
|
||||||
|
<a href="/dashboard/team/settings" class="btn btn-sm btn-primary whitespace-nowrap">Team Settings</a>
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<ManualEntry
|
<ManualEntry
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ if (Astro.locals.user) {
|
|||||||
---
|
---
|
||||||
|
|
||||||
<Layout title="Chronus - Time Tracking">
|
<Layout title="Chronus - Time Tracking">
|
||||||
<div class="hero h-full bg-linear-to-br from-base-100 via-base-200 to-base-300 flex items-center justify-center py-12">
|
<div class="hero flex-1 bg-linear-to-br from-base-100 via-base-200 to-base-300 flex items-center justify-center py-12">
|
||||||
<div class="hero-content text-center">
|
<div class="hero-content text-center">
|
||||||
<div class="max-w-4xl">
|
<div class="max-w-4xl">
|
||||||
<img src="/logo.webp" alt="Chronus Logo" class="h-24 w-24 mx-auto mb-6" />
|
<img src="/logo.webp" alt="Chronus Logo" class="h-24 w-24 mx-auto mb-6" />
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ if (Astro.locals.user) {
|
|||||||
---
|
---
|
||||||
|
|
||||||
<Layout title="Login - Chronus">
|
<Layout title="Login - Chronus">
|
||||||
<div class="flex justify-center items-center min-h-screen bg-base-100">
|
<div class="flex justify-center items-center flex-1 bg-base-100">
|
||||||
<div class="card bg-base-100 shadow-2xl w-full max-w-md mx-4">
|
<div class="card bg-base-100 shadow-2xl w-full max-w-md mx-4">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<img src="/logo.webp" alt="Chronus" class="h-16 w-16 mx-auto mb-4" />
|
<img src="/logo.webp" alt="Chronus" class="h-16 w-16 mx-auto mb-4" />
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ if (!isFirstUser) {
|
|||||||
---
|
---
|
||||||
|
|
||||||
<Layout title="Sign Up - Chronus">
|
<Layout title="Sign Up - Chronus">
|
||||||
<div class="flex justify-center items-center min-h-screen bg-base-100">
|
<div class="flex justify-center items-center flex-1 bg-base-100">
|
||||||
<div class="card bg-base-100 shadow-2xl w-full max-w-md mx-4">
|
<div class="card bg-base-100 shadow-2xl w-full max-w-md mx-4">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<img src="/logo.webp" alt="Chronus" class="h-16 w-16 mx-auto mb-4" />
|
<img src="/logo.webp" alt="Chronus" class="h-16 w-16 mx-auto mb-4" />
|
||||||
|
|||||||
Reference in New Issue
Block a user