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(); }); });