Files
fln-django-template/templates/pages/form copy.html
2026-03-01 07:03:16 +07:00

202 lines
11 KiB
HTML

{% extends 'base.html' %}
{% load static custom_filters %}
{% block content %}
<div class="row">
<div class="col-12 mb-4">
<div class="tab-content">
<div class="tab-pane fade show active" id="tabs-1" role="tabpanel">
<div class="card shadow-lg border-0">
<div class="card-body p-5">
<div class="d-flex justify-content-between align-items-center border-bottom pb-2 mb-4">
<h6 class="fw-bold mb-0">
{{ card_title_second }}
</h6>
</div>
{% if form_readonly %}
<div class="row g-4">
{% for field in form_readonly %}
<div class="col-12 col-md-6">
<label class="form-label fw-semibold">
{{ field.label|title }}
</label>
<p class="form-control-plaintext border-bottom">
{{ field }}
</p>
</div>
{% endfor %}
</div>
<hr class="my-5">
{% endif %}
<form method="post" id="main-form" enctype="multipart/form-data">
{% csrf_token %}
<div class="row g-4">
{% if reject_reason %}
{{ reject_reason }}
{% endif %}
{% for field in form %}
<div class="col-12 col-md-6">
{% if field.name == 'file' %}
<label for="{{ field.label }}" class="form-label fw-semibold">
{{ field.label|title }}
</label>
<div class="file-input-wrapper">
{{ field }}
{# <input type="hidden" name="delete_existing_file" id="delete_existing_file" value="false"> #}
<label for="id_attachments" class="file-input-label">
<i class="bi bi-cloud-arrow-up"></i>
<div class="file-input-text">
<span>Click or drag to upload files</span>
{% if field.help_text %}
<div class="form-text">
{{ field.help_text }}
</div>
{% endif %}
</div>
</label>
</div>
<div id="file_preview_container" class="file-preview" style="{% if form.instance.file %}display: block;{% else %}display: none;{% endif %}">
{% if form.instance.file %}
<div class="file-item" id="existing-file-{{ form.instance.pk }}">
<div class="file-info d-flex align-items-center p-2">
<div class="icon-wrapper rounded-circle bg-dark bg-opacity-10 d-flex justify-content-center align-items-center"
data-extension="{{ form.instance.file.name|slice:'-3:' }}">
<!-- Icon akan di-generate lewat JS -->
</div>
<div class="file-details">
<div class="file-name fw-bold">{{ form.instance.file.name|cut:"dms/" }}</div>
<div class="file-size text-muted small">
{{ form.instance.file.size|filesizeformat }} (Uploaded)
</div>
</div>
</div>
{% comment %}
<button type="button" class="file-remove" onclick="showDeleteConfirmation('id_attachments', 'file_preview_container', 0)">
<i class="bi bi-x"></i>
</button>
{% endcomment %}
</div>
{% endif %}
</div>
<div class="form-text ms-1">
You can attach any relevant supporting documents here.
</div>
{% else %}
<label for="{{ field.label }}" class="form-label fw-semibold">
{{ field.label|title }}
</label>
{{ field }}
{% if field.help_text %}
<div class="form-text ms-1">
{{ field.help_text }}
</div>
{% endif %}
{% if field.errors %}
<div class="form-text text-danger ms-1">
{{ field.errors }}
</div>
{% endif %}
{% endif %}
</div>
{% endfor %}
{{ form.errors }}
</div>
<hr class="my-5">
<div class="d-flex justify-content-end">
{{ cancel_btn|safe }}
<button class="btn btn-primary btn-new-size" type="submit">Save</button>
</div>
</form>
</div>
</div>
</div>
<div class="tab-pane fade" id="tabs-2" role="tabpanel">
<div class="card shadow-lg border-0">
<div class="card-body p-5">
<div class="d-flex justify-content-between align-items-center border-bottom pb-2 mb-4">
<h6 class="fw-bold mb-0">
{{ tab_2|plural }}
</h6>
</div>
<div class="table-responsive">
<table class="table table-hover table-bordered tableDatatables w-100">
<thead>
<tr>
<th>No.</th>
{% for key, value in fields.items %}
<th>{{ value }}</th>
{% endfor %}
<th>Action</th>
</tr>
</thead>
<tbody>
{% for item in items %}
<tr>
<td>{{ forloop.counter }}</td>
{% for field in fields %}
<td>{{ item|get_field_value:field|safe }}</td>
{% endfor %}
<td>
{% if item.buttons_action %}
<button type="button" class="btn btn-warning btn-new-size dropdown-toggle" data-bs-toggle="collapse" data-bs-target="#act-{{ item.id }}">Options </button>
<div id="act-{{ item.id }}" class="collapse mt-1">
{% for value in item.buttons_action %}
{{ value|safe }}
{% endfor %}
</div>
{% else %}--{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% block scripts %}
<script>
$(document).ready(function () {
$('.select2-multiple').select2({
theme: 'bootstrap-5',
allowClear: true,
width: '100%',
{% if document_ajax %}
ajax: {
url: "{{ document_ajax }}",
data: params => ({ term: params.term }),
processResults: data => ({ results: data.results }),
cache: true, // Jika user mengetik kata yang sama, tidak akan request ke server lagi, hasil lama langsung dipakai.
}
{% endif %}
});
$('.select2-tags').select2({
theme: 'bootstrap-5',
tags: true,
// tokenSeparators: [',', ' '],
allowClear: true,
width: '100%',
{% if tag_ajax %}
ajax: {
url: "{{ tag_ajax }}",
data: params => ({ term: params.term }),
processResults: data => ({ results: data.results }),
cache: true, // Jika user mengetik kata yang sama, tidak akan request ke server lagi, hasil lama langsung dipakai.
}
{% endif %}
});
});
</script>
{% endblock scripts %}
{% endblock content %}