tabs layouts
This commit is contained in:
parent
bcfb7aaec6
commit
0f35a67391
60
templates/components/heatmap.html
Normal file
60
templates/components/heatmap.html
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
{% extends 'index.html' %}
|
||||||
|
|
||||||
|
{% block heatmap %}
|
||||||
|
|
||||||
|
<div class="flex-fill col-md-4 col-12 card bg-light mb-6">
|
||||||
|
<div class="card-body">
|
||||||
|
<h5 class="card-title">📅 Heatmap</h5>
|
||||||
|
<div id="heatmap"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
// Simulierte Aktivitätsdaten (ersetze dies durch deine echten Daten)
|
||||||
|
const activityData = {{ heatmap_values }};
|
||||||
|
|
||||||
|
// Funktion zum Erstellen der Heatmap
|
||||||
|
function createHeatmap(data) {
|
||||||
|
const heatmapContainer = document.getElementById('heatmap');
|
||||||
|
|
||||||
|
// Aktuelles Datum des Montags
|
||||||
|
const days = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So']
|
||||||
|
|
||||||
|
for (let i = 0; i < 7; i++) {
|
||||||
|
const dayElement = document.createElement('div');
|
||||||
|
dayElement.classList.add('day');
|
||||||
|
dayElement.textContent = days[i];
|
||||||
|
heatmapContainer.appendChild(dayElement);
|
||||||
|
// currentDate.setDate(currentDate.getDate() + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Aktuelles Datum des Montags in der neuen linken Spalte
|
||||||
|
for (let i = 0; i < 7; i++) {
|
||||||
|
for (let j = 0; j < 4; j++) {
|
||||||
|
// console.log(i * 7 + j, data[i * 7 + j], Math.max(...data));
|
||||||
|
const opacity = data[i * 7 + j] / (Math.max(...data) <= 0 ? 1 : Math.max(...data)); // Berechne die Opazität basierend auf Aktivitätsanzahl
|
||||||
|
|
||||||
|
if (data[i * 7 + j]) {
|
||||||
|
const dayElement = document.createElement('div');
|
||||||
|
dayElement.classList.add('day');
|
||||||
|
dayElement.style.backgroundColor = `rgba(0, 255, 0, ${opacity})`;
|
||||||
|
heatmapContainer.appendChild(dayElement);
|
||||||
|
} else {
|
||||||
|
const dayElement = document.createElement('div');
|
||||||
|
dayElement.classList.add('day');
|
||||||
|
dayElement.style.backgroundColor = `rgba(0, 255, 0, ${opacity})`;
|
||||||
|
heatmapContainer.appendChild(dayElement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var left = 7 - (new Date()).getDay();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Erstelle die Heatmap mit den simulierten Daten
|
||||||
|
createHeatmap(activityData);
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@ -1,7 +1,8 @@
|
|||||||
{% extends 'layouts/main.html' %}
|
{% extends 'layouts/main.html' %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>{{ title }}</h1>
|
<h1> <img class="avatar avatar-xl" src="{{user.profile_image}}"/>
|
||||||
|
{{ title }}</h1>
|
||||||
<h3>{{ utc_dt }}</h3>
|
<h3>{{ utc_dt }}</h3>
|
||||||
|
|
||||||
|
|
||||||
@ -25,11 +26,11 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div class="d-flex flex-column gap-5">
|
|
||||||
<div class="d-flex gap-3">
|
<div class="d-md-flex gap-3">
|
||||||
<div class="flex-md-fill col-md-4 col-12 card bg-light mb-6">
|
<div class="flex-fill col-md-4 col-12 card bg-light mb-6">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">Heatmap</h5>
|
<h5 class="card-title">📅 Heatmap</h5>
|
||||||
<div id="heatmap"></div>
|
<div id="heatmap"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -85,42 +86,30 @@
|
|||||||
|
|
||||||
<div class="flex-fill col-md-8 col-12 card bg-light p-6 mb-6">
|
<div class="flex-fill col-md-8 col-12 card bg-light p-6 mb-6">
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<h2 class="col-9">Gewohnheiten</h2>
|
<h5 class="col-9">📋 Gewohnheiten</h5>
|
||||||
<a class="col-3 btn btn-primary p" role="button" href="/habit-list">Neue Liste erstellen</a>
|
<a class="col-3 btn btn-primary p" role="button" href="/habit-list">Neue Liste erstellen</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="card-header">
|
|
||||||
<ul class="nav nav-tabs card-header-tabs">
|
|
||||||
|
|
||||||
|
<ul class="nav nav-tabs card-header-tabs" role="tablist">
|
||||||
{% for habit_list in habit_lists %}
|
{% for habit_list in habit_lists %}
|
||||||
<li class="nav-item">
|
|
||||||
{% if habit_list == habit_lists[0] %}
|
|
||||||
<a class="nav-link active" aria-current="true">{{ habit_list.name }}</a>
|
|
||||||
{% else %}
|
|
||||||
<a class="nav-link">{{ habit_list.name }}</a>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<a class="nav-link {% if habit_list == habit_lists[0] %} active {% endif %}" id="simple-tab-{{habit_list.id}}" data-bs-toggle="tab" href="#simple-tabpanel-{{habit_list.id}}" role="tab" aria-controls="simple-tabpanel-{{habit_list.id}}" aria-selected="true">
|
||||||
|
{{habit_list.name}}
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
<div class="tab-content pt-5" id="tab-content">
|
||||||
|
|
||||||
<div class="card-body text-center">
|
|
||||||
<h5 class="card-title">Special title treatment</h5>
|
|
||||||
<p class="card-text">
|
|
||||||
With supporting text below as a natural lead-in to additional content.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
{% for habit_list in habit_lists %}
|
{% for habit_list in habit_lists %}
|
||||||
|
<div class="tab-pane {% if habit_list == habit_lists[0] %} active {% endif %}" id="simple-tabpanel-{{habit_list.id}}" role="tabpanel" aria-labelledby="simple-tab-{{habit_list.id}}">
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<h2 class="col-9">{{ habit_list.name }}</h2>
|
<h2 class="col-9"></h2>
|
||||||
<a class="col-3 btn btn-primary" role="button" href="/habit?list={{ habit_list.id }}">Gewohnheit
|
<a class="col-3 btn btn-primary" role="button" href="/habit?list={{ habit_list.id }}">
|
||||||
erstellen</a>
|
Gewohnheit erstellen
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ul class="task-list row">
|
<ul class="task-list row">
|
||||||
@ -146,10 +135,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-2" style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
<div class="col-2" style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
||||||
{% if habit %}
|
{% if not habit.streak == 0 %}
|
||||||
|
{{ habit.streak }} 🔥
|
||||||
{% else %}
|
|
||||||
5 🔥
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -171,10 +158,12 @@
|
|||||||
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var selectedHabitId = null;
|
var selectedHabitId = null;
|
||||||
|
|
||||||
@ -270,7 +259,7 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener('DOMContentLoaded', (event) => {
|
document.addEventListener('DOMContentLoaded', (event) => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user