Browse Source

show created_on, last_modified for domain, mailbox

FreddleSpl0it 2 years ago
parent
commit
c8f69ffe77

+ 10 - 0
data/web/inc/functions.mailbox.inc.php

@@ -4028,6 +4028,8 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
               `mailboxes`,
               `defquota`,
               `maxquota`,
+              `created`,
+              `modified`,
               `quota`,
               `relayhost`,
               `relay_all_recipients`,
@@ -4100,6 +4102,8 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
           $domaindata['relay_all_recipients_int'] = $row['relay_all_recipients'];
           $domaindata['relay_unknown_only'] = $row['relay_unknown_only'];
           $domaindata['relay_unknown_only_int'] = $row['relay_unknown_only'];
+          $domaindata['created'] = $row['created'];
+          $domaindata['modified'] = $row['modified'];
           $stmt = $pdo->prepare("SELECT COUNT(`address`) AS `alias_count` FROM `alias`
             WHERE (`domain`= :domain OR `domain` IN (SELECT `alias_domain` FROM `alias_domain` WHERE `target_domain` = :domain2))
               AND `address` NOT IN (
@@ -4184,6 +4188,8 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
               `mailbox`.`domain`,
               `mailbox`.`local_part`,
               `mailbox`.`quota`,
+              `mailbox`.`created`,
+              `mailbox`.`modified`,
               `quota2`.`bytes`,
               `attributes`,
               `quota2`.`messages`
@@ -4202,6 +4208,8 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
               `mailbox`.`domain`,
               `mailbox`.`local_part`,
               `mailbox`.`quota`,
+              `mailbox`.`created`,
+              `mailbox`.`modified`,
               `quota2replica`.`bytes`,
               `attributes`,
               `quota2replica`.`messages`
@@ -4228,6 +4236,8 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
           $mailboxdata['attributes'] = json_decode($row['attributes'], true);
           $mailboxdata['quota_used'] = intval($row['bytes']);
           $mailboxdata['percent_in_use'] = ($row['quota'] == 0) ? '- ' : round((intval($row['bytes']) / intval($row['quota'])) * 100);
+          $mailboxdata['created'] = $row['created'];
+          $mailboxdata['modified'] = $row['modified'];
 
           if ($mailboxdata['percent_in_use'] === '- ') {
             $mailboxdata['percent_class'] = "info";

+ 24 - 0
data/web/js/site/mailbox.js

@@ -572,6 +572,18 @@ jQuery(function($){
           defaultContent: '',
           className: 'none'
         },
+        {
+          title: lang.created_on,
+          data: 'created',
+          defaultContent: '',
+          className: 'none'
+        },
+        {
+          title: lang.last_modified,
+          data: 'modified',
+          defaultContent: '',
+          className: 'none'
+        },
         {
           title: 'Tags',
           data: 'tags',
@@ -1008,6 +1020,18 @@ jQuery(function($){
             defaultContent: '',
             responsivePriority: 5
           },
+          {
+            title: lang.created_on,
+            data: 'created',
+            defaultContent: '',
+            className: 'none'
+          },
+          {
+            title: lang.last_modified,
+            data: 'modified',
+            defaultContent: '',
+            className: 'none'
+          },
           {
             title: 'Tags',
             data: 'tags',

+ 4 - 0
data/web/lang/lang.cs-cz.json

@@ -507,6 +507,7 @@
         "bcc_dest_format": "Cíl kopie musí být jedna platná email adresa. Pokud potřebujete posílat kopie na více adres, vytvořte Alias a použijte jej zde.",
         "client_id": "ID klienta",
         "client_secret": "Tajný klíč klienta",
+        "created_on": "Vytvoreno",
         "comment_info": "Soukromý komentář se nezobrazí uživateli; veřejný komentář se zobrazí jako nápověda při zastavení se kurzorem v přehledu uživatelů",
         "delete1": "Odstranit ze zdrojové schránky, po dokončení přenosu",
         "delete2": "Odstranit zprávy v cílové schránce, pokud nejsou ve zdrojové",
@@ -534,6 +535,7 @@
         "hostname": "Jméno hostitele",
         "inactive": "Neaktivní",
         "kind": "Druh",
+        "last_modified": "Naposledy změněn",
         "lookup_mx": "Cíl je regulární výraz který se shoduje s MX záznamem (<code>.*google\\.com</code> směřuje veškerou poštu na MX které jsou cílem pro google.com přes tento skok)",
         "mailbox": "Úprava mailové schránky",
         "mailbox_quota_def": "Výchozí kvóta schránky",
@@ -701,6 +703,7 @@
         "booking_ltnull": "Neomezeno, ale po rezervaci se ukazuje jako obsazené",
         "booking_lt0_short": "Volný limit",
         "catch_all": "Doménový koš",
+        "created_on": "Vytvoreno",
         "daily": "Každý den",
         "deactivate": "Vypnout",
         "description": "Popis",
@@ -731,6 +734,7 @@
         "insert_preset": "Vložit ukázkovou položku \"%s\"",
         "kind": "Druh",
         "last_mail_login": "Poslední přihlášení",
+        "last_modified": "Naposledy změněn",
         "last_pw_change": "Naposledy změněno heslo",
         "last_run": "Naposledy spuštěno",
         "last_run_reset": "Znovu naplánovat",

+ 4 - 0
data/web/lang/lang.de-de.json

@@ -547,6 +547,7 @@
         "client_id": "Client-ID",
         "client_secret": "Client-Secret",
         "comment_info": "Ein privater Kommentar ist für den Benutzer nicht einsehbar. Ein öffentlicher Kommentar wird als Tooltip im Interface des Benutzers angezeigt.",
+        "created_on": "Erstellt am",
         "delete1": "Lösche Nachricht nach Übertragung vom Quell-Server",
         "delete2": "Lösche Nachrichten von Ziel-Server, die nicht auf Quell-Server vorhanden sind",
         "delete2duplicates": "Lösche Duplikate im Ziel",
@@ -573,6 +574,7 @@
         "hostname": "Servername",
         "inactive": "Inaktiv",
         "kind": "Art",
+        "last_modified": "Zuletzt geändert",
         "lookup_mx": "Ziel mit MX vergleichen (Regex, etwa <code>.*google\\.com</code>, um alle Ziele mit MX *google.com zu routen)",
         "mailbox": "Mailbox bearbeiten",
         "mailbox_quota_def": "Standard-Quota einer Mailbox",
@@ -741,6 +743,7 @@
         "booking_custom_short": "Hartes Limit",
         "booking_ltnull": "Unbegrenzt, jedoch anzeigen, wenn gebucht",
         "booking_lt0_short": "Weiches Limit",
+        "created_on": "Erstellt am",
         "daily": "Täglich",
         "deactivate": "Deaktivieren",
         "description": "Beschreibung",
@@ -769,6 +772,7 @@
         "insert_preset": "Beispiel \"%s\" laden",
         "kind": "Art",
         "last_mail_login": "Letzter Mail-Login",
+        "last_modified": "Zuletzt geändert",
         "last_pw_change": "Letzte Passwortänderung",
         "last_run": "Letzte Ausführung",
         "last_run_reset": "Als nächstes ausführen",

+ 4 - 0
data/web/lang/lang.en-gb.json

@@ -550,6 +550,7 @@
         "client_id": "Client ID",
         "client_secret": "Client secret",
         "comment_info": "A private comment is not visible to the user, while a public comment is shown as tooltip when hovering it in a user's overview",
+        "created_on": "Created on",
         "delete1": "Delete from source when completed",
         "delete2": "Delete messages on destination that are not on source",
         "delete2duplicates": "Delete duplicates on destination",
@@ -576,6 +577,7 @@
         "hostname": "Hostname",
         "inactive": "Inactive",
         "kind": "Kind",
+        "last_modified": "Last modified",
         "lookup_mx": "Destination is a regular expression to match against MX name (<code>.*google\\.com</code> to route all mail targeted to a MX ending in google.com over this hop)",
         "mailbox": "Edit mailbox",
         "mailbox_quota_def": "Default mailbox quota",
@@ -748,6 +750,7 @@
         "booking_ltnull": "Unlimited, but show as busy when booked",
         "booking_lt0_short": "Soft limit",
         "catch_all": "Catch-All",
+        "created_on": "Created on",
         "daily": "Daily",
         "deactivate": "Deactivate",
         "description": "Description",
@@ -779,6 +782,7 @@
         "insert_preset": "Insert example preset \"%s\"",
         "kind": "Kind",
         "last_mail_login": "Last mail login",
+        "last_modified": "Last modified",
         "last_pw_change": "Last password change",
         "last_run": "Last run",
         "last_run_reset": "Schedule next",

+ 2 - 0
data/web/lang/lang.es-es.json

@@ -383,6 +383,7 @@
         "hostname": "Hostname",
         "inactive": "Inactivo",
         "kind": "Tipo",
+        "last_modified": "Última modificación",
         "mailbox": "Editar buzón",
         "mailbox_quota_def": "Cuota de buzón predeterminada",
         "max_aliases": "Máx. alias:",
@@ -509,6 +510,7 @@
         "in_use": "En uso (%)",
         "inactive": "Inactivo",
         "kind": "Tipo",
+        "last_modified": "Última modificación",
         "last_run": "Última ejecución",
         "mailbox_defquota": "Tamaño de buzón predeterminado",
         "mailbox_quota": "Tamaño máx. de cuota",

+ 2 - 0
data/web/lang/lang.fi-fi.json

@@ -433,6 +433,7 @@
         "hostname": "Hostname",
         "inactive": "Passiivinen",
         "kind": "Kiltti",
+        "last_modified": "Viimeksi muokattu",
         "mailbox": "Muokkaa sähköposti tiliä",
         "mailbox_quota_def": "Sähköpostin oletus kiintiö",
         "max_aliases": "Maks. Aliaksia",
@@ -580,6 +581,7 @@
         "in_use": "Käytössä (%)",
         "inactive": "Epäaktiivinen",
         "kind": "Sellainen",
+        "last_modified": "Viimeksi muokattu",
         "last_run": "Viimeisin suoritus",
         "last_run_reset": "Ajoita seuraava",
         "mailbox": "Postilaatikko",

+ 2 - 0
data/web/lang/lang.fr-fr.json

@@ -512,6 +512,7 @@
         "hostname": "Nom d'hôte",
         "inactive": "Inactif",
         "kind": "Type",
+        "last_modified": "Dernière modification",
         "mailbox": "Edition de la boîte mail",
         "mailbox_quota_def": "Quota par défaut de la boîte",
         "max_aliases": "Nombre max. d'alias",
@@ -684,6 +685,7 @@
         "insert_preset": "Insérer un exemple de préréglage \"%s\"",
         "kind": "Type",
         "last_mail_login": "Dernière connexion mail",
+        "last_modified": "Dernière modification",
         "last_run": "Dernière éxécution",
         "last_run_reset": "Calendrier suivant",
         "mailbox": "Mailbox",

+ 4 - 0
data/web/lang/lang.it-it.json

@@ -509,6 +509,7 @@
         "bcc_dest_format": "BCC destination must be a single valid email address.",
         "client_id": "Client ID",
         "client_secret": "Client secret",
+        "created_on": "Creato il",
         "comment_info": "A private comment is not visible to the user, while a public comment is shown as tooltip when hovering it in a user's overview",
         "delete1": "Elimina dalla sorgente al termine",
         "delete2": "Delete messages on destination that are not on source",
@@ -536,6 +537,7 @@
         "hostname": "Hostname",
         "inactive": "Inattivo",
         "kind": "Genere",
+        "last_mail_login": "Last mail login",
         "lookup_mx": "Destination is a regular expression to match against MX name (<code>.*google\\.com</code> to route all mail targeted to a MX ending in google.com over this hop)",
         "mailbox": "Modifica casella di posta",
         "mailbox_quota_def": "Default mailbox quota",
@@ -706,6 +708,7 @@
         "booking_custom_short": "Hard limit",
         "booking_ltnull": "Unlimited, but show as busy when booked",
         "booking_lt0_short": "Soft limit",
+        "created_on": "Creato il",
         "daily": "Giornaliero",
         "deactivate": "Disattiva",
         "description": "Descrizione",
@@ -732,6 +735,7 @@
         "insert_preset": "Insert example preset \"%s\"",
         "kind": "Tipo",
         "last_mail_login": "Last mail login",
+        "last_modified": "Ultima modifica",
         "last_pw_change": "Ultima modifica della password",
         "last_run": "Ultima esecuzione",
         "last_run_reset": "Schedule next",

+ 2 - 0
data/web/lang/lang.ko-kr.json

@@ -487,6 +487,7 @@
         "hostname": "Hostname",
         "inactive": "Inactive",
         "kind": "Kind",
+        "last_modified": "Last modified",
         "mailbox": "Edit mailbox",
         "mailbox_quota_def": "Default mailbox quota",
         "max_aliases": "Max. aliases",
@@ -650,6 +651,7 @@
         "insert_preset": "Insert example preset \"%s\"",
         "kind": "Kind",
         "last_mail_login": "Last mail login",
+        "last_modified": "Last modified",
         "last_run": "Last run",
         "last_run_reset": "Schedule next",
         "mailbox": "Mailbox",

+ 2 - 0
data/web/lang/lang.nl-nl.json

@@ -504,6 +504,7 @@
         "hostname": "Hostname",
         "inactive": "Inactief",
         "kind": "Soort",
+        "last_modified": "Voor het laatst bijgewerkt op",
         "mailbox": "Wijzig mailbox",
         "mailbox_quota_def": "Standaard mailboxquota",
         "max_aliases": "Maximaal aantal aliassen",
@@ -674,6 +675,7 @@
         "insert_preset": "Voeg voorbeelden in \"%s\"",
         "kind": "Soort",
         "last_mail_login": "Laatste mail login",
+        "last_modified": "Voor het laatst bijgewerkt op",
         "last_run": "Laatst uitgevoerd",
         "last_run_reset": "Plan volgende",
         "mailbox": "Mailbox",

+ 4 - 0
data/web/lang/lang.ro-ro.json

@@ -511,6 +511,7 @@
         "client_id": "ID Client",
         "client_secret": "Secret client",
         "comment_info": "Un comentariu privat nu este vizibil pentru utilizator, în timp ce un comentariu public este afișat ca un tooltip când se trece peste el într-o privire de ansamblu asupra utilizatorilor",
+        "created_on": "Creat în",
         "delete1": "Șterge de la sursă când ai terminat",
         "delete2": "Șterge mesajele la destinație care nu sunt la sursă",
         "delete2duplicates": "Șterge duplicate la destinație",
@@ -537,6 +538,7 @@
         "hostname": "Nume gazdă",
         "inactive": "Inactiv",
         "kind": "Fel",
+        "last_modified": "Ultima modificare",
         "lookup_mx": "Destinația este o expresie regulată care potrivită cu numele MX (<code>.*google\\.com</code> pentru a direcționa toate e-mailurile vizate către un MX care se termină în google.com peste acest hop)",
         "mailbox": "Editează căsuța poștală",
         "mailbox_quota_def": "Cota implicită a căsuței poștale",
@@ -707,6 +709,7 @@
         "booking_ltnull": "Nelimitat, dar arată ca ocupat atunci când este rezervat",
         "booking_lt0_short": "Limită redusă",
         "catch_all": "Prinde-Tot",
+        "created_on": "Creat în",
         "daily": "Zilnic",
         "deactivate": "Deactivează",
         "description": "Descriere",
@@ -737,6 +740,7 @@
         "insert_preset": "Inserați un exemplu presetat \"%s\"",
         "kind": "Fel",
         "last_mail_login": "Ultima autentificare pe mail",
+        "last_modified": "Ultima modificare",
         "last_pw_change": "Ultima modificare a parolei",
         "last_run": "Ultima rulare",
         "last_run_reset": "Programează următorul",

+ 4 - 0
data/web/lang/lang.ru-ru.json

@@ -511,6 +511,7 @@
         "client_id": "ID клиента",
         "client_secret": "Секретный ключ пользователя",
         "comment_info": "Приватный комментарий не виден пользователям, а публичный - отображается рядом с псевдонимом в личном кабинете пользователя",
+        "created_on": "Дата создания",
         "delete1": "Удаление из источника после завершения",
         "delete2": "Удаление писем по месту назначения, которые не находятся на исходном",
         "delete2duplicates": "Удаление дубликатов по назначению",
@@ -537,6 +538,7 @@
         "hostname": "Имя хоста",
         "inactive": "Неактивный",
         "kind": "Тип",
+        "last_modified": "Последние изменения",
         "lookup_mx": "Назначение на основе резовинга MX записи по регулярному выражению (<code>.*\\.example\\.com$</code> для маршрутизации всей почты через этот хост, если MX заканчивающийся на example.com)",
         "mailbox": "Изменение почтового аккаунта",
         "mailbox_quota_def": "Квота по умолчанию",
@@ -705,6 +707,7 @@
         "booking_ltnull": "Неограниченный, занят при бронировании",
         "booking_lt0_short": "Неограниченный лимит",
         "catch_all": "Catch-all",
+        "created_on": "Дата создания",
         "daily": "Раз в день",
         "deactivate": "Отключить",
         "description": "Описание",
@@ -735,6 +738,7 @@
         "insert_preset": "Вставить пример \"%s\"",
         "kind": "Тип",
         "last_mail_login": "Последний вход",
+        "last_modified": "Последние изменения",
         "last_pw_change": "Последняя смена пароля",
         "last_run": "Последний запуск",
         "last_run_reset": "Следующей запуск",

+ 4 - 0
data/web/lang/lang.sk-sk.json

@@ -510,6 +510,7 @@
         "client_id": "ID klienta",
         "client_secret": "Klientský tajný kľúč",
         "comment_info": " Súkromný komentár nie je viditeľný používateľovi, na rozdiel od verejného komentára, ktorý je prezentovaný ako popis v prehľade používateľov",
+        "created_on": "Vytvorené",
         "delete1": "Vymazať zo zdrojovej schránky, po dokončení prenosu",
         "delete2": "Vymazať správy v cieľovej schránke, ak nie sú v zdrojovej",
         "delete2duplicates": "Vymazať duplikáty v cieľovej schránke",
@@ -536,6 +537,7 @@
         "hostname": "Hostiteľ",
         "inactive": "Neaktívny",
         "kind": "Druh",
+        "last_modified": "Naposledy upravené",
         "lookup_mx": "Cieľ je regulárny výraz ktorý sa zhoduje s MX záznamom (<code>.*google\\.com</code> smeruje všetku poštu na MX ktoré sú cieľom pre google.com cez tento skok)",
         "mailbox": "Upraviť mailovú schránku",
         "mailbox_quota_def": "Predvolená veľkosť mailovej schránky",
@@ -707,6 +709,7 @@
         "booking_ltnull": "Bez limitu, ale zobraziť obsadené po rezervácii",
         "booking_lt0_short": "Voľný limit",
         "catch_all": "Doménový kôš",
+        "created_on": "Vytvorené",
         "daily": "Denný",
         "deactivate": "Deaktivovať",
         "description": "Popis",
@@ -737,6 +740,7 @@
         "insert_preset": "Vložiť vzor nastavenia \"%s\"",
         "kind": "Druh",
         "last_mail_login": "Posledné prihlásenie",
+        "last_modified": "Naposledy upravené",
         "last_pw_change": "Naposledy zmenené heslo",
         "last_run": "Posledné spustenie",
         "last_run_reset": "Znovu naplánovať",

+ 4 - 0
data/web/lang/lang.sv-se.json

@@ -492,6 +492,7 @@
         "client_id": "Klient-ID",
         "client_secret": "Klienthemlighet",
         "comment_info": "En privat kommentar är inte synlig för användaren, medan en offentlig kommentar visas i användaröversikten",
+        "created_on": "Skapad vid",
         "delete1": "Ta bort meddelande från källservern när överföringen är slutförd.",
         "delete2": "Ta bort meddelanden från destinationsservern som inte finns på källservern",
         "delete2duplicates": "Ta bort dubbletter på destinationsservern",
@@ -518,6 +519,7 @@
         "hostname": "Värdnamn",
         "inactive": "Inaktiv",
         "kind": "Typ",
+        "last_modified": "Senast ändrad",
         "mailbox": "Ändra postlåda",
         "mailbox_quota_def": "Standard kvot på postlådor",
         "max_aliases": "Max antal alias",
@@ -663,6 +665,7 @@
         "booking_custom_short": "Hård gräns",
         "booking_ltnull": "Obegränsad antal, men visa resursen som upptagen när den är bokad",
         "booking_lt0_short": "Mjuk gräns",
+        "created_on": "Skapad vid",
         "daily": "Dagligen",
         "deactivate": "Inaktivera",
         "description": "Beskrivning",
@@ -691,6 +694,7 @@
         "insert_preset": "Infoga exempelkoden \"%s\"",
         "kind": "Sort",
         "last_mail_login": "Senaste inloggningen",
+        "last_modified": "Senast ändrad",
         "last_run": "Senaste körningen",
         "last_run_reset": "Schemalägg nästa",
         "mailbox": "Postlåda",

+ 4 - 0
data/web/lang/lang.uk-ua.json

@@ -509,6 +509,7 @@
         "backup_mx_options": "Параметри резервного MX",
         "client_id": "ID клієнта",
         "client_secret": "Секретний ключ користувача",
+        "created_on": "Дата створення",
         "delete1": "Видалити з джерела після завершення",
         "delete2": "Видалити листи за місцем призначення, яких не має в джерелі",
         "delete2duplicates": "Видалити дублікати за місцем призначення",
@@ -531,6 +532,7 @@
         "hostname": "Ім'я хоста",
         "inactive": "Неактивний",
         "kind": "Тип",
+        "last_modified": "Останні зміни",
         "mailbox": "Редагувати поштову скриньку",
         "max_aliases": "Максимум псевдонімів",
         "max_mailboxes": "Максимум поштових скриньок",
@@ -704,6 +706,7 @@
         "booking_ltnull": "Необмежений, зайнятий під час бронювання",
         "booking_lt0_short": "М’який ліміт",
         "catch_all": "Catch-all",
+        "created_on": "Дата створення",
         "daily": "Раз на день",
         "description": "Опис",
         "disable_x": "Вимкнути",
@@ -730,6 +733,7 @@
         "inactive": "Неактивний",
         "insert_preset": "Вставити приклад \"%s\"",
         "kind": "Тип",
+        "last_modified": "Останні зміни",
         "last_pw_change": "Остання зміна пароля",
         "last_run": "Останній запуск",
         "last_run_reset": "Наступний запуск",

+ 2 - 0
data/web/lang/lang.zh-cn.json

@@ -497,6 +497,7 @@
         "hostname": "主机名",
         "inactive": "禁用",
         "kind": "类型",
+        "last_modified": "最后修改",
         "mailbox": "编辑邮箱",
         "mailbox_quota_def": "默认邮箱配额",
         "max_aliases": "最大允许地址别名数",
@@ -663,6 +664,7 @@
         "insert_preset": "插入示例预设 \"%s\"",
         "kind": "类型",
         "last_mail_login": "最后的邮箱登录",
+        "last_modified": "最后修改",
         "last_run": "最后运行",
         "last_run_reset": "下一次运行",
         "mailbox": "邮箱",

+ 4 - 0
data/web/lang/lang.zh-tw.json

@@ -521,6 +521,7 @@
         "client_id": "用戶端 ID",
         "client_secret": "用戶端金鑰",
         "comment_info": "隱密備註不會被使用者看到,公開備註則會在使用者游標懸停於概述頁時顯示於提示框",
+        "created_on": "建立於",
         "delete1": "完成後將來源郵件刪除",
         "delete2": "刪除目的地信箱中存在但來源信箱中不存在的郵件",
         "delete2duplicates": "刪除目的地信箱中的重複郵件",
@@ -547,6 +548,7 @@
         "hostname": "主機名稱",
         "inactive": "停用",
         "kind": "種類",
+        "last_modified": "上次修改時間",
         "lookup_mx": "目的地是可以用來匹配 MX 紀錄的正規表達式 (<code>.*google\\.com</code> 會將所有 MX 結尾於 google.com 的郵件轉發到此主機。)",
         "mailbox": "編輯信箱",
         "mailbox_quota_def": "預設信箱容量配額",
@@ -717,6 +719,7 @@
         "booking_ltnull": "不限制登記數,但會在被登記後顯示為繁忙",
         "booking_lt0_short": "寬鬆限制",
         "catch_all": "全部接收",
+        "created_on": "建立於",
         "daily": "每天",
         "deactivate": "停用",
         "description": "描述",
@@ -747,6 +750,7 @@
         "insert_preset": "插入範例預設 \"%s\"",
         "kind": "種類",
         "last_mail_login": "上一次信箱登入",
+        "last_modified": "上次修改時間",
         "last_pw_change": "上一次密碼更改",
         "last_run": "上一次執行",
         "last_run_reset": "下一次執行",

+ 7 - 1
data/web/templates/edit/domain.twig

@@ -120,11 +120,17 @@
           </div>
         </div>
       </div>
-      <div class="row">
+      <div class="row mb-2">
         <div class="offset-sm-2 col-sm-10">
           <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="edit_selected" data-id="editdomain" data-item="{{ domain }}" data-api-url='edit/domain' data-api-attr='{}' href="#">{{ lang.admin.save }}</button>
         </div>
       </div>
+      <div class="row">
+        <div class="offset-sm-2 col-sm-10">
+          <small class="fst-italic d-block">{{ lang.edit.created_on }}: {{ result.created }}</small>
+          <small class="fst-italic d-block">{{ lang.edit.last_modified }}: {{ result.modified }}</small>
+        </div>
+      </div>
     </form>
     {% if dkim %}
     <hr>

+ 7 - 1
data/web/templates/edit/mailbox.twig

@@ -250,11 +250,17 @@
         </div>
       </div>
       {% endif %}
-      <div class="row">
+      <div class="row mb-2">
         <div class="offset-sm-2 col-sm-10">
           <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="edit_selected" data-id="editmailbox" data-item="{{ result.username }}" data-api-url='edit/mailbox' data-api-attr='{}' href="#">{{ lang.edit.save }}</button>
         </div>
       </div>
+      <div class="row">
+        <div class="offset-sm-2 col-sm-10">
+          <small class="fst-italic d-block">{{ lang.edit.created_on }}: {{ result.created }}</small>
+          <small class="fst-italic d-block">{{ lang.edit.last_modified }}: {{ result.modified }}</small>
+        </div>
+      </div>
     </form>
   </div>
   <div id="mpushover" class="tab-pane fade" role="tabpanel" aria-labelledby="mailbox-pushover">