feat: enhance project management by canceling pending actions for archived and on_hold projects
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
{% if schedules %}
|
||||
{% for item in schedules %}
|
||||
<div class="bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4
|
||||
{% if not item.schedule.enabled %}opacity-60{% endif %}">
|
||||
{% if project_status == 'on_hold' or not item.schedule.enabled %}opacity-60{% endif %}">
|
||||
<div class="flex items-start justify-between gap-4">
|
||||
<div class="flex-1 min-w-0">
|
||||
<div class="flex items-center gap-3 mb-2">
|
||||
@@ -29,7 +29,15 @@
|
||||
{% endif %}
|
||||
|
||||
<!-- Status badge -->
|
||||
{% if item.schedule.enabled %}
|
||||
{% if project_status == 'on_hold' %}
|
||||
<span class="px-2 py-0.5 text-xs font-medium rounded-full bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400">
|
||||
On Hold
|
||||
</span>
|
||||
{% elif project_status == 'archived' %}
|
||||
<span class="px-2 py-0.5 text-xs font-medium rounded-full bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-400">
|
||||
Archived
|
||||
</span>
|
||||
{% elif item.schedule.enabled %}
|
||||
<span class="px-2 py-0.5 text-xs font-medium rounded-full bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-300">
|
||||
Active
|
||||
</span>
|
||||
@@ -98,7 +106,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Actions -->
|
||||
<!-- Actions (hidden when project is on hold or archived) -->
|
||||
{% if project_status not in ('on_hold', 'archived') %}
|
||||
<div class="flex items-center gap-2 flex-shrink-0">
|
||||
{% if item.schedule.enabled %}
|
||||
<button hx-post="/api/projects/{{ project_id }}/recurring-schedules/{{ item.schedule.id }}/disable"
|
||||
@@ -131,6 +140,7 @@
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
<!-- Actions for this date -->
|
||||
<div class="space-y-3 ml-13 pl-3 border-l-2 border-gray-200 dark:border-gray-700">
|
||||
{% for item in date_group.actions %}
|
||||
<div class="bg-white dark:bg-slate-800 border border-gray-200 dark:border-gray-700 rounded-lg p-4 hover:shadow-md transition-shadow">
|
||||
<div class="bg-white dark:bg-slate-800 border border-gray-200 dark:border-gray-700 rounded-lg p-4 hover:shadow-md transition-shadow
|
||||
{% if project_status == 'on_hold' and item.schedule.execution_status == 'pending' %}opacity-60{% endif %}">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div class="min-w-0 flex-1">
|
||||
<div class="flex items-center gap-3 mb-2">
|
||||
@@ -54,6 +55,11 @@
|
||||
<span class="px-2 py-0.5 text-xs font-medium bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-300 rounded-full">
|
||||
Pending
|
||||
</span>
|
||||
{% if project_status == 'on_hold' %}
|
||||
<span class="px-2 py-0.5 text-xs font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 rounded-full">
|
||||
On Hold
|
||||
</span>
|
||||
{% endif %}
|
||||
{% elif item.schedule.execution_status == 'completed' %}
|
||||
<span class="px-2 py-0.5 text-xs font-medium bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300 rounded-full">
|
||||
Completed
|
||||
@@ -157,7 +163,8 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<!-- Actions -->
|
||||
<!-- Actions (hidden when project is on hold or archived) -->
|
||||
{% if project_status not in ('on_hold', 'archived') %}
|
||||
<div class="flex items-center gap-2 flex-shrink-0">
|
||||
{% if item.schedule.execution_status == 'pending' %}
|
||||
<button onclick="executeSchedule('{{ item.schedule.id }}')"
|
||||
@@ -177,6 +184,7 @@
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
Reference in New Issue
Block a user