Jobangebote: Favoriten-Funktion mit eigenem "Gemerkt"-Tab
Jobangebote lassen sich per Stern merken — eigene Spalte `favorit`, getrennt von den Bewerbungs-Favoriten. Gemerkte Angebote stehen oben in der offenen Liste und haben einen eigenen Tab, der Favoriten quer über alle Status zeigt und ausgeblendet bleibt, solange es keine gibt. Der Stern wird nur in der Weboberfläche gesetzt; ein erneutes Einspielen desselben Angebots über die REST-API überschreibt ihn nicht. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -15,15 +15,15 @@
|
||||
Zurück zu den Jobangeboten
|
||||
</a>
|
||||
|
||||
<!-- Tabs: open offers vs. taken-over offers -->
|
||||
<div class="flex flex-wrap items-center gap-2 mb-6">
|
||||
<a href="/jobangebote" class="px-3 py-1.5 rounded-md text-sm font-medium bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 border border-gray-200 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors">
|
||||
Offen (<%= offenCount %>)
|
||||
</a>
|
||||
<a href="/jobangebote/uebernommen" class="px-3 py-1.5 rounded-md text-sm font-medium bg-blue-600 text-white shadow-sm">
|
||||
Übernommen (<%= uebernommen.length %>)
|
||||
</a>
|
||||
</div>
|
||||
<!-- Tabs: open offers · favorites · taken-over offers -->
|
||||
<%- include('partials/jobangebote-tabs', {
|
||||
aktiv: 'uebernommen',
|
||||
offenCount: offenCount,
|
||||
favoritenCount: favoritenCount,
|
||||
uebernommenCount: uebernommenCount,
|
||||
}) %>
|
||||
|
||||
<%- include('partials/favorit-script') %>
|
||||
|
||||
<div class="bg-white dark:bg-gray-800 rounded-lg shadow-md p-6 mb-8">
|
||||
<div class="flex flex-wrap items-start justify-between gap-3 mb-2">
|
||||
@@ -43,7 +43,9 @@
|
||||
<% if (uebernommen && uebernommen.length) { %>
|
||||
<ul class="mt-4 space-y-4">
|
||||
<% uebernommen.forEach(function(j){ %>
|
||||
<li class="rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-700/40 px-4 py-4">
|
||||
<li class="rounded-lg border px-4 py-4 <%= j.favorit
|
||||
? 'border-amber-300 dark:border-amber-400/40 bg-amber-50/60 dark:bg-amber-500/5'
|
||||
: 'border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-700/40' %>">
|
||||
<div class="flex flex-wrap items-start justify-between gap-3">
|
||||
<div class="min-w-0 flex-1">
|
||||
<div class="flex flex-wrap items-center gap-2 mb-1">
|
||||
@@ -100,6 +102,7 @@
|
||||
|
||||
<!-- Actions -->
|
||||
<div class="shrink-0 flex flex-col gap-2 self-start">
|
||||
<%- include('partials/favorit-button', { j: j }) %>
|
||||
<% if (j.verknuepfte_bewerbung_id) { %>
|
||||
<a href="/bewerbung/<%= j.verknuepfte_bewerbung_id %>"
|
||||
class="inline-flex items-center justify-center gap-1.5 px-3 py-1.5 text-xs bg-blue-600 hover:bg-blue-700 text-white rounded-md transition-colors">
|
||||
|
||||
Reference in New Issue
Block a user