Update: Few issues to resolve see readme

this push will conclude the majority of pulls. this repos will now, not be actively be managed or any further code pushes will not be frequent.
This commit is contained in:
Mann Patel
2025-09-11 16:54:30 -06:00
parent 144436bbf3
commit b21e76eed0
19 changed files with 1953 additions and 1442 deletions

View File

@@ -3,132 +3,88 @@
<!-- Main Content -->
<div class="flex-1 overflow-hidden bg-gray-50">
<div class="h-screen flex flex-col lg:flex-row gap-6 p-4 sm:p-6">
<!-- Left Column - Posts -->
<div
class="w-full lg:w-1/2 flex flex-col gap-4 sm:gap-6 sticky top-0 self-start h-fit"
>
<!-- Left Column - Stats -->
<div class="w-full lg:w-1/2 flex flex-col gap-6 sticky top-0 self-start h-fit">
<!-- Today's Overview -->
<div class="bg-white border-b border-gray-200" x-data="{ open: true }">
<div
class="px-4 sm:px-6 py-4 flex justify-between items-center cursor-pointer"
@click="open = !open"
>
<h3 class="text-sm font-semibold text-gray-900">
Today's Overview
</h3>
<i
class="fas"
:class="open ? 'fa-chevron-up' : 'fa-chevron-down'"
></i>
<div class="bg-white rounded-lg shadow-sm border border-gray-200" x-data="{ open: true }">
<div class="px-4 sm:px-6 py-4 flex justify-between items-center cursor-pointer border-b border-gray-100" @click="open = !open">
<h3 class="text-sm font-semibold text-gray-900">Today's Overview</h3>
<i class="fas" :class="open ? 'fa-chevron-up' : 'fa-chevron-down'"></i>
</div>
<div class="px-4 sm:px-6 pb-4" x-show="open" x-collapse>
<div class="px-4 sm:px-6 py-4" x-show="open" x-collapse>
<div class="space-y-4">
<div class="flex items-center justify-between">
<div class="flex items-center gap-3">
<div
class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center flex-shrink-0"
>
<div class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center flex-shrink-0">
<i class="fas fa-calendar-day text-gray-600 text-xs"></i>
</div>
<span class="text-sm text-gray-700">Appointments Today</span>
</div>
<span class="text-lg font-semibold text-gray-900"
>{{ .Statistics.AppointmentsToday }}</span
>
<span class="text-lg font-semibold text-gray-900">{{ .Statistics.AppointmentsToday }}</span>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center gap-3">
<div
class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center flex-shrink-0"
>
<div class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center flex-shrink-0">
<i class="fas fa-calendar-week text-gray-600 text-xs"></i>
</div>
<span class="text-sm text-gray-700"
>Appointments Tomorrow</span
>
<span class="text-sm text-gray-700">Appointments Tomorrow</span>
</div>
<span class="text-lg font-semibold text-gray-900"
>{{ .Statistics.AppointmentsTomorrow }}</span
>
<span class="text-lg font-semibold text-gray-900">{{ .Statistics.AppointmentsTomorrow }}</span>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center gap-3">
<div
class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center flex-shrink-0"
>
<i class="fas fa-calendar-week text-gray-600 text-xs"></i>
<div class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center flex-shrink-0">
<i class="fas fa-calendar-alt text-gray-600 text-xs"></i>
</div>
<span class="text-sm text-gray-700">This Week</span>
</div>
<span class="text-lg font-semibold text-gray-900"
>{{ .Statistics.AppointmentsThisWeek }}</span
>
<span class="text-lg font-semibold text-gray-900">{{ .Statistics.AppointmentsThisWeek }}</span>
</div>
</div>
</div>
</div>
<!-- Polling Progress -->
<div class="bg-white border-b border-gray-200" x-data="{ open: true }">
<div
class="px-4 sm:px-6 py-4 flex justify-between items-center cursor-pointer"
@click="open = !open"
>
<h3 class="text-sm font-semibold text-gray-900">
Polling Progress
</h3>
<i
class="fas"
:class="open ? 'fa-chevron-up' : 'fa-chevron-down'"
></i>
<div class="bg-white rounded-lg shadow-sm border border-gray-200" x-data="{ open: true }">
<div class="px-4 sm:px-6 py-4 flex justify-between items-center cursor-pointer border-b border-gray-100" @click="open = !open">
<h3 class="text-sm font-semibold text-gray-900">Polling Progress</h3>
<i class="fas" :class="open ? 'fa-chevron-up' : 'fa-chevron-down'"></i>
</div>
<div class="px-4 sm:px-6 pb-4" x-show="open" x-collapse>
<div class="px-4 sm:px-6 py-4" x-show="open" x-collapse>
<div class="space-y-4">
<div class="flex items-center justify-between">
<div class="flex items-center gap-3">
<div
class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center flex-shrink-0"
>
<div class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center flex-shrink-0">
<i class="fas fa-check-circle text-green-600 text-xs"></i>
</div>
<span class="text-sm text-gray-700">Polls Completed</span>
</div>
<span class="text-lg font-semibold text-green-600"
>{{ .Statistics.PollsCompleted }}</span
>
<span class="text-lg font-semibold text-green-600">{{ .Statistics.PollsCompleted }}</span>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center gap-3">
<div
class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center flex-shrink-0"
>
<div class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center flex-shrink-0">
<i class="fas fa-clock text-orange-600 text-xs"></i>
</div>
<span class="text-sm text-gray-700">Polls Remaining</span>
</div>
<span class="text-lg font-semibold text-orange-600"
>{{ .Statistics.PollsRemaining }}</span
>
<span class="text-lg font-semibold text-orange-600">{{ .Statistics.PollsRemaining }}</span>
</div>
<!-- Progress Bar -->
{{ if gt .Statistics.TotalAppointments 0 }}
<div class="mt-4">
<div class="mt-4 w-[250px]">
<div class="flex justify-between text-xs text-gray-600 mb-2">
<span>Progress</span>
<span
>{{ .Statistics.PollsCompleted }}/{{
.Statistics.TotalAppointments }}</span
>
<span>{{ .Statistics.PollsCompleted }}/{{ .Statistics.TotalAppointments }}</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2">
<div
class="bg-gray-600 h-2 rounded-full transition-all duration-300"
style="width: {{ .Statistics.PollCompletionPercent }}%"
></div>
<div class="bg-blue-600 h-2 rounded-full transition-all duration-300" style="width: {{ .Statistics.PollCompletionPercent }}%"></div>
</div>
</div>
{{ end }}
@@ -137,29 +93,22 @@
</div>
<!-- Team Members -->
<div class="bg-white border-b border-gray-200" x-data="{ open: true }">
<div
class="px-4 sm:px-6 py-4 flex justify-between items-center cursor-pointer"
@click="open = !open"
>
<div class="bg-white rounded-lg shadow-sm border border-gray-200" x-data="{ open: true }">
<div class="px-4 sm:px-6 py-4 flex justify-between items-center cursor-pointer border-b border-gray-100" @click="open = !open">
<h3 class="text-sm font-semibold text-gray-900">Team Members</h3>
<i
class="fas"
:class="open ? 'fa-chevron-up' : 'fa-chevron-down'"
></i>
<i class="fas" :class="open ? 'fa-chevron-up' : 'fa-chevron-down'"></i>
</div>
<div class="px-4 sm:px-6 pb-4" x-show="open" x-collapse>
<div class="px-4 sm:px-6 py-4" x-show="open" x-collapse>
<div class="space-y-3">
{{ range .Teammates }}
<div class="flex items-center justify-between">
<div>
<p class="text-sm font-medium text-gray-900">
{{ .FullName }} {{ if .IsLead }}
<span class="ml-2 text-xs text-blue-600 font-semibold"
>{{ .Role }}</span
>
{{ .FullName }}
{{ if .IsLead }}
<span class="ml-2 text-xs text-blue-600 font-semibold">{{ .Role }}</span>
{{ else }}
<span class="ml-2 text-xs text-gray-500">{{ .Role }}</span>
<span class="ml-2 text-xs text-gray-500">{{ .Role }}</span>
{{ end }}
</p>
</div>
@@ -174,85 +123,52 @@
</div>
</div>
</div>
<!-- Right Column - Statistics -->
<div class="flex-1 lg:flex-none lg:w-1/2 overflow-y-auto pr-2">
{{ if .Posts }}{{range .Posts}}
<!-- Posts Feed -->
<article class="bg-white border-b border-gray-200">
<!-- Post Header -->
<div class="flex items-center px-6 py-4">
<div class="flex-shrink-0">
<div
class="w-10 h-10 bg-blue-500 flex items-center justify-center text-white font-semibold"
>
{{slice .AuthorName 0 1}}
<!-- Right Column - Posts -->
<div class="flex-1 lg:w-1/2 overflow-y-auto pr-2">
{{ if .Posts }}
{{ range .Posts }}
<article class="bg-white rounded-lg shadow-sm border border-gray-200 mb-4">
<!-- Post Header -->
<div class="flex items-center px-6 py-4 border-b border-gray-100">
<div class="flex-shrink-0">
<div class="w-10 h-10 rounded-full bg-blue-500 flex items-center justify-center text-white font-semibold">
{{ slice .AuthorName 0 1 }}
</div>
</div>
<div class="ml-4">
<p class="text-sm font-semibold text-gray-900">{{ .AuthorName }}</p>
<p class="text-xs text-gray-500">{{ .CreatedAt.Format "Jan 2, 2006" }}</p>
</div>
</div>
<div class="ml-4">
<p class="text-sm font-semibold text-gray-900">{{.AuthorName}}</p>
<p class="text-xs text-gray-500">
{{.CreatedAt.Format "Jan 2, 2006"}}
<!-- Post Image -->
{{ if .ImageURL }}
<div class="w-full">
<img src="{{ .ImageURL }}" alt="Post image" class="w-full max-h-96 object-cover" onerror="this.parentElement.style.display='none'" />
</div>
{{ end }}
<!-- Post Content -->
{{ if .Content }}
<div class="px-6 pt-3 pb-4">
<p class="text-gray-900 leading-relaxed">
<span class="font-semibold">{{ .AuthorName }}</span> {{ .Content }}
</p>
</div>
</div>
<!-- Post Image -->
{{if .ImageURL}}
<div class="w-full">
<img
src="{{.ImageURL}}"
alt="Post image"
class="w-full max-h-96 object-cover"
onerror="this.parentElement.style.display='none'"
/>
</div>
{{end}}
<!-- Post Content -->
{{if .Content}}
<div class="px-6 pt-2 pb-4">
<p class="text-gray-900 leading-relaxed">
<span class="font-semibold">{{.AuthorName}}</span> {{.Content}}
</p>
</div>
{{end}}
</article>
{{else}}
<div class="bg-white p-12 text-center">
<div class="max-w-sm mx-auto">
<svg
class="w-16 h-16 mx-auto text-gray-300 mb-4"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"
></path>
</svg>
<h3 class="text-lg font-medium text-gray-900 mb-2">No posts yet</h3>
<p class="text-gray-500">
Be the first to share something with the community!
</p>
</div>
</div>
{{ end }} {{ else }}
<div class="bg-white border-b border-gray-200 p-8 sm:p-12 text-center">
<div class="max-w-sm mx-auto">
<div
class="w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-4"
>
<i class="fas fa-inbox text-2xl text-gray-400"></i>
{{ end }}
</article>
{{ end }}
{{ else }}
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-12 text-center">
<div class="max-w-sm mx-auto">
<div class="w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-4">
<i class="fas fa-inbox text-2xl text-gray-400"></i>
</div>
<h3 class="text-lg font-medium text-gray-900 mb-2">No posts yet</h3>
<p class="text-sm text-gray-500">Be the first to share something with the community!</p>
</div>
<p class="text-gray-600 font-medium mb-2">No posts yet</p>
<p class="text-sm text-gray-500">
Check back later for updates from your team
</p>
</div>
</div>
{{ end }}
</div>
</div>