Files
khatibi/admin_panel/templates/admin_panel/_customer_info.html
T
2026-10-11 19:04:20 +03:30

145 lines
6.4 KiB
HTML

{% load custom_tags %}
{% comment %}
کارت پروفایل مشتری — ستون سمت راست صفحهٔ مشتری.
تک‌منبع (DRY): هم customerBase.html و هم customerBaseNew.html این را include می‌کنند
تا ساختار، استایل و اسکریپت ویرایش/شماره‌ها در همهٔ صفحات مشتری یکسان بماند.
شناسه‌های موردنیاز جاوااسکریپت:
#formcsEdit, #enEdit, #editCs, #cancelEdit, #del_customer, #showUserDT, #userDT
{% endcomment %}
<form action="{% url 'admin_panel:customerEdit' customer.id %}" id="formcsEdit" class="has-background-white brad5" method="post">
{% csrf_token %}
<div class="buttons m-0 level p-2 is-hidden-tablet">
<p class="level-item">{{ customer.name_family }}</p>
<span id="showUserDT" class="button level-item">مشاهده مشخصات</span>
</div>
<div id="userDT" class="is-hidden-mobile">
<div class="field column is-12-desktop is-12-mobile m-0">
<label class="label">نام ونام خانوادگی</label>
<div class="control">
<input required disabled value="{{ customer.name_family }}" name="an_name" class="input an_name" type="text" placeholder="نام نام خانوادگی">
</div>
</div>
<div class="field column is-12-desktop is-12-mobile m-0">
<label class="label">آدرس</label>
<div class="control">
<input disabled name="an_address" value="{{ customer.address }}" class="input an_address" type="text" placeholder="آدرس کامل">
</div>
</div>
{% include "./_customer_phones.html" with phones_editable=1 %}
<div class="field column is-12-desktop is-12-mobile m-0">
<label class="label">تاریخ نصب</label>
<div class="control">
<input disabled name="installDate" value="{{ customer.installDate | toJalali }}" id="persianDateP" class="input ss02 installDate" type="text" placeholder="مثل: 1400/06/01">
</div>
</div>
<div class="field column is-12-desktop is-12-mobile m-0">
<label class="label">کدشناسایی</label>
<div class="control">
<input disabled value="{{ customer.idCode }}" name="idnCode" class="input idnCode ss02" type="text" placeholder="">
</div>
</div>
<div class="field column is-12-desktop is-12-mobile m-0">
<label class="label">توضیحات</label>
<div class="control">
<textarea disabled name="notes" class="textarea ss02 an_notes" rows="4" placeholder="یادداشت آزاد">{{ customer.notes }}</textarea>
</div>
</div>
<div class="field column is-12-desktop is-12-mobile m-0">
<label class="label">لغو بازدید</label>
<div class="control">
<select name="laghv_bazdid" style="width: 100%" class="select" id="LaghvBazdid">
<option value="false" {% if not customer.laghv_bazdid %}selected{% endif %}>خیر</option>
<option value="true" {% if customer.laghv_bazdid %}selected{% endif %}>بله</option>
</select>
</div>
</div>
<div class="field column is-12-desktop is-12-mobile m-0">
{% if perms.admin_panel.DelCustomer %}
<span class="button is-danger" id="del_customer">حذف مشتری</span>
{% endif %}
<span class="button is-success" id="enEdit">ویرایش</span>
<span class="button is-light is-hidden" id="cancelEdit">انصراف</span>
<input class="button is-danger is-hidden" id="editCs" value="ثبت" type="submit">
</div>
</div>
</form>
<script>
// اسکریپت مشترک کارت پروفایل مشتری: ویرایش/انصراف، افزودن و حذف شماره،
// باز/بستن در موبایل و حذف مشتری. (یک‌بار bind می‌شود.)
(function () {
if (window.__customerInfoCardInit) { return; }
window.__customerInfoCardInit = true;
// --- ورود به حالت ویرایش ---
$(document).on('click', '#enEdit', function () {
$('#formcsEdit').find('input, textarea, select').prop('disabled', false);
$('#formcsEdit').find('.remove-phone-btn, .add-phone-btn').prop('disabled', false);
$('#enEdit').addClass('is-hidden');
$('#cancelEdit').removeClass('is-hidden');
$('#editCs').removeClass('is-hidden');
});
// --- انصراف: بارگذاری مجدد؛ تغییرات ذخیره‌نشده دور ریخته می‌شود ---
$(document).on('click', '#cancelEdit', function () {
window.location.reload();
});
// --- افزودن شماره (در حالت ویرایش) ---
$(document).on('click', '.add-phone-btn', function () {
var phoneRow = `
<div class="field has-addons mt-2 ss02">
<div class="control" style="width: 30%;">
<input name="phone_titles" class="input" type="text" placeholder="عنوان">
</div>
<div class="control is-expanded">
<input name="phones" class="input an_phone" type="text" placeholder="شمارهٔ تماس جدید">
</div>
<div class="control">
<button type="button" class="button is-danger remove-phone-btn">-</button>
</div>
</div>`;
$('#dynamic-phones-edit').append(phoneRow);
});
// --- حذف شماره (حداقل یک شماره باید بماند) ---
$(document).on('click', '.remove-phone-btn', function () {
if ($('#dynamic-phones-edit .field.has-addons').length > 1) {
$(this).closest('.field.has-addons').remove();
} else {
window.alert('حداقل یک شمارهٔ تماس باید وجود داشته باشد.');
}
});
// --- باز/بستن مشخصات در موبایل ---
$(document).on('click', '#showUserDT', function () {
var $btn = $(this);
if ($btn.text().trim() === 'مشاهده مشخصات') {
$btn.text('مخفی کردن');
$('#userDT').removeClass('is-hidden-mobile');
} else {
$btn.text('مشاهده مشخصات');
$('#userDT').addClass('is-hidden-mobile');
}
});
// --- حذف مشتری ---
$(document).on('click', '#del_customer', function () {
if (window.confirm('با حذف مشتری، تمام سوابق، فاکتورها و اطلاعات از سیستم حذف می‌شود، مطمئن هستید؟')) {
window.location.href = '/panel/customer/{{ customer.id }}/del';
}
});
})();
</script>