update departments

This commit is contained in:
Flatlogic Bot 2026-03-23 02:09:49 +00:00
parent 5f99108a0d
commit 0690a23bb7
2 changed files with 94 additions and 4 deletions

View File

@ -269,11 +269,21 @@ if (isset($_GET['ajax_search'])) {
<div class="modal-body p-4"> <div class="modal-body p-4">
<div class="mb-3"> <div class="mb-3">
<label class="form-label"><?php echo __('name_en'); ?> <span class="text-danger">*</span></label> <label class="form-label"><?php echo __('name_en'); ?> <span class="text-danger">*</span></label>
<input type="text" class="form-control" name="name_en" id="deptNameEn" required> <div class="input-group">
<input type="text" class="form-control" name="name_en" id="deptNameEn" required>
<button type="button" class="btn btn-outline-secondary" onclick="translateDepartment('en', 'ar')" title="<?php echo __('auto_translate'); ?>">
<i class="bi bi-translate"></i>
</button>
</div>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label class="form-label"><?php echo __('name_ar'); ?> <span class="text-danger">*</span></label> <label class="form-label"><?php echo __('name_ar'); ?> <span class="text-danger">*</span></label>
<input type="text" class="form-control" name="name_ar" id="deptNameAr" required> <div class="input-group">
<input type="text" class="form-control" name="name_ar" id="deptNameAr" required>
<button type="button" class="btn btn-outline-secondary" onclick="translateDepartment('ar', 'en')" title="<?php echo __('auto_translate'); ?>">
<i class="bi bi-translate"></i>
</button>
</div>
</div> </div>
<div class="mb-3 form-check"> <div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" name="show_in_queue" id="deptShowInQueue" value="1" checked> <input type="checkbox" class="form-check-input" name="show_in_queue" id="deptShowInQueue" value="1" checked>
@ -405,4 +415,39 @@ function showDeleteDepartmentModal(id) {
var modal = new bootstrap.Modal(document.getElementById('deleteDepartmentModal')); var modal = new bootstrap.Modal(document.getElementById('deleteDepartmentModal'));
modal.show(); modal.show();
} }
async function translateDepartment(source, target) {
const text = document.getElementById(source === 'en' ? 'deptNameEn' : 'deptNameAr').value;
if (!text) return;
const btn = event.currentTarget;
const originalContent = btn.innerHTML;
btn.disabled = true;
btn.innerHTML = '<span class="spinner-border spinner-border-sm"></span>';
try {
const response = await fetch('api/ai_report.php', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
target: 'translate',
text: text,
from: source === 'en' ? 'English' : 'Arabic',
to: target === 'en' ? 'English' : 'Arabic'
})
});
const data = await response.json();
if (data.success) {
document.getElementById(target === 'en' ? 'deptNameEn' : 'deptNameAr').value = data.report;
} else {
alert('Translation failed: ' + (data.error || 'Unknown error'));
}
} catch (e) {
console.error(e);
alert('Network error');
} finally {
btn.disabled = false;
btn.innerHTML = originalContent;
}
}
</script> </script>

View File

@ -257,11 +257,21 @@ if (isset($_GET['ajax_search'])) {
<div class="modal-body p-4"> <div class="modal-body p-4">
<div class="mb-3"> <div class="mb-3">
<label class="form-label"><?php echo __('name_en'); ?> <span class="text-danger">*</span></label> <label class="form-label"><?php echo __('name_en'); ?> <span class="text-danger">*</span></label>
<input type="text" class="form-control" name="name_en" id="positionNameEn" required> <div class="input-group">
<input type="text" class="form-control" name="name_en" id="positionNameEn" required>
<button type="button" class="btn btn-outline-secondary" onclick="translatePosition('en', 'ar')" title="<?php echo __('auto_translate'); ?>">
<i class="bi bi-translate"></i>
</button>
</div>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label class="form-label"><?php echo __('name_ar'); ?> <span class="text-danger">*</span></label> <label class="form-label"><?php echo __('name_ar'); ?> <span class="text-danger">*</span></label>
<input type="text" class="form-control" name="name_ar" id="positionNameAr" required> <div class="input-group">
<input type="text" class="form-control" name="name_ar" id="positionNameAr" required>
<button type="button" class="btn btn-outline-secondary" onclick="translatePosition('ar', 'en')" title="<?php echo __('auto_translate'); ?>">
<i class="bi bi-translate"></i>
</button>
</div>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label class="form-label"><?php echo __('description_en'); ?></label> <label class="form-label"><?php echo __('description_en'); ?></label>
@ -399,4 +409,39 @@ function showDeletePositionModal(id) {
var modal = new bootstrap.Modal(document.getElementById('deletePositionModal')); var modal = new bootstrap.Modal(document.getElementById('deletePositionModal'));
modal.show(); modal.show();
} }
async function translatePosition(source, target) {
const text = document.getElementById(source === 'en' ? 'positionNameEn' : 'positionNameAr').value;
if (!text) return;
const btn = event.currentTarget;
const originalContent = btn.innerHTML;
btn.disabled = true;
btn.innerHTML = '<span class="spinner-border spinner-border-sm"></span>';
try {
const response = await fetch('api/ai_report.php', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
target: 'translate',
text: text,
from: source === 'en' ? 'English' : 'Arabic',
to: target === 'en' ? 'English' : 'Arabic'
})
});
const data = await response.json();
if (data.success) {
document.getElementById(target === 'en' ? 'positionNameEn' : 'positionNameAr').value = data.report;
} else {
alert('Translation failed: ' + (data.error || 'Unknown error'));
}
} catch (e) {
console.error(e);
alert('Network error');
} finally {
btn.disabled = false;
btn.innerHTML = originalContent;
}
}
</script> </script>