feat: extend teamer dashboard

This commit is contained in:
Björn Fromme
2023-12-12 18:04:01 +01:00
parent 8ff59b3068
commit b5781df8d9
16 changed files with 286 additions and 30 deletions
+14
View File
@@ -0,0 +1,14 @@
<h2 class=" font-bold text-lg pb-2">
Durchschnittsnote: {{ feedback.averageRating|format_rating }}
</h2>
<ul class="divide-y divide-gray-200 pb-4">
{% for item in feedback.ratings %}
<li class="py-2 first:pt-0 last:pb-0 flex items-start">
<span class="flex-1">{{ item.rating }}</span>
<strong>Note {{ item.mark }}</strong>
</li>
{% endfor %}
</ul>
<p>
abgegeben von {{ feedback.author }} (<a href="mailto:{{ feedback.createdBy }}" class="underline">{{ feedback.createdBy }}</a>)
</p>
+94 -6
View File
@@ -10,39 +10,127 @@
</div>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
<div class="bg-gray-100 border border-gray-200 rounded-md px-4 py-2">
<h2 class="font-bold text-lg">
<h2 class="font-bold text-lg pb-2">
Meine Bewerbungen
</h2>
<ul class="divide-y divide-gray-200">
{% for application in pendingApplications %}
{% set assignment = application.assignment %}
<li class="py-2 first:pt-0 last:pb-0">
<a href="{{ path('app_teamer_assignment_detail', { 'uuid': assignment.uuid, 'r': return_url() }) }}" class="flex items-center space-x-1 truncate">
{{ icon('hand', 'w-4 h-4 shrink-0') }}
<span class="whitespace-nowrap">{{ assignment.effectivePeriod.start|date('d.m.y') }} - {{ assignment.effectivePeriod.end|date('d.m.y') }}</span>
{% include '_partials/_dot.html.twig' %}
<span class="whitespace-nowrap">{{ assignment.destination.hotel }}</span>
{% include '_partials/_dot.html.twig' %}
<span class="whitespace-nowrap">{{ assignment.jobProfile.name }}</span>
</a>
</li>
{% else %}
<li class="py-2 first:pt-0 last:pb-0">
-
</li>
{% endfor %}
</ul>
</div>
<div class="bg-gray-100 border border-gray-200 rounded-md px-4 py-2">
<h2 class="font-bold text-lg">
<h2 class="font-bold text-lg pb-2">
Meine Dokumente
</h2>
<ul class="divide-y divide-gray-200">
{% for disposition in upcomingDispositions %}
{% for document in disposition.assignment.documents %}
{% if is_granted('DOWNLOAD', document) %}
<li class="py-2 first:pt-0 last:pb-0">
<a href="{{ path('app_common_download', { 'uuid': document.uuid }) }}" class="flex items-center space-x-1 truncate" target="_blank">
{{ icon('download', 'w-4 h-4 shrink-0') }}
<span class="whitespace-nowrap">{{ document.displayName|default(document.originalFilename) }}</span>
</a>
</li>
{% endif %}
{% endfor %}
{% else %}
<li class="py-2 first:pt-0 last:pb-0">
-
</li>
{% endfor %}
</ul>
</div>
<div class="bg-gray-100 border border-gray-200 rounded-md px-4 py-2">
<h2 class="font-bold text-lg">
<h2 class="font-bold text-lg pb-2">
Mein Feedback
</h2>
<ul class="divide-y divide-gray-200">
{% for feedback in recentFeedback %}
<li class="py-2 first:pt-0 last:pb-0">
<button type="button" class="flex items-center space-x-1 truncate"
{{ stimulus_controller('modal-button', [], [], {'ajax-modal': '#ajax-modal'}) }}
{{ stimulus_action('modal-button', 'ajax', null, {
'title': feedback.destinationName ~ ' ' ~ feedback.assignmentDate|date('m.Y'),
'url': path('app_teamer_feedback', { 'uuid': feedback.uuid })
}) }}>
{{ icon('feedback', 'w-4 h-4 shrink-0') }}
<span class="whitespace-nowrap">{{ feedback.createdAt|date('d.m.y') }}</span>
{% include '_partials/_dot.html.twig' %}
<span class="whitespace-nowrap">{{ feedback.author }}</span>
{% include '_partials/_dot.html.twig' %}
<span class="whitespace-nowrap">{{ feedback.averageRating|format_rating }}</span>
{% include '_partials/_dot.html.twig' %}
<span>{{ feedback.comment }}</span>
</button>
</li>
{% else %}
<li class="py-2 first:pt-0 last:pb-0">
-
</li>
{% endfor %}
</ul>
</div>
<div class="bg-gray-100 border border-gray-200 rounded-md px-4 py-2">
<h2 class="font-bold text-lg">
<h2 class="font-bold text-lg pb-2">
Meine Einsätze
</h2>
<ul class="divide-y divide-gray-200">
{% for disposition in upcomingDispositions %}
{% set assignment = disposition.assignment %}
<li class="py-2 first:pt-0 last:pb-0">
<a href="{{ path('app_teamer_disposition_detail', { 'uuid': disposition.uuid }) }}" class="flex items-center space-x-1 truncate">
{{ icon('hand', 'w-4 h-4 shrink-0') }}
<span class="whitespace-nowrap">{{ assignment.effectivePeriod.start|date('d.m.y') }} - {{ assignment.effectivePeriod.end|date('d.m.y') }}</span>
{% include '_partials/_dot.html.twig' %}
<span class="whitespace-nowrap">{{ assignment.destination.hotel }}</span>
{% include '_partials/_dot.html.twig' %}
<span class="whitespace-nowrap">{{ assignment.jobProfile.name }}</span>
</a>
</li>
{% else %}
<li class="py-2 first:pt-0 last:pb-0">
-
</li>
{% endfor %}
</ul>
</div>
<div class="bg-gray-100 border border-gray-200 rounded-md px-4 py-2">
<h2 class="font-bold text-lg">
<h2 class="font-bold text-lg pb-2">
Mögliche Einsätze
</h2>
<ul class="divide-y divide-gray-200">
{{ matchingAssignments|length }}
{% for assignment in matchingAssignments %}
<li class="py-2 first:pt-0 last:pb-0">
<a href="{{ path('app_teamer_assignment_detail', { 'uuid': assignment.uuid, 'r': return_url() }) }}" class="flex items-center space-x-1 truncate">
{{ icon('calendar', 'w-4 h-4 shrink-0') }}
<span class="whitespace-nowrap">{{ assignment.effectivePeriod.start|date('d.m.y') }} - {{ assignment.effectivePeriod.end|date('d.m.y') }}</span>
{% include '_partials/_dot.html.twig' %}
<span class="whitespace-nowrap">{{ assignment.destination.hotel }}</span>
{% include '_partials/_dot.html.twig' %}
<span class="whitespace-nowrap">{{ assignment.jobProfile.name }}</span>
</a>
</li>
{% else %}
<li class="py-2 first:pt-0 last:pb-0">
-
</li>
{% endfor %}
</ul>
</div>
</div>