jQuery(document).ready(function($) {
// مدیریت آپلود فایل
$('#attachments').on('change', function() {
var files = this.files;
var preview = $('#file-preview');
if (!preview.length) {
$(this).after('
');
preview = $('#file-preview');
}
preview.empty();
if (files.length > 10) {
alert('حداکثر میتوانید 10 فایل آپلود کنید.');
$(this).val('');
return;
}
var totalSize = 0;
for (var i = 0; i < files.length; i++) {
totalSize += files[i].size;
}
if (totalSize > 10 * 1024 * 1024) { // 10MB
alert('حجم کل فایلها نباید از 10 مگابایت بیشتر باشد.');
$(this).val('');
return;
}
// نمایش پیشنمایش فایلها
for (var i = 0; i < files.length; i++) {
var file = files[i];
var fileSize = formatFileSize(file.size);
preview.append(
'' +
'×' +
file.name + ' (' + fileSize + ')' +
'
'
);
}
// حذف فایل از لیست
$('.sadaf-file-preview .remove').on('click', function() {
var index = $(this).data('index');
var dt = new DataTransfer();
var input = document.getElementById('attachments');
for (var i = 0; i < files.length; i++) {
if (i !== index) {
dt.items.add(files[i]);
}
}
files = dt.files;
input.files = files;
$(this).parent().remove();
});
});
// تابع فرمتدهی اندازه فایل
function formatFileSize(bytes) {
if (bytes === 0) return '0 Bytes';
var k = 1024;
var sizes = ['Bytes', 'KB', 'MB', 'GB'];
var i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
}
// مدیریت تاریخ شمسی
if ($.fn.persianDatepicker) {
$('.persian-datepicker').persianDatepicker({
format: 'YYYY/MM/DD',
autoClose: true,
initialValue: false
});
}
// مدیریت نمونه فرمها
$('#sample_form').on('change', function() {
var formId = $(this).val();
if (formId) {
$.ajax({
url: sadaf_ajax.ajax_url,
type: 'POST',
data: {
action: 'sadaf_load_sample_form',
form_id: formId,
nonce: sadaf_ajax.nonce
},
beforeSend: function() {
$('#letter_content').val('در حال بارگذاری...');
},
success: function(response) {
if (response.success) {
$('#letter_content').val(response.data.form_text);
} else {
alert('خطا در بارگذاری فرم نمونه');
$('#letter_content').val('');
}
},
error: function() {
alert('خطا در ارتباط با سرور');
$('#letter_content').val('');
}
});
}
});
// اعتبارسنجی فرمها
$('form').on('submit', function(e) {
var required = $(this).find('[required]');
var valid = true;
required.each(function() {
if (!$(this).val().trim()) {
valid = false;
$(this).css('border-color', '#dc3545');
$(this).after('این فیلد الزامی است');
}
});
if (!valid) {
e.preventDefault();
alert('لطفاً تمامی فیلدهای الزامی را پر کنید.');
return false;
}
return true;
});
// حذف پیامهای خطا
$('input, select, textarea').on('input change', function() {
$(this).css('border-color', '');
$(this).next('.error').remove();
});
// مدیریت تایید/رد نامه
$('select[name="approval_action"]').on('change', function() {
if ($(this).val() === 'reject') {
$('#approval_comments').prop('required', true);
} else {
$('#approval_comments').prop('required', false);
}
});
// چاپ نامه
$('.print-letter').on('click', function() {
window.print();
});
});