improve bazdid 4
This commit is contained in:
1 parent
8fd881e0ea
commit
825f2a5973
13 files changed
+585
-15
No files matched your search
@@ -4,7 +4,7 @@
|
||||
|
||||
{% block BodyCustomer1 %}
|
||||
|
||||
{% include 'admin_panel/customerActionInc.html' %}
|
||||
{% include 'admin_panel/customerActionInc.html' with show_delete=True %}
|
||||
|
||||
<!--
|
||||
<div id="action" class="column is-12-mobile is-12-desktop ">
|
||||
|
||||
@@ -66,7 +66,8 @@
|
||||
customer_hold='{% if action.customer.visit_hold_until %}{{ action.customer.visit_hold_until|date:"c" }}{% endif %}'
|
||||
class="columns is-mobile is-multiline is-gapless actionBox {{ bgBox }}">
|
||||
<div class="column is-12-mobile is-12-desktop actionBoxDesc actionBoxOpenB">
|
||||
<div class="pr-4 pl-4 pb-4 pt-4">
|
||||
<div class="pr-4 pl-4 pb-4 pt-4 ax-cardrow">
|
||||
<span class="ax-cardrow-main">
|
||||
{% ifequal action.status 'finish' %}
|
||||
<img class="" style="width: 20px; height: 20px;" src="{% static 'admin_panel/icons/check.png' %}">
|
||||
{% endifequal %}
|
||||
@@ -81,6 +82,27 @@
|
||||
|
||||
<span class="is-bazdid">{% ifequal action.actionType 'nasb' %}نصب{% endifequal %}{% ifequal action.actionType 'bazdid' %}بازدید{% endifequal %}{% ifequal action.actionType 'vosol' %}وصول مطالبات{% endifequal %}{% ifequal action.actionType 'hamahangi' %}هماهنگی{% endifequal %}{% ifequal action.actionType 'inCall' %}تماس ورودی{% endifequal %}{% ifequal action.actionType 'outCall' %}تماس خروجی{% endifequal %}</span>
|
||||
<span class="pr-3">{{ action.desc }}</span>
|
||||
</span>
|
||||
{% if show_delete %}
|
||||
{% if action.nazarDT %}
|
||||
<span class="ax-del is-locked" title="این اقدام دارای نظرسنجی ثبتشده است و قابل حذف نیست">
|
||||
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 1a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-1V6a5 5 0 0 0-5-5zm-3 8V6a3 3 0 0 1 6 0v3H9z"/></svg>
|
||||
<span class="ax-del-text">نظرسنجی</span>
|
||||
</span>
|
||||
{% else %}
|
||||
<form method="post" class="ax-del-form"
|
||||
action="{% url 'admin_panel:customerActionDelete' action.customer.id action.id %}">
|
||||
{% csrf_token %}
|
||||
<button type="submit" class="ax-del is-danger"
|
||||
title="حذف این اقدام"
|
||||
data-type="{% ifequal action.actionType 'nasb' %}نصب{% endifequal %}{% ifequal action.actionType 'bazdid' %}بازدید{% endifequal %}{% ifequal action.actionType 'vosol' %}وصول مطالبات{% endifequal %}{% ifequal action.actionType 'hamahangi' %}هماهنگی{% endifequal %}{% ifequal action.actionType 'inCall' %}تماس ورودی{% endifequal %}{% ifequal action.actionType 'outCall' %}تماس خروجی{% endifequal %}"
|
||||
onclick="return confirm('این «' + (this.dataset.type || 'اقدام') + '» حذف شود؟\n\nاقدام از فهرست انتظار/وظایف خارج میشود و پیامک ارسالنشدهٔ مرتبط لغو میگردد. سابقه برای حسابرسی باقی میماند.');">
|
||||
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M9 3h6l1 2h4v2H4V5h4l1-2zm-3 6h12l-1 12a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L6 9zm4 3v8h2v-8h-2zm4 0v8h2v-8h-2z"/></svg>
|
||||
<span class="ax-del-text">حذف</span>
|
||||
</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="column is-12-mobile is-12-desktop actionBoxOpenB">
|
||||
@@ -166,6 +188,42 @@
|
||||
</div>
|
||||
|
||||
<style>
|
||||
/* ===== دکمهٔ «حذف» روی کارت اقدام (mobile first) ===== */
|
||||
.ax-cardrow {
|
||||
display: flex; align-items: flex-start; justify-content: space-between;
|
||||
gap: .5rem; flex-wrap: nowrap;
|
||||
}
|
||||
.ax-cardrow-main { flex: 1 1 auto; min-width: 0; }
|
||||
.ax-del-form { margin: 0; flex: 0 0 auto; }
|
||||
.ax-del {
|
||||
display: inline-flex; align-items: center; gap: .25rem;
|
||||
padding: .2rem .45rem; border-radius: .375rem; border: 1px solid #e5e7eb;
|
||||
background: #fff; color: #6b7280; font-size: .68rem; font-weight: 700;
|
||||
cursor: pointer; line-height: 1.5; white-space: nowrap;
|
||||
transition: background-color .15s ease, border-color .15s ease,
|
||||
color .15s ease, box-shadow .15s ease;
|
||||
}
|
||||
.ax-del svg { width: 13px; height: 13px; fill: currentColor; flex: 0 0 auto; }
|
||||
.ax-del:hover { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
|
||||
.ax-del:focus-visible {
|
||||
outline: 2px solid #fca5a5; outline-offset: 1px;
|
||||
}
|
||||
.ax-del.is-danger { border-color: #fee2e2; color: #dc2626; background: #fff; }
|
||||
.ax-del.is-danger:hover {
|
||||
background: #dc2626; border-color: #dc2626; color: #fff;
|
||||
box-shadow: 0 1px 6px rgba(220, 38, 38, .25);
|
||||
}
|
||||
/* «نظرسنجی دارد» ⇒ دکمه غیرفعال (قاعدهٔ محصولی) */
|
||||
.ax-del.is-locked {
|
||||
cursor: not-allowed; color: #9ca3af; background: #f9fafb;
|
||||
border-color: #e5e7eb;
|
||||
}
|
||||
.ax-del.is-locked:hover { background: #f9fafb; border-color: #e5e7eb; color: #9ca3af; }
|
||||
@media (max-width: 480px) {
|
||||
.ax-del-text { display: none; } /* در موبایل فقط آیکون، برای صرفهجویی فضا */
|
||||
.ax-del { padding: .25rem; }
|
||||
}
|
||||
|
||||
/* ===== مودال «ایجاد/ویرایش وظیفه» — mobile first =====
|
||||
همهٔ کلاسها با پیشوند ax- هستند تا با سایر بخشها تداخل نکنند. */
|
||||
#ActionBox .ax-card {
|
||||
@@ -473,6 +531,16 @@
|
||||
var holdAutoChecked = false;
|
||||
var holdConfirmed = false;
|
||||
|
||||
// لایهٔ دوم محافظت: فرم «حذف» داخل کارتِ قابلکلیک است؛ رویداد را همانجا
|
||||
// متوقف میکنیم تا به هندلرِ بازکردن مودالِ ویرایش نرسد.
|
||||
// بایند «مستقیم» (نه delegated) چون این بلوک با هر ردیف تکرار میشود؛
|
||||
// نامفضا (axdel) + off مانع از انباشتهشدن هندلرها روی ردیفهای تکراری میشود.
|
||||
$('.ax-del-form, .ax-del')
|
||||
.off('.axdel')
|
||||
.on('click.axdel mousedown.axdel', function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
// پیکر «تا تاریخ پیگیری نشود» را ریست میکند.
|
||||
// نکته: pDatepicker یک Model برمیگرداند؛ اگر سلکتور هیچ المانی پیدا نکند
|
||||
// مقدار undefined میشود. بدون این محافظ، یک ناهمخوانی نام کلاس باعث
|
||||
@@ -596,7 +664,12 @@
|
||||
showHoldConfirm();
|
||||
});
|
||||
|
||||
$(".actionBoxOpenB").click(function(){
|
||||
$(".actionBoxOpenB").click(function(event){
|
||||
// کلیک روی کنترلهای «حذف» نباید مودال ویرایش را باز کند.
|
||||
// (دکمه داخل کارت است و رویداد به والد بالا میرفت.)
|
||||
if ($(event.target).closest('.ax-del-form, .ax-del').length) {
|
||||
return;
|
||||
}
|
||||
isEditMode = true;
|
||||
$("#sabtBtn05").val("ویرایش");
|
||||
var actionEditUrl = "{% url 'admin_panel:customerEditAction' 1111 2222 %}";
|
||||
|
||||
Reference in new issue
Block a user