Files
hotline-planner/dev/backend/backend gemini cli/CalendarSyncApp/Views/Home/Index.cshtml
2026-02-23 14:02:44 +01:00

67 lines
2.8 KiB
Plaintext

@model CalendarSyncApp.Models.HomeViewModel
@{
ViewData["Title"] = "Calendar Sync Status";
}
<div class="text-center">
<h1 class="display-4">Calendar Sync Dashboard</h1>
@if (User.Identity.IsAuthenticated)
{
<div class="card mt-4">
<div class="card-body">
<h5 class="card-title">Welcome, @User.Identity.Name</h5>
@if (Model.UserState != null)
{
<p class="card-text">Status: <strong>@Model.UserState.LastSyncStatus</strong></p>
<p class="card-text">Last Sync Time: @(Model.UserState.LastSyncTime?.ToString("g") ?? "Never")</p>
<p class="card-text">Next Scheduled Sync: <strong>@(Model.NextSyncTime?.ToString("g") ?? "Pending")</strong></p>
<a asp-action="SyncNow" class="btn btn-primary">Sync Now</a>
<div class="mt-5 text-start">
<h4>Recent Synced Events</h4>
<table class="table table-striped">
<thead>
<tr>
<th>Event</th>
<th>Type</th>
<th>Time</th>
</tr>
</thead>
<tbody>
@foreach (var log in Model.RecentLogs)
{
<tr>
<td>@log.EventSubject</td>
<td>
<span class="badge @(log.ChangeType == "Deleted" ? "bg-danger" : (log.ChangeType == "Created" ? "bg-success" : "bg-warning text-dark"))">
@log.ChangeType
</span>
</td>
<td>@log.Timestamp.ToLocalTime().ToString("g")</td>
</tr>
}
@if (!Model.RecentLogs.Any())
{
<tr>
<td colspan="3" class="text-center text-muted">No recent events found.</td>
</tr>
}
</tbody>
</table>
</div>
}
</div>
</div>
}
else
{
<div class="alert alert-info mt-4">
<p>Please sign in to enable calendar synchronization.</p>
<a asp-action="SignIn" class="btn btn-primary btn-lg">Sign In with Microsoft</a>
</div>
}
</div>