fix: translate status list in inbound and outbound mail pages

This commit is contained in:
Flatlogic Bot 2026-04-13 16:52:32 +00:00
parent 06c06718a0
commit bd29389176
6 changed files with 32 additions and 12 deletions

View File

@ -129,8 +129,8 @@ function getStatusBadge($mail) {
if (canView('reports')):
// Combine overdue counts from inbound and outbound
$overdue_count = 0;
$overdue_count += db()->query("SELECT COUNT(*) FROM inbound_mail WHERE due_date < CURDATE() AND status_id IN (SELECT id FROM mailbox_statuses WHERE name != 'closed')")->fetchColumn();
$overdue_count += db()->query("SELECT COUNT(*) FROM outbound_mail WHERE due_date < CURDATE() AND status_id IN (SELECT id FROM mailbox_statuses WHERE name != 'closed')")->fetchColumn();
$overdue_count += db()->query("SELECT COUNT(*) FROM inbound_mail WHERE due_date < CURDATE() AND status_id IN (SELECT id FROM mailbox_statuses WHERE name NOT IN ('closed', 'مكتمل', 'مؤرشف', 'مؤرشفة'))")->fetchColumn();
$overdue_count += db()->query("SELECT COUNT(*) FROM outbound_mail WHERE due_date < CURDATE() AND status_id IN (SELECT id FROM mailbox_statuses WHERE name NOT IN ('closed', 'مكتمل', 'مؤرشف', 'مؤرشفة'))")->fetchColumn();
if ($overdue_count > 0):
?>
@ -243,7 +243,7 @@ endif;
<td>
<small class="text-muted d-block">الموعد النهائي</small>
<?php if ($mail['due_date']): ?>
<span class="<?= (strtotime($mail['due_date']) < time() && $mail['status_name'] != 'closed') ? 'text-danger fw-bold' : '' ?>">
<span class="<?= (strtotime($mail['due_date']) < time() && !in_array($mail['status_name'], ['closed', 'مكتمل', 'مؤرشف', 'مؤرشفة'])) ? 'text-danger fw-bold' : '' ?>">
<?= $mail['due_date'] ?>
</span>
<?php else: ?>
@ -304,7 +304,7 @@ endif;
<td><?= htmlspecialchars($mail['subject'] ?? '') ?></td>
<td>
<?php if ($mail['due_date']): ?>
<small class="<?= (strtotime($mail['due_date']) < time() && $mail['status_name'] != 'closed') ? 'text-danger fw-bold' : 'text-muted' ?>">
<small class="<?= (strtotime($mail['due_date']) < time() && !in_array($mail['status_name'], ['closed', 'مكتمل', 'مؤرشف', 'مؤرشفة'])) ? 'text-danger fw-bold' : 'text-muted' ?>">
<?= $mail['due_date'] ?>
</small>
<?php else: ?>

View File

@ -77,7 +77,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
$total_stmt = db()->query("SELECT COUNT(*) FROM inbound_mail");
$total_inbound = $total_stmt->fetchColumn();
$pending_stmt = db()->prepare("SELECT COUNT(*) FROM inbound_mail WHERE status_id IN (SELECT id FROM mailbox_statuses WHERE is_default = 1 OR name LIKE '%قيد%')");
$pending_stmt = db()->prepare("SELECT COUNT(*) FROM inbound_mail WHERE status_id IN (SELECT id FROM mailbox_statuses WHERE is_default = 1 OR name LIKE '%قيد%' OR name = 'in_progress')");
$pending_stmt->execute();
$pending_inbound = $pending_stmt->fetchColumn();
@ -125,8 +125,18 @@ $query = "SELECT m.*, s.name as status_name, s.color as status_color, u.full_nam
$stmt = db()->prepare($query);
$stmt->execute($params);
$mails = $stmt->fetchAll();
foreach ($mails as &$mail) {
if ($mail['status_name'] == 'received') $mail['status_name'] = 'تم الاستلام';
if ($mail['status_name'] == 'in_progress') $mail['status_name'] = 'قيد المعالجة';
if ($mail['status_name'] == 'closed') $mail['status_name'] = 'مكتمل';
} unset($mail);
$statuses = db()->query("SELECT * FROM mailbox_statuses ORDER BY id ASC")->fetchAll();
foreach ($statuses as &$s) {
if ($s['name'] == 'received') $s['name'] = 'تم الاستلام';
if ($s['name'] == 'in_progress') $s['name'] = 'قيد المعالجة';
if ($s['name'] == 'closed') $s['name'] = 'مكتمل';
} unset($s);
$users = db()->query("SELECT id, full_name, username FROM users ORDER BY full_name ASC")->fetchAll();
$default_status_id = db()->query("SELECT id FROM mailbox_statuses WHERE is_default = 1 LIMIT 1")->fetchColumn() ?: ($statuses[0]['id'] ?? null);

View File

@ -77,7 +77,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
$total_stmt = db()->query("SELECT COUNT(*) FROM outbound_mail");
$total_outbound = $total_stmt->fetchColumn();
$completed_stmt = db()->prepare("SELECT COUNT(*) FROM outbound_mail WHERE status_id IN (SELECT id FROM mailbox_statuses WHERE name LIKE '%مكتمل%' OR name LIKE '%منتهي%')");
$completed_stmt = db()->prepare("SELECT COUNT(*) FROM outbound_mail WHERE status_id IN (SELECT id FROM mailbox_statuses WHERE name LIKE '%مكتمل%' OR name LIKE '%منتهي%' OR name = 'closed')");
$completed_stmt->execute();
$completed_outbound = $completed_stmt->fetchColumn();
@ -121,8 +121,18 @@ $query = "SELECT m.*, s.name as status_name, s.color as status_color, u.full_nam
$stmt = db()->prepare($query);
$stmt->execute($params);
$mails = $stmt->fetchAll();
foreach ($mails as &$mail) {
if ($mail['status_name'] == 'received') $mail['status_name'] = 'مرسلة';
if ($mail['status_name'] == 'in_progress') $mail['status_name'] = 'قيد المعالجة';
if ($mail['status_name'] == 'closed') $mail['status_name'] = 'مكتمل';
} unset($mail);
$statuses = db()->query("SELECT * FROM mailbox_statuses ORDER BY id ASC")->fetchAll();
foreach ($statuses as &$s) {
if ($s['name'] == 'received') $s['name'] = 'مرسلة';
if ($s['name'] == 'in_progress') $s['name'] = 'قيد المعالجة';
if ($s['name'] == 'closed') $s['name'] = 'مكتمل';
} unset($s);
$users = db()->query("SELECT id, full_name, username FROM users ORDER BY full_name ASC")->fetchAll();
$default_status_id = db()->query("SELECT id FROM mailbox_statuses WHERE is_default = 1 LIMIT 1")->fetchColumn() ?: ($statuses[0]['id'] ?? null);

View File

@ -12,7 +12,7 @@ $overdue_items = [];
$queries = [];
if (!$type_filter || $type_filter === 'inbound') {
$where = ["m.due_date < CURDATE()", "s.name != 'closed'"];
$where = ["m.due_date < CURDATE()", "s.name NOT IN ('closed', 'مكتمل', 'مؤرشف', 'مؤرشفة')"];
$params = [];
if ($user_filter) {
$where[] = "m.assigned_to = ?";
@ -30,7 +30,7 @@ if (!$type_filter || $type_filter === 'inbound') {
}
if (!$type_filter || $type_filter === 'outbound') {
$where = ["m.due_date < CURDATE()", "s.name != 'closed'"];
$where = ["m.due_date < CURDATE()", "s.name NOT IN ('closed', 'مكتمل', 'مؤرشف', 'مؤرشفة')"];
$params = [];
if ($user_filter) {
$where[] = "m.assigned_to = ?";

View File

@ -22,7 +22,7 @@ foreach (['inbound', 'outbound', 'internal'] as $t) {
$stmt->execute([$user_id]);
$my_total_assignments += $stmt->fetchColumn();
$stmt = db()->prepare("SELECT COUNT(*) FROM $table WHERE assigned_to = ? AND status_id IN (SELECT id FROM mailbox_statuses WHERE name != 'closed')");
$stmt = db()->prepare("SELECT COUNT(*) FROM $table WHERE assigned_to = ? AND status_id IN (SELECT id FROM mailbox_statuses WHERE name NOT IN ('closed', 'مكتمل', 'مؤرشف', 'مؤرشفة'))");
$stmt->execute([$user_id]);
$my_pending_tasks += $stmt->fetchColumn();
}
@ -260,7 +260,7 @@ function getStatusBadge($mail) {
<td><?= htmlspecialchars($mail['subject'] ?? '') ?></td>
<td>
<?php if ($mail['due_date']): ?>
<small class="<?= (strtotime($mail['due_date']) < time() && $mail['status_name'] != 'closed') ? 'text-danger fw-bold' : 'text-muted' ?>">
<small class="<?= (strtotime($mail['due_date']) < time() && !in_array($mail['status_name'], ['closed', 'مكتمل', 'مؤرشف', 'مؤرشفة'])) ? 'text-danger fw-bold' : 'text-muted' ?>">
<?= $mail['due_date'] ?>
</small>
<?php else: ?>

View File

@ -249,9 +249,9 @@ if ($type == 'internal') {
<label class="text-muted small">الموعد النهائي</label>
<p class="fw-bold">
<?php if ($mail['due_date']): ?>
<span class="<?= (strtotime($mail['due_date']) < time() && $mail['status_name'] != 'closed') ? 'text-danger' : '' ?>">
<span class="<?= (strtotime($mail['due_date']) < time() && !in_array($mail['status_name'], ['closed', 'مكتمل', 'مؤرشف', 'مؤرشفة'])) ? 'text-danger' : '' ?>">
<?= $mail['due_date'] ?>
<?php if (strtotime($mail['due_date']) < time() && $mail['status_name'] != 'closed'): ?>
<?php if (strtotime($mail['due_date']) < time() && !in_array($mail['status_name'], ['closed', 'مكتمل', 'مؤرشف', 'مؤرشفة'])): ?>
<i class="fas fa-exclamation-triangle ms-1"></i>
<?php endif; ?>
</span>