83 lines
4.0 KiB
HTML
83 lines
4.0 KiB
HTML
{% load static i18n widget_tweaks %}
|
|
|
|
<div class="p-4 bg-white rounded-xl shadow-sm border border-gray-200" id="reschedule-meeting-form">
|
|
<!-- Header -->
|
|
<div class="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4 mb-4">
|
|
<div>
|
|
<h5 class="text-lg font-bold flex items-center gap-2 mb-1" style="color: #9d2235;">
|
|
<i data-lucide="refresh-ccw" class="w-5 h-5"></i>
|
|
{% trans "Update Interview" %} for {{ candidate.name }}
|
|
</h5>
|
|
<p class="text-gray-600 text-sm mb-2">{% trans "Job" %}: {{ job.title }}</p>
|
|
{% if has_future_meeting %}
|
|
<div class="bg-blue-50 border border-blue-200 rounded-lg p-3 text-sm" role="alert">
|
|
<div class="flex items-start gap-2">
|
|
<i data-lucide="info" class="w-4 h-4 text-blue-600 flex-shrink-0 mt-0.5"></i>
|
|
<p class="text-blue-800 mb-0">{% trans "You are updating an existing meeting schedule." %}</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Form -->
|
|
<form method="post" id="updateMeeting" action="{% url 'reschedule_meeting_for_application' job.slug candidate.pk meeting.pk %}" class="space-y-4">
|
|
{% csrf_token %}
|
|
|
|
<!-- Topic -->
|
|
<div>
|
|
<label for="{{ form.topic.id_for_label }}" class="block text-sm font-semibold text-gray-700 mb-2">
|
|
{% trans "Meeting Topic" %}
|
|
</label>
|
|
{{ form.topic|add_class:"w-full px-4 py-3 border border-gray-200 rounded-xl text-sm focus:ring-2 focus:ring-temple-red/20 focus:border-temple-red outline-none transition" }}
|
|
{% for error in form.topic.errors %}
|
|
<div class="text-red-600 text-sm mt-1">{{ error }}</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-7 gap-4">
|
|
<!-- Start Time -->
|
|
<div class="md:col-span-4">
|
|
<label for="{{ form.start_time.id_for_label }}" class="block text-sm font-semibold text-gray-700 mb-2">
|
|
{% trans "Start Time" %} ({% trans "Date & Time" %})
|
|
</label>
|
|
{{ form.start_time|add_class:"w-full px-4 py-3 border border-gray-200 rounded-xl text-sm focus:ring-2 focus:ring-temple-red/20 focus:border-temple-red outline-none transition" }}
|
|
{% for error in form.start_time.errors %}
|
|
<div class="text-red-600 text-sm mt-1">{{ error }}</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
<!-- Duration -->
|
|
<div class="md:col-span-3">
|
|
<label for="{{ form.duration.id_for_label }}" class="block text-sm font-semibold text-gray-700 mb-2">
|
|
{% trans "Duration (minutes)" %}
|
|
</label>
|
|
{{ form.duration|add_class:"w-full px-4 py-3 border border-gray-200 rounded-xl text-sm focus:ring-2 focus:ring-temple-red/20 focus:border-temple-red outline-none transition" }}
|
|
{% for error in form.duration.errors %}
|
|
<div class="text-red-600 text-sm mt-1">{{ error }}</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
<hr class="border-gray-200 my-4">
|
|
|
|
<!-- Action Button -->
|
|
<div class="flex justify-end">
|
|
<button type="submit" class="inline-flex items-center gap-2 px-6 py-2.5 rounded-lg text-sm font-medium text-white transition-all duration-200"
|
|
style="background-color: #9d2235;"
|
|
onmouseover="this.style.backgroundColor='#7a1a29'"
|
|
onmouseout="this.style.backgroundColor='#9d2235'">
|
|
<i data-lucide="save" class="w-4 h-4"></i>
|
|
{% trans "Update Meeting" %}
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
if (typeof lucide !== 'undefined') {
|
|
lucide.createIcons();
|
|
}
|
|
});
|
|
</script> |