Files
workout/templates/settings.html
2026-02-08 18:48:03 +11:00

116 lines
7.0 KiB
HTML

{% extends 'base.html' %}
{% block content %}
<div class="mt-4 w-full h-full relative">
<!-- Hidden Radio Buttons for CSS Tabs -->
<input type="radio" name="settings_tabs" id="radio-users" class="peer/users hidden" checked>
<input type="radio" name="settings_tabs" id="radio-exercises" class="peer/exercises hidden">
<input type="radio" name="settings_tabs" id="radio-export" class="peer/export hidden">
<input type="radio" name="settings_tabs" id="radio-activity" class="peer/activity hidden">
<!-- Tab Navigation -->
<div class="border-b border-gray-200 mb-6 bg-gray-50 z-10">
<ul class="flex flex-wrap -mb-px text-sm font-medium text-center text-gray-500">
<li class="mr-2">
<label for="radio-users" hx-get="{{ url_for('settings.settings_people') }}"
hx-target="#people-tab-content" hx-trigger="click"
class="inline-flex items-center justify-center p-4 border-b-2 rounded-t-lg group cursor-pointer transition-colors
peer-checked/users:border-cyan-600 peer-checked/users:text-cyan-600 border-transparent hover:text-gray-700 hover:border-gray-300">
<svg class="w-5 h-5 mr-2" fill="currentColor" viewBox="0 0 20 20"
xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z"
clip-rule="evenodd"></path>
</svg>
Users
</label>
</li>
<li class="mr-2">
<label for="radio-exercises" hx-get="{{ url_for('settings.settings_exercises') }}"
hx-target="#exercises-tab-content" hx-trigger="click"
class="inline-flex items-center justify-center p-4 border-b-2 rounded-t-lg group cursor-pointer transition-colors
peer-checked/exercises:border-cyan-600 peer-checked/exercises:text-cyan-600 border-transparent hover:text-gray-700 hover:border-gray-300">
<svg class="w-5 h-5 mr-2" fill="currentColor" viewBox="0 0 20 20"
xmlns="http://www.w3.org/2000/svg">
<path d="M9 2a1 1 0 000 2h2a1 1 0 100-2H9z"></path>
<path fill-rule="evenodd"
d="M4 5a2 2 0 012-2 3 3 0 003 3h2a3 3 0 003-3 2 2 0 012 2v11a2 2 0 01-2 2H6a2 2 0 01-2-2V5zm3 4a1 1 0 000 2h.01a1 1 0 100-2H7zm3 0a1 1 0 000 2h3a1 1 0 100-2h-3zm-3 4a1 1 0 100 2h.01a1 1 0 100-2H7zm3 0a1 1 0 100 2h3a1 1 0 100-2h-3z"
clip-rule="evenodd"></path>
</svg>
Exercises
</label>
</li>
<li class="mr-2">
<label for="radio-export" hx-get="{{ url_for('settings.settings_export') }}"
hx-target="#export-tab-content" hx-trigger="click"
class="inline-flex items-center justify-center p-4 border-b-2 rounded-t-lg group cursor-pointer transition-colors
peer-checked/export:border-cyan-600 peer-checked/export:text-cyan-600 border-transparent hover:text-gray-700 hover:border-gray-300">
<svg class="w-5 h-5 mr-2" fill="currentColor" viewBox="0 0 20 20"
xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd"
d="M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z"
clip-rule="evenodd"></path>
</svg>
Data & Export
</label>
</li>
<li class="mr-2">
<label for="radio-activity" hx-get="{{ url_for('settings.settings_activity') }}"
hx-target="#activity-tab-content" hx-trigger="click"
class="inline-flex items-center justify-center p-4 border-b-2 rounded-t-lg group cursor-pointer transition-colors
peer-checked/activity:border-cyan-600 peer-checked/activity:text-cyan-600 border-transparent hover:text-gray-700 hover:border-gray-300">
<svg class="w-5 h-5 mr-2" fill="currentColor" viewBox="0 0 20 20"
xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd"
d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
clip-rule="evenodd" />
</svg>
Activity
</label>
</li>
</ul>
</div>
<!-- Users Tab Content -->
<div class="hidden peer-checked/users:block" id="people-tab-content"
hx-get="{{ url_for('settings.settings_people') }}" hx-trigger="load">
<div class="flex justify-center p-12">
<div class="flex flex-col items-center">
<div class="animate-spin rounded-full h-10 w-10 border-b-2 border-cyan-600 mb-4"></div>
<p class="text-sm text-gray-500">Loading users...</p>
</div>
</div>
</div>
<!-- Exercises Tab Content -->
<div class="hidden peer-checked/exercises:block" id="exercises-tab-content">
<div class="flex justify-center p-12">
<div class="flex flex-col items-center">
<div class="animate-spin rounded-full h-10 w-10 border-b-2 border-cyan-600 mb-4"></div>
<p class="text-sm text-gray-500">Loading exercises...</p>
</div>
</div>
</div>
<!-- Export Tab Content -->
<div class="hidden peer-checked/export:block" id="export-tab-content">
<div class="flex justify-center p-12">
<div class="flex flex-col items-center">
<div class="animate-spin rounded-full h-10 w-10 border-b-2 border-cyan-600 mb-4"></div>
<p class="text-sm text-gray-500">Loading data settings...</p>
</div>
</div>
</div>
<!-- Activity Tab Content -->
<div class="hidden peer-checked/activity:block" id="activity-tab-content">
<div class="flex justify-center p-12">
<div class="flex flex-col items-center">
<div class="animate-spin rounded-full h-10 w-10 border-b-2 border-cyan-600 mb-4"></div>
<p class="text-sm text-gray-500">Loading activity history...</p>
</div>
</div>
</div>
</div>
{% endblock %}