95 lines
3.9 KiB
HTML
95 lines
3.9 KiB
HTML
|
|
<div class="flex-fill col-md-8 col-12 card bg-light p-6 mb-6">
|
||
|
|
|
||
|
|
<div class="row mb-3">
|
||
|
|
<h5 class="col-9">📋 Gewohnheiten</h5>
|
||
|
|
<a class="col-3 btn btn-primary p" role="button" href="/habit-list">Neue Liste erstellen</a>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
|
||
|
|
<ul class="nav nav-tabs card-header-tabs" role="tablist">
|
||
|
|
{% for habit_list in habit_lists %}
|
||
|
|
|
||
|
|
<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>
|
||
|
|
{% endfor %}
|
||
|
|
</ul>
|
||
|
|
|
||
|
|
<div class="tab-content pt-5" id="tab-content">
|
||
|
|
{% 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">
|
||
|
|
<h2 class="col-9"></h2>
|
||
|
|
<a class="col-3 btn btn-primary" role="button" href="/habit?list={{ habit_list.id }}">
|
||
|
|
Gewohnheit erstellen
|
||
|
|
</a>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<ul class="task-list row">
|
||
|
|
{% for habit in habit_list.habits %}
|
||
|
|
<li class="row d-flex align-items-center mb-2" id="habit-{{ habit.id }}">
|
||
|
|
<div class="col-auto drag-handle" style="cursor: grab;">
|
||
|
|
<i class="bi bi-grip-vertical"></i>
|
||
|
|
</div>
|
||
|
|
<div class="col-auto">
|
||
|
|
<input {% if habit.checked %} checked {% endif %} type="checkbox" class="task-checkbox"
|
||
|
|
id="{{ habit.id }}"
|
||
|
|
onclick="sendPostRequest('{{ habit.id }}')">
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div class="col" style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
||
|
|
{{ habit.name }}
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div class="col-5 text-black text-opacity-50"
|
||
|
|
style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
||
|
|
{{ habit.note }}
|
||
|
|
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div class="col-2" style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
||
|
|
{% if not habit.streak == 0 %}
|
||
|
|
{{ habit.streak }} 🔥
|
||
|
|
{% endif %}
|
||
|
|
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<button type="button" class="btn btn-xs btn-danger rounded-circle" data-bs-toggle="modal"
|
||
|
|
data-bs-target="#exampleModal" style="width: 40px; height: 40px"
|
||
|
|
onclick="setSelectedHabitId({{ habit.id }})">
|
||
|
|
<i class="bi bi-trash3"></i>
|
||
|
|
</button>
|
||
|
|
<div class="col-12">
|
||
|
|
<div class="progress" style="height: 2px; width: 90%">
|
||
|
|
<div class="progress-bar" id="progress-bar-{{ habit.id }}" role="progressbar"
|
||
|
|
style="width: {{ habit.percentage }}%; background-color: {% if habit.percentage >= 100 %} green {% else %} primary {% endif %}"
|
||
|
|
aria-valuenow="{{ habit.percentage }}" aria-valuemin="0"
|
||
|
|
aria-valuemax="100"></div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</li>
|
||
|
|
|
||
|
|
{% endfor %}
|
||
|
|
</ul>
|
||
|
|
</div>
|
||
|
|
{% endfor %}
|
||
|
|
</div>
|
||
|
|
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<script>
|
||
|
|
var selectedHabitId = null;
|
||
|
|
|
||
|
|
function setSelectedHabitId(habitId) {
|
||
|
|
selectedHabitId = habitId;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
</script>
|