Dashboard and translation improvements

This commit is contained in:
Pinga 2025-03-17 11:39:25 +02:00
parent eb4a83fee7
commit 6c3cd2c69f
12 changed files with 394 additions and 16 deletions

View file

@ -48,8 +48,10 @@ class HomeController extends Controller
if ($clid !== null) { if ($clid !== null) {
$domains = $db->selectValue('SELECT count(id) as domains FROM domain WHERE clid = ?', [$clid]); $domains = $db->selectValue('SELECT count(id) as domains FROM domain WHERE clid = ?', [$clid]);
$latest_domains = $db->select('SELECT name, crdate FROM domain WHERE clid = ? ORDER BY crdate DESC LIMIT 10', [$clid]); $latest_domains = $db->select('SELECT name, crdate FROM domain WHERE clid = ? ORDER BY crdate DESC LIMIT 5', [$clid]);
$tickets = $db->select('SELECT id, subject, status, priority FROM support_tickets WHERE user_id = ? ORDER BY date_created DESC LIMIT 10', [$clid]); $expiring_domains = $db->select('SELECT name, exdate FROM domain WHERE clid = ? AND exdate BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 30 DAY) ORDER BY exdate ASC LIMIT 5;', [$clid]);
$expired_domains = $db->select('SELECT name, exdate FROM domain WHERE clid = ? AND exdate BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE() ORDER BY exdate DESC LIMIT 5;', [$clid]);
$tickets = $db->select('SELECT id, subject, status, priority FROM support_tickets WHERE user_id = ? ORDER BY date_created DESC LIMIT 5', [$clid]);
$hosts = $db->selectValue('SELECT count(id) as hosts FROM host WHERE clid = ?', [$clid]); $hosts = $db->selectValue('SELECT count(id) as hosts FROM host WHERE clid = ?', [$clid]);
$contacts = $db->selectValue('SELECT count(id) as contacts FROM contact WHERE clid = ?', [$clid]); $contacts = $db->selectValue('SELECT count(id) as contacts FROM contact WHERE clid = ?', [$clid]);
@ -58,6 +60,8 @@ class HomeController extends Controller
'hosts' => $hosts, 'hosts' => $hosts,
'contacts' => $contacts, 'contacts' => $contacts,
'latest_domains' => $latest_domains, 'latest_domains' => $latest_domains,
'expiring_domains' => $expiring_domains,
'expired_domains' => $expired_domains,
'tickets' => $tickets, 'tickets' => $tickets,
]); ]);
} else { } else {
@ -162,8 +166,10 @@ class HomeController extends Controller
} }
$domains = $db->selectValue('SELECT count(id) as domains FROM domain'); $domains = $db->selectValue('SELECT count(id) as domains FROM domain');
$latest_domains = $db->select('SELECT name, crdate FROM domain ORDER BY crdate DESC LIMIT 10'); $latest_domains = $db->select('SELECT name, crdate FROM domain ORDER BY crdate DESC LIMIT 5');
$tickets = $db->select('SELECT id, subject, status, priority FROM support_tickets ORDER BY date_created DESC LIMIT 10'); $expiring_domains = $db->select('SELECT name, exdate FROM domain WHERE exdate BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 30 DAY) ORDER BY exdate ASC LIMIT 5;');
$expired_domains = $db->select('SELECT name, exdate FROM domain WHERE exdate BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE() ORDER BY exdate DESC LIMIT 5;');
$tickets = $db->select('SELECT id, subject, status, priority FROM support_tickets ORDER BY date_created DESC LIMIT 5');
$hosts = $db->selectValue('SELECT count(id) as hosts FROM host'); $hosts = $db->selectValue('SELECT count(id) as hosts FROM host');
$contacts = $db->selectValue('SELECT count(id) as contacts FROM contact'); $contacts = $db->selectValue('SELECT count(id) as contacts FROM contact');
$registrars = $db->selectValue('SELECT count(id) as registrars FROM registrar'); $registrars = $db->selectValue('SELECT count(id) as registrars FROM registrar');
@ -174,6 +180,8 @@ class HomeController extends Controller
'contacts' => $contacts, 'contacts' => $contacts,
'registrars' => $registrars, 'registrars' => $registrars,
'latest_domains' => $latest_domains, 'latest_domains' => $latest_domains,
'expiring_domains' => $expiring_domains,
'expired_domains' => $expired_domains,
'tickets' => $tickets, 'tickets' => $tickets,
'dates' => json_encode($dates), 'dates' => json_encode($dates),
'counts' => json_encode($counts), 'counts' => json_encode($counts),

View file

@ -1658,4 +1658,43 @@ msgid "Choose Contact to Assign"
msgstr "اختر جهة اتصال للتعيين" msgstr "اختر جهة اتصال للتعيين"
msgid "Assign Contact" msgid "Assign Contact"
msgstr "تعيين جهة الاتصال" msgstr "تعيين جهة الاتصال"
msgid "Expiring Domains"
msgstr "المجالات التي ستنتهي صلاحيتها"
msgid "Expired Domains"
msgstr "المجالات المنتهية الصلاحية"
msgid "WebAuthn is currently disabled for this installation. To enable WebAuthn authentication, please contact the registry administrator."
msgstr "WebAuthn معطل حاليًا لهذا التثبيت. لتمكين المصادقة عبر WebAuthn، يرجى الاتصال بمسؤول السجل."
msgid "Security"
msgstr "الأمان"
msgid "If you\ve logged in on multiple devices or browsers and want to ensure your account remains secure, you can log out from all other sessions except this one. This will end access from any other logged-in devices."
msgstr "إذا قمت بتسجيل الدخول على عدة أجهزة أو متصفحات وتريد ضمان أمان حسابك، يمكنك تسجيل الخروج من جميع الجلسات الأخرى باستثناء هذه الجلسة. سيؤدي ذلك إلى إنهاء الوصول من أي أجهزة أخرى تم تسجيل الدخول إليها."
msgid "Log Out from All Devices"
msgstr "تسجيل الخروج من جميع الأجهزة"
msgid "Port 43 WHOIS Queries"
msgstr "استعلامات WHOIS على المنفذ 43"
msgid "Web WHOIS Queries"
msgstr "استعلامات WHOIS عبر الويب"
msgid "Enable DNSSEC"
msgstr "تمكين DNSSEC"
msgid "DNSSEC Mode"
msgstr "وضع DNSSEC"
msgid "DNSSEC Details"
msgstr "تفاصيل DNSSEC"
msgid "Export IDN Table"
msgstr "تصدير جدول IDN"
msgid "Published"
msgstr "منشور"

View file

@ -1661,4 +1661,43 @@ msgid "Choose Contact to Assign"
msgstr "Choose Contact to Assign" msgstr "Choose Contact to Assign"
msgid "Assign Contact" msgid "Assign Contact"
msgstr "Assign Contact" msgstr "Assign Contact"
msgid "Expiring Domains"
msgstr "Expiring Domains"
msgid "Expired Domains"
msgstr "Expired Domains"
msgid "WebAuthn is currently disabled for this installation. To enable WebAuthn authentication, please contact the registry administrator."
msgstr "WebAuthn is currently disabled for this installation. To enable WebAuthn authentication, please contact the registry administrator."
msgid "Security"
msgstr "Security"
msgid "If you\ve logged in on multiple devices or browsers and want to ensure your account remains secure, you can log out from all other sessions except this one. This will end access from any other logged-in devices."
msgstr "If you\ve logged in on multiple devices or browsers and want to ensure your account remains secure, you can log out from all other sessions except this one. This will end access from any other logged-in devices."
msgid "Log Out from All Devices"
msgstr "Log Out from All Devices"
msgid "Port 43 WHOIS Queries"
msgstr "Port 43 WHOIS Queries"
msgid "Web WHOIS Queries"
msgstr "Web WHOIS Queries"
msgid "Enable DNSSEC"
msgstr "Enable DNSSEC"
msgid "DNSSEC Mode"
msgstr "DNSSEC Mode"
msgid "DNSSEC Details"
msgstr "DNSSEC Details"
msgid "Export IDN Table"
msgstr "Export IDN Table"
msgid "Published"
msgstr "Published"

View file

@ -1661,4 +1661,43 @@ msgid "Choose Contact to Assign"
msgstr "Elija un contacto para asignar" msgstr "Elija un contacto para asignar"
msgid "Assign Contact" msgid "Assign Contact"
msgstr "Asignar contacto" msgstr "Asignar contacto"
msgid "Expiring Domains"
msgstr "Dominios por expirar"
msgid "Expired Domains"
msgstr "Dominios expirados"
msgid "WebAuthn is currently disabled for this installation. To enable WebAuthn authentication, please contact the registry administrator."
msgstr "WebAuthn está actualmente deshabilitado para esta instalación. Para habilitar la autenticación WebAuthn, por favor contacte al administrador del registro."
msgid "Security"
msgstr "Seguridad"
msgid "If you\ve logged in on multiple devices or browsers and want to ensure your account remains secure, you can log out from all other sessions except this one. This will end access from any other logged-in devices."
msgstr "Si has iniciado sesión en múltiples dispositivos o navegadores y quieres asegurar la seguridad de tu cuenta, puedes cerrar sesión en todas las demás sesiones excepto esta. Esto finalizará el acceso desde cualquier otro dispositivo conectado."
msgid "Log Out from All Devices"
msgstr "Cerrar sesión en todos los dispositivos"
msgid "Port 43 WHOIS Queries"
msgstr "Consultas WHOIS en el puerto 43"
msgid "Web WHOIS Queries"
msgstr "Consultas WHOIS en la web"
msgid "Enable DNSSEC"
msgstr "Habilitar DNSSEC"
msgid "DNSSEC Mode"
msgstr "Modo DNSSEC"
msgid "DNSSEC Details"
msgstr "Detalles de DNSSEC"
msgid "Export IDN Table"
msgstr "Exportar tabla IDN"
msgid "Published"
msgstr "Publicado"

View file

@ -1661,4 +1661,43 @@ msgid "Choose Contact to Assign"
msgstr "Choisissez un contact à attribuer" msgstr "Choisissez un contact à attribuer"
msgid "Assign Contact" msgid "Assign Contact"
msgstr "Attribuer un contact" msgstr "Attribuer un contact"
msgid "Expiring Domains"
msgstr "Domaines expirant"
msgid "Expired Domains"
msgstr "Domaines expirés"
msgid "WebAuthn is currently disabled for this installation. To enable WebAuthn authentication, please contact the registry administrator."
msgstr "WebAuthn est actuellement désactivé pour cette installation. Pour activer lauthentification WebAuthn, veuillez contacter ladministrateur du registre."
msgid "Security"
msgstr "Sécurité"
msgid "If you\ve logged in on multiple devices or browsers and want to ensure your account remains secure, you can log out from all other sessions except this one. This will end access from any other logged-in devices."
msgstr "Si vous vous êtes connecté sur plusieurs appareils ou navigateurs et que vous souhaitez assurer la sécurité de votre compte, vous pouvez vous déconnecter de toutes les autres sessions sauf celle-ci. Cela mettra fin à l'accès depuis tous les autres appareils connectés."
msgid "Log Out from All Devices"
msgstr "Se déconnecter de tous les appareils"
msgid "Port 43 WHOIS Queries"
msgstr "Requêtes WHOIS sur le port 43"
msgid "Web WHOIS Queries"
msgstr "Requêtes WHOIS sur le Web"
msgid "Enable DNSSEC"
msgstr "Activer DNSSEC"
msgid "DNSSEC Mode"
msgstr "Mode DNSSEC"
msgid "DNSSEC Details"
msgstr "Détails DNSSEC"
msgid "Export IDN Table"
msgstr "Exporter le tableau IDN"
msgid "Published"
msgstr "Publié"

View file

@ -1662,3 +1662,42 @@ msgstr "割り当てる連絡先を選択"
msgid "Assign Contact" msgid "Assign Contact"
msgstr "連絡先を割り当てる" msgstr "連絡先を割り当てる"
msgid "Expiring Domains"
msgstr "期限切れ間近のドメイン"
msgid "Expired Domains"
msgstr "期限切れのドメイン"
msgid "WebAuthn is currently disabled for this installation. To enable WebAuthn authentication, please contact the registry administrator."
msgstr "このインストールではWebAuthnが無効になっています。WebAuthn認証を有効にするには、レジストリ管理者に連絡してください。"
msgid "Security"
msgstr "セキュリティ"
msgid "If you\ve logged in on multiple devices or browsers and want to ensure your account remains secure, you can log out from all other sessions except this one. This will end access from any other logged-in devices."
msgstr "複数のデバイスやブラウザでログインしている場合、アカウントのセキュリティを確保するために、このセッションを除くすべてのセッションからログアウトできます。これにより、他のログイン済みデバイスからのアクセスが終了します。"
msgid "Log Out from All Devices"
msgstr "すべてのデバイスからログアウト"
msgid "Port 43 WHOIS Queries"
msgstr "ポート43のWHOISクエリ"
msgid "Web WHOIS Queries"
msgstr "Web WHOISクエリ"
msgid "Enable DNSSEC"
msgstr "DNSSECを有効化"
msgid "DNSSEC Mode"
msgstr "DNSSECモード"
msgid "DNSSEC Details"
msgstr "DNSSECの詳細"
msgid "Export IDN Table"
msgstr "IDNテーブルをエクスポート"
msgid "Published"
msgstr "公開済み"

View file

@ -1662,3 +1662,42 @@ msgstr ""
msgid "Assign Contact" msgid "Assign Contact"
msgstr "" msgstr ""
msgid "Expiring Domains"
msgstr ""
msgid "Expired Domains"
msgstr ""
msgid "WebAuthn is currently disabled for this installation. To enable WebAuthn authentication, please contact the registry administrator."
msgstr ""
msgid "Security"
msgstr ""
msgid "If you\ve logged in on multiple devices or browsers and want to ensure your account remains secure, you can log out from all other sessions except this one. This will end access from any other logged-in devices."
msgstr ""
msgid "Log Out from All Devices"
msgstr ""
msgid "Port 43 WHOIS Queries"
msgstr ""
msgid "Web WHOIS Queries"
msgstr ""
msgid "Enable DNSSEC"
msgstr ""
msgid "DNSSEC Mode"
msgstr ""
msgid "DNSSEC Details"
msgstr ""
msgid "Export IDN Table"
msgstr ""
msgid "Published"
msgstr ""

View file

@ -1661,4 +1661,43 @@ msgid "Choose Contact to Assign"
msgstr "Escolha um contato para atribuir" msgstr "Escolha um contato para atribuir"
msgid "Assign Contact" msgid "Assign Contact"
msgstr "Atribuir contato" msgstr "Atribuir contato"
msgid "Expiring Domains"
msgstr "Domínios a expirar"
msgid "Expired Domains"
msgstr "Domínios expirados"
msgid "WebAuthn is currently disabled for this installation. To enable WebAuthn authentication, please contact the registry administrator."
msgstr "O WebAuthn está atualmente desativado para esta instalação. Para ativar a autenticação WebAuthn, entre em contato com o administrador do registro."
msgid "Security"
msgstr "Segurança"
msgid "If you\ve logged in on multiple devices or browsers and want to ensure your account remains secure, you can log out from all other sessions except this one. This will end access from any other logged-in devices."
msgstr "Se você fez login em vários dispositivos ou navegadores e deseja garantir a segurança da sua conta, pode sair de todas as outras sessões, exceto esta. Isso encerrará o acesso de qualquer outro dispositivo conectado."
msgid "Log Out from All Devices"
msgstr "Sair de todos os dispositivos"
msgid "Port 43 WHOIS Queries"
msgstr "Consultas WHOIS na porta 43"
msgid "Web WHOIS Queries"
msgstr "Consultas WHOIS na web"
msgid "Enable DNSSEC"
msgstr "Ativar DNSSEC"
msgid "DNSSEC Mode"
msgstr "Modo DNSSEC"
msgid "DNSSEC Details"
msgstr "Detalhes do DNSSEC"
msgid "Export IDN Table"
msgstr "Exportar tabela IDN"
msgid "Published"
msgstr "Publicado"

View file

@ -1661,4 +1661,43 @@ msgid "Choose Contact to Assign"
msgstr "Виберіть контакт для призначення" msgstr "Виберіть контакт для призначення"
msgid "Assign Contact" msgid "Assign Contact"
msgstr "Призначити контакт" msgstr "Призначити контакт"
msgid "Expiring Domains"
msgstr "Домени, що скоро закінчаться"
msgid "Expired Domains"
msgstr "Домени, що закінчилися"
msgid "WebAuthn is currently disabled for this installation. To enable WebAuthn authentication, please contact the registry administrator."
msgstr "WebAuthn наразі вимкнено для цієї інсталяції. Щоб увімкнути аутентифікацію WebAuthn, зверніться до адміністратора реєстру."
msgid "Security"
msgstr "Безпека"
msgid "If you\ve logged in on multiple devices or browsers and want to ensure your account remains secure, you can log out from all other sessions except this one. This will end access from any other logged-in devices."
msgstr "Якщо ви увійшли на кількох пристроях або браузерах і хочете забезпечити безпеку свого облікового запису, ви можете вийти з усіх інших сесій, окрім цієї. Це завершить доступ з усіх інших увійдених пристроїв."
msgid "Log Out from All Devices"
msgstr "Вийти з усіх пристроїв"
msgid "Port 43 WHOIS Queries"
msgstr "WHOIS-запити на порту 43"
msgid "Web WHOIS Queries"
msgstr "WHOIS-запити через веб"
msgid "Enable DNSSEC"
msgstr "Увімкнути DNSSEC"
msgid "DNSSEC Mode"
msgstr "Режим DNSSEC"
msgid "DNSSEC Details"
msgstr "Деталі DNSSEC"
msgid "Export IDN Table"
msgstr "Експортувати таблицю IDN"
msgid "Published"
msgstr "Опубліковано"

View file

@ -190,7 +190,7 @@
</a> </a>
</div> </div>
{% endif %} {% endif %}
<div class="col-12 col-md-6 mt-5"> <div class="col-12 col-md-6">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<h3 class="card-title">{{ __('Recent Domains') }}</h3> <h3 class="card-title">{{ __('Recent Domains') }}</h3>
@ -219,7 +219,65 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-12 col-md-6 mt-5"> <div class="col-12 col-md-6">
<div class="card">
<div class="card-header">
<h3 class="card-title">{{ __('Expiring Domains') }}</h3>
</div>
<div class="table-responsive">
<table class="table table-vcenter card-table table-striped">
<thead>
<tr>
<th>{{ __('Name') }}</th>
<th>{{ __('Expiration Date') }}</th>
</tr>
</thead>
<tbody>
{% if expiring_domains|length > 0 %}
{% for domain in expiring_domains %}
<tr>
<td><a href="/domain/view/{{ domain.name }}">{{ domain.name }}</a></td>
<td class="text-secondary">{{ domain.exdate }}</td>
</tr>
{% endfor %}
{% else %}
<tr><td colspan="2">{{ __('No Data') }}</td></tr>
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
<div class="col-12 col-md-6">
<div class="card">
<div class="card-header">
<h3 class="card-title">{{ __('Expired Domains') }}</h3>
</div>
<div class="table-responsive">
<table class="table table-vcenter card-table table-striped">
<thead>
<tr>
<th>{{ __('Name') }}</th>
<th>{{ __('Expiration Date') }}</th>
</tr>
</thead>
<tbody>
{% if expired_domains|length > 0 %}
{% for domain in expired_domains %}
<tr>
<td><a href="/domain/view/{{ domain.name }}">{{ domain.name }}</a></td>
<td class="text-secondary">{{ domain.exdate }}</td>
</tr>
{% endfor %}
{% else %}
<tr><td colspan="2">{{ __('No Data') }}</td></tr>
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
<div class="col-12 col-md-6">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<h3 class="card-title">{{ __('Recent Support Tickets') }}</h3> <h3 class="card-title">{{ __('Recent Support Tickets') }}</h3>

View file

@ -208,7 +208,7 @@
</div> </div>
<div class="tab-pane" id="tabs-security"> <div class="tab-pane" id="tabs-security">
<h3 class="card-title">{{ __('Security') }}</h3> <h3 class="card-title">{{ __('Security') }}</h3>
<p>{{ __('If youve logged in on multiple devices or browsers and want to ensure your account remains secure, you can log out from all other sessions except this one. This will end access from any other logged-in devices.') }}</p> <p>{{ __('If you\ve logged in on multiple devices or browsers and want to ensure your account remains secure, you can log out from all other sessions except this one. This will end access from any other logged-in devices.') }}</p>
<form action="{{route('profile.logout.everywhere')}}" name="logoutEverywhere" method="post"> <form action="{{route('profile.logout.everywhere')}}" name="logoutEverywhere" method="post">
{{ csrf.field | raw }} {{ csrf.field | raw }}
<button type="submit" class="btn btn-danger"> <button type="submit" class="btn btn-danger">

View file

@ -72,7 +72,7 @@
</div> </div>
</div> </div>
<div class="datagrid-item"> <div class="datagrid-item">
<div class="datagrid-title">Enable DNSSEC</div> <div class="datagrid-title">{{ __('Enable DNSSEC') }}</div>
<div class="datagrid-content"> <div class="datagrid-content">
<label class="form-check"> <label class="form-check">
<input class="form-check-input" type="checkbox" name="dnssec_enable" {% if secureTld == 1 %} checked disabled {% endif %}> <input class="form-check-input" type="checkbox" name="dnssec_enable" {% if secureTld == 1 %} checked disabled {% endif %}>
@ -81,7 +81,7 @@
</div> </div>
</div> </div>
<div class="datagrid-item"> <div class="datagrid-item">
<div class="datagrid-title">DNSSEC Mode</div> <div class="datagrid-title">{{ __('DNSSEC Mode') }}</div>
<div class="datagrid-content"> <div class="datagrid-content">
<label class="form-check"> <label class="form-check">
<input class="form-check-input" type="checkbox" name="bind9_enable" {% if secureTld == 1 %} checked disabled {% endif %}> <input class="form-check-input" type="checkbox" name="bind9_enable" {% if secureTld == 1 %} checked disabled {% endif %}>
@ -97,7 +97,7 @@
<div class="card mb-3"> <div class="card mb-3">
<div class="card-header"> <div class="card-header">
<h5 class="card-title">{{ __('DNSSEC Details') }} <h5 class="card-title">{{ __('DNSSEC Details') }}
<span class="card-subtitle">{{ __('Last Updated:') }} {{ dnssecData.timestamp }}</span> <span class="card-subtitle">{{ __('Last Updated') }}: {{ dnssecData.timestamp }}</span>
</h5> </h5>
</div> </div>
<div class="card-body"> <div class="card-body">