diff --git a/data/web/inc/functions.mailbox.inc.php b/data/web/inc/functions.mailbox.inc.php
index 73c1154112..069b40c297 100644
--- a/data/web/inc/functions.mailbox.inc.php
+++ b/data/web/inc/functions.mailbox.inc.php
@@ -48,6 +48,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
$_data["validity"] = 8760;
}
$domain = $_data['domain'];
+ $description = $_data['description'];
$valid_domains[] = mailbox('get', 'mailbox_details', $username)['domain'];
$valid_alias_domains = user_get_alias_details($username)['alias_domains'];
if (!empty($valid_alias_domains)) {
@@ -62,10 +63,11 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
return false;
}
$validity = strtotime("+" . $_data["validity"] . " hour");
- $stmt = $pdo->prepare("INSERT INTO `spamalias` (`address`, `goto`, `validity`) VALUES
- (:address, :goto, :validity)");
+ $stmt = $pdo->prepare("INSERT INTO `spamalias` (`address`, `description`, `goto`, `validity`) VALUES
+ (:address, :description, :goto, :validity)");
$stmt->execute(array(
':address' => readable_random_string(rand(rand(3, 9), rand(3, 9))) . '.' . readable_random_string(rand(rand(3, 9), rand(3, 9))) . '@' . $domain,
+ ':description' => $description,
':goto' => $username,
':validity' => $validity
));
@@ -4201,6 +4203,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
}
$stmt = $pdo->prepare("SELECT `address`,
`goto`,
+ `description`,
`validity`,
`created`,
`modified`
diff --git a/data/web/inc/init_db.inc.php b/data/web/inc/init_db.inc.php
index 3cfeb37df6..d8e7147b27 100644
--- a/data/web/inc/init_db.inc.php
+++ b/data/web/inc/init_db.inc.php
@@ -1,5 +1,6 @@
"TINYINT(1) NOT NULL DEFAULT '1'",
"app_passwds" => "TINYINT(1) NOT NULL DEFAULT '1'",
"pw_reset" => "TINYINT(1) NOT NULL DEFAULT '1'",
- ),
+ ),
"keys" => array(
"primary" => array(
"" => array("username")
@@ -527,6 +528,7 @@ function init_db_schema() {
"cols" => array(
"address" => "VARCHAR(255) NOT NULL",
"goto" => "TEXT NOT NULL",
+ "description" => "TEXT NOT NULL",
"created" => "DATETIME(0) NOT NULL DEFAULT NOW(0)",
"modified" => "DATETIME ON UPDATE CURRENT_TIMESTAMP",
"validity" => "INT(11)"
@@ -678,7 +680,7 @@ function init_db_schema() {
"mailbox_relayhost" => "TINYINT(1) NOT NULL DEFAULT '1'",
"domain_relayhost" => "TINYINT(1) NOT NULL DEFAULT '1'",
"domain_desc" => "TINYINT(1) NOT NULL DEFAULT '0'"
- ),
+ ),
"keys" => array(
"primary" => array(
"" => array("username")
@@ -1151,7 +1153,7 @@ function init_db_schema() {
while ($row = array_shift($rows)) {
$pdo->query($row['FKEY_DROP']);
}
- foreach($properties['cols'] as $column => $type) {
+ foreach ($properties['cols'] as $column => $type) {
$stmt = $pdo->query("SHOW COLUMNS FROM `" . $table . "` LIKE '" . $column . "'");
$num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));
if ($num_results == 0) {
@@ -1165,12 +1167,11 @@ function init_db_schema() {
}
}
$pdo->query("ALTER TABLE `" . $table . "` ADD `" . $column . "` " . $type);
- }
- else {
+ } else {
$pdo->query("ALTER TABLE `" . $table . "` MODIFY COLUMN `" . $column . "` " . $type);
}
}
- foreach($properties['keys'] as $key_type => $key_content) {
+ foreach ($properties['keys'] as $key_type => $key_content) {
if (strtolower($key_type) == 'primary') {
foreach ($key_content as $key_values) {
$fields = "`" . implode("`, `", $key_values) . "`";
@@ -1227,18 +1228,18 @@ function init_db_schema() {
$keys_to_exist = array();
if (isset($properties['keys']['unique']) && is_array($properties['keys']['unique'])) {
foreach ($properties['keys']['unique'] as $key_name => $key_values) {
- $keys_to_exist[] = $key_name;
+ $keys_to_exist[] = $key_name;
}
}
if (isset($properties['keys']['key']) && is_array($properties['keys']['key'])) {
foreach ($properties['keys']['key'] as $key_name => $key_values) {
- $keys_to_exist[] = $key_name;
+ $keys_to_exist[] = $key_name;
}
}
// Index for foreign key must exist
if (isset($properties['keys']['fkey']) && is_array($properties['keys']['fkey'])) {
foreach ($properties['keys']['fkey'] as $key_name => $key_values) {
- $keys_to_exist[] = $key_name;
+ $keys_to_exist[] = $key_name;
}
}
// Step 2: Drop all vanished indexes
@@ -1255,33 +1256,29 @@ function init_db_schema() {
$pdo->query("ALTER TABLE `" . $table . "` DROP PRIMARY KEY");
}
}
- }
- else {
+ } else {
// Create table if it is missing
$sql = "CREATE TABLE IF NOT EXISTS `" . $table . "` (";
- foreach($properties['cols'] as $column => $type) {
+ foreach ($properties['cols'] as $column => $type) {
$sql .= "`" . $column . "` " . $type . ",";
}
- foreach($properties['keys'] as $key_type => $key_content) {
+ foreach ($properties['keys'] as $key_type => $key_content) {
if (strtolower($key_type) == 'primary') {
foreach ($key_content as $key_values) {
$fields = "`" . implode("`, `", $key_values) . "`";
$sql .= "PRIMARY KEY (" . $fields . ")" . ",";
}
- }
- elseif (strtolower($key_type) == 'key') {
+ } elseif (strtolower($key_type) == 'key') {
foreach ($key_content as $key_name => $key_values) {
$fields = "`" . implode("`, `", $key_values) . "`";
$sql .= "KEY `" . $key_name . "` (" . $fields . ")" . ",";
}
- }
- elseif (strtolower($key_type) == 'unique') {
+ } elseif (strtolower($key_type) == 'unique') {
foreach ($key_content as $key_name => $key_values) {
$fields = "`" . implode("`, `", $key_values) . "`";
$sql .= "UNIQUE KEY `" . $key_name . "` (" . $fields . ")" . ",";
}
- }
- elseif (strtolower($key_type) == 'fkey') {
+ } elseif (strtolower($key_type) == 'fkey') {
foreach ($key_content as $key_name => $key_values) {
@list($table_ref, $field_ref) = explode('.', $key_values['ref']);
$sql .= "FOREIGN KEY `" . $key_name . "` (" . $key_values['col'] . ") REFERENCES `" . $table_ref . "` (`" . $field_ref . "`)
@@ -1295,7 +1292,6 @@ function init_db_schema() {
}
// Reset table attributes
$pdo->query("ALTER TABLE `" . $table . "` " . $properties['attr'] . ";");
-
}
// Recreate SQL views
@@ -1322,12 +1318,12 @@ function init_db_schema() {
$stmt = $pdo->query("SELECT NULL FROM `admin`");
$num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));
if ($num_results == 0) {
- $pdo->query("INSERT INTO `admin` (`username`, `password`, `superadmin`, `created`, `modified`, `active`)
+ $pdo->query("INSERT INTO `admin` (`username`, `password`, `superadmin`, `created`, `modified`, `active`)
VALUES ('admin', '{SSHA256}K8eVJ6YsZbQCfuJvSUbaQRLr0HPLz5rC9IAp0PAFl0tmNDBkMDc0NDAyOTAxN2Rk', 1, NOW(), NOW(), 1)");
- $pdo->query("INSERT INTO `domain_admins` (`username`, `domain`, `created`, `active`)
+ $pdo->query("INSERT INTO `domain_admins` (`username`, `domain`, `created`, `active`)
SELECT `username`, 'ALL', NOW(), 1 FROM `admin`
WHERE superadmin='1' AND `username` NOT IN (SELECT `username` FROM `domain_admins`);");
- $pdo->query("DELETE FROM `admin` WHERE `username` NOT IN (SELECT `username` FROM `domain_admins`);");
+ $pdo->query("DELETE FROM `admin` WHERE `username` NOT IN (SELECT `username` FROM `domain_admins`);");
}
// Insert new DB schema version
$pdo->query("REPLACE INTO `versions` (`application`, `version`) VALUES ('db_schema', '" . $db_version . "');");
@@ -1355,7 +1351,7 @@ function init_db_schema() {
$pdo->query("UPDATE `mailbox` SET `attributes` = JSON_SET(`attributes`, '$.mailbox_format', \"maildir:\") WHERE JSON_VALUE(`attributes`, '$.mailbox_format') IS NULL;");
$pdo->query("UPDATE `mailbox` SET `attributes` = JSON_SET(`attributes`, '$.quarantine_notification', \"never\") WHERE JSON_VALUE(`attributes`, '$.quarantine_notification') IS NULL;");
$pdo->query("UPDATE `mailbox` SET `attributes` = JSON_SET(`attributes`, '$.quarantine_category', \"reject\") WHERE JSON_VALUE(`attributes`, '$.quarantine_category') IS NULL;");
- foreach($tls_options as $tls_user => $tls_options) {
+ foreach ($tls_options as $tls_user => $tls_options) {
$stmt = $pdo->prepare("UPDATE `mailbox` SET `attributes` = JSON_SET(`attributes`, '$.tls_enforce_in', :tls_enforce_in),
`attributes` = JSON_SET(`attributes`, '$.tls_enforce_out', :tls_enforce_out)
WHERE `username` = :username");
@@ -1434,7 +1430,7 @@ function init_db_schema() {
":template" => $default_domain_template["template"]
));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
- if (empty($row)){
+ if (empty($row)) {
$stmt = $pdo->prepare("INSERT INTO `templates` (`type`, `template`, `attributes`)
VALUES (:type, :template, :attributes)");
$stmt->execute(array(
@@ -1449,7 +1445,7 @@ function init_db_schema() {
":template" => $default_mailbox_template["template"]
));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
- if (empty($row)){
+ if (empty($row)) {
$stmt = $pdo->prepare("INSERT INTO `templates` (`type`, `template`, `attributes`)
VALUES (:type, :template, :attributes)");
$stmt->execute(array(
@@ -1468,8 +1464,7 @@ function init_db_schema() {
'msg' => 'db_init_complete'
);
}
- }
- catch (PDOException $e) {
+ } catch (PDOException $e) {
if (php_sapi_name() == "cli") {
echo "DB initialization failed: " . print_r($e, true) . PHP_EOL;
} else {
@@ -1508,8 +1503,7 @@ function init_db_schema() {
SELECT `c_uid`, `domain`, `c_name`, `c_password`, `c_cn`, `mail`, `aliases`, `ad_aliases`, `ext_acl`, `kind`, `multiple_bookings` from sogo_view");
$stmt = $pdo->query("DELETE FROM _sogo_static_view WHERE `c_uid` NOT IN (SELECT `username` FROM `mailbox` WHERE `active` = '1');");
echo "Fixed _sogo_static_view" . PHP_EOL;
- }
- catch ( Exception $e ) {
+ } catch (Exception $e) {
// Dunno
}
}
@@ -1517,9 +1511,8 @@ function init_db_schema() {
$m = new Memcached();
$m->addServer('memcached', 11211);
$m->flush();
- echo "Cleaned up memcached". PHP_EOL;
- }
- catch ( Exception $e ) {
+ echo "Cleaned up memcached" . PHP_EOL;
+ } catch (Exception $e) {
// Dunno
}
init_db_schema();
diff --git a/data/web/js/site/user.js b/data/web/js/site/user.js
index 59d65d8ce2..2a5eccdf87 100644
--- a/data/web/js/site/user.js
+++ b/data/web/js/site/user.js
@@ -202,6 +202,14 @@ jQuery(function($){
data: 'address',
defaultContent: ''
},
+ {
+ title: lang.description,
+ data: 'description',
+ defaultContent: '',
+ render: function (data, type) {
+ return escapeHtml(data);
+ }
+ },
{
title: lang.alias_valid_until,
data: 'validity',
diff --git a/data/web/lang/lang.ca-es.json b/data/web/lang/lang.ca-es.json
index 877b46cdb4..43079339d1 100644
--- a/data/web/lang/lang.ca-es.json
+++ b/data/web/lang/lang.ca-es.json
@@ -493,6 +493,7 @@
"client_configuration": "Guies de configuració per als clients de correu més habituals",
"create_syncjob": "Afegir treball de sincronitzaió",
"day": "Dia",
+ "description": "Descripció",
"direct_aliases": "Adreces àlies directes",
"direct_aliases_desc": "Els àlies directes sí que es veuen afectat per la configuració de l'usuari",
"eas_reset": "Fer un reset de la cache d'ActiveSync del dispositiu",
@@ -558,4 +559,4 @@
"week": "Setmana",
"weeks": "Setmanes"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.cs-cz.json b/data/web/lang/lang.cs-cz.json
index e72fb216a5..6efdd31e41 100644
--- a/data/web/lang/lang.cs-cz.json
+++ b/data/web/lang/lang.cs-cz.json
@@ -1164,6 +1164,7 @@
"created_on": "Vytvoreno",
"daily": "Každý den",
"day": "den",
+ "description": "Popis",
"delete_ays": "Potvrďte odstranění.",
"direct_aliases": "Přímé aliasy",
"direct_aliases_desc": "Na přímé aliasy se uplatňuje filtr spamu a nastavení pravidel TLS",
@@ -1309,4 +1310,4 @@
"session_token": "Token formuláře není platný: Token mismatch",
"session_ua": "Token formuláře není platný: User-Agent validation error"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.da-dk.json b/data/web/lang/lang.da-dk.json
index 95db916eff..f0f3bb922f 100644
--- a/data/web/lang/lang.da-dk.json
+++ b/data/web/lang/lang.da-dk.json
@@ -971,6 +971,7 @@
"create_syncjob": "Opret nyt sync job",
"daily": "Dagligt",
"day": "dag",
+ "description": "Beskrivelse",
"delete_ays": "Bekræft venligst ønsket om sletning.",
"direct_aliases": "Direkte alias addresser",
"direct_aliases_desc": "Direkte alias-adresser påvirkes af spamfilter og TLS-politiske indstillinger.",
@@ -1091,4 +1092,4 @@
"first": "Først"
}
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.de-de.json b/data/web/lang/lang.de-de.json
index 807393d779..d8eb5de79d 100644
--- a/data/web/lang/lang.de-de.json
+++ b/data/web/lang/lang.de-de.json
@@ -1185,6 +1185,7 @@
"created_on": "Erstellt am",
"daily": "Täglich",
"day": "Tag",
+ "description": "Beschreibung",
"delete_ays": "Soll der Löschvorgang wirklich ausgeführt werden?",
"direct_aliases": "Direkte Alias-Adressen",
"direct_aliases_desc": "Nur direkte Alias-Adressen werden für benutzerdefinierte Einstellungen berücksichtigt.",
@@ -1338,4 +1339,4 @@
"hour": "Nachrichten / Stunde",
"day": "Nachrichten / Tag"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.en-gb.json b/data/web/lang/lang.en-gb.json
index 6e898099bb..28d9ca148b 100644
--- a/data/web/lang/lang.en-gb.json
+++ b/data/web/lang/lang.en-gb.json
@@ -1192,6 +1192,7 @@
"created_on": "Created on",
"daily": "Daily",
"day": "day",
+ "description": "Description",
"delete_ays": "Please confirm the deletion process.",
"direct_aliases": "Direct alias addresses",
"direct_aliases_desc": "Direct alias addresses are affected by spam filter and TLS policy settings.",
@@ -1338,4 +1339,4 @@
"session_token": "Form token invalid: Token mismatch",
"session_ua": "Form token invalid: User-Agent validation error"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.es-es.json b/data/web/lang/lang.es-es.json
index 8a8c052742..6cc02f5b65 100644
--- a/data/web/lang/lang.es-es.json
+++ b/data/web/lang/lang.es-es.json
@@ -709,6 +709,7 @@
"create_syncjob": "Crear nuevo trabajo de sincronización",
"daily": "Cada día",
"day": "Día",
+ "description": "Descripción",
"direct_aliases": "Alias directos",
"direct_aliases_desc": "Los alias directos se ven afectadas por el filtro de correo no deseado y la configuración de la política TLS del usuario.",
"eas_reset": "Resetear el caché ActiveSync",
@@ -778,4 +779,4 @@
"fuzzy_learn_error": "Error aprendiendo hash: %s",
"ip_invalid": "IP inválida omitida: %s"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.fi-fi.json b/data/web/lang/lang.fi-fi.json
index 9b3cc84881..dfa8e81672 100644
--- a/data/web/lang/lang.fi-fi.json
+++ b/data/web/lang/lang.fi-fi.json
@@ -810,6 +810,7 @@
"create_syncjob": "Luo uusi synkronointi työ",
"daily": "Päivittäin",
"day": "Päivä",
+ "description": "Kuvaus",
"direct_aliases": "Suorat alias osoitteet",
"direct_aliases_desc": "Roska posti suodatus-ja TLS-käytäntö asetukset vaikuttavat suora aliaksen osoitteisiin.",
"eas_reset": "Tyhjennä ActiveSync-laitteen väli muisti",
@@ -908,4 +909,4 @@
"last": "Edellinen"
}
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.fr-fr.json b/data/web/lang/lang.fr-fr.json
index 386a4dfc64..56c888147e 100644
--- a/data/web/lang/lang.fr-fr.json
+++ b/data/web/lang/lang.fr-fr.json
@@ -1101,6 +1101,7 @@
"create_syncjob": "Créer une tâche de synchronisation",
"daily": "Quotidien",
"day": "jour",
+ "description": "Description",
"delete_ays": "Veuillez confirmer le processus de suppression.",
"direct_aliases": "Adresses alias directes",
"direct_aliases_desc": "Les adresses d’alias directes sont affectées par le filtre anti-spam et les paramètres de politique TLS.",
@@ -1267,4 +1268,4 @@
"ratelimit": {
"disabled": "Désactivé"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.hu-hu.json b/data/web/lang/lang.hu-hu.json
index e9762ff51c..5737794fdc 100644
--- a/data/web/lang/lang.hu-hu.json
+++ b/data/web/lang/lang.hu-hu.json
@@ -406,6 +406,7 @@
"create_syncjob": "Új szinkronizációs művelet létrehozása",
"daily": "Napi",
"day": "nap",
+ "description": "Leírás",
"delete_ays": "Erősítse meg a törlést.",
"direct_aliases": "Közvetlen alias címek",
"eas_reset": "ActiveSync eszköz gyorsítótár ürítése",
@@ -591,4 +592,4 @@
"app_name": "Alkalmazás neve",
"app_passwd_protocols": "Engedélyezett protokollok az alkalmazás jelszavához"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.it-it.json b/data/web/lang/lang.it-it.json
index f73f938bf9..d0d28fce8c 100644
--- a/data/web/lang/lang.it-it.json
+++ b/data/web/lang/lang.it-it.json
@@ -1126,6 +1126,7 @@
"created_on": "Creato il",
"daily": "Giornaliero",
"day": "giorno",
+ "description": "Descrizione",
"delete_ays": "Please confirm the deletion process.",
"direct_aliases": "Direct alias addresses",
"direct_aliases_desc": "Direct alias addresses are affected by spam filter and TLS policy settings.",
@@ -1308,4 +1309,4 @@
},
"decimal": "."
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.ko-kr.json b/data/web/lang/lang.ko-kr.json
index 3f3cb1535c..14c7966d0e 100644
--- a/data/web/lang/lang.ko-kr.json
+++ b/data/web/lang/lang.ko-kr.json
@@ -911,6 +911,7 @@
"create_syncjob": "새 동기화 작업 생성",
"daily": "매일",
"day": "일",
+ "description": "Description",
"delete_ays": "진짜 삭제하겠습니까?",
"direct_aliases": "Direct alias addresses",
"direct_aliases_desc": "Direct alias addresses are affected by spam filter and TLS policy settings.",
@@ -1020,4 +1021,4 @@
"session_token": "Form token invalid: Token mismatch",
"session_ua": "Form token invalid: User-Agent validation error"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.lv-lv.json b/data/web/lang/lang.lv-lv.json
index 98cb04ae8d..856566ae4a 100644
--- a/data/web/lang/lang.lv-lv.json
+++ b/data/web/lang/lang.lv-lv.json
@@ -551,6 +551,7 @@
"client_configuration": "Parādīt konfigurācijas norādes e-pasta klientiem un tālruņiem",
"create_syncjob": "Izveidot jaunu sinhronizācijas darbu",
"day": "Dienas",
+ "description": "Apraksts",
"direct_aliases": "Tiešas aizstājadreses",
"direct_aliases_desc": "Tiešās aizstājadreses ir surogātpasta atlasīšanas un TLS nosacījumu iestatījumu ietekmētas.",
"eas_reset": "Atiestatīt ActiveSync ierīces kešatmiņu",
@@ -659,4 +660,4 @@
"fido2": {
"fido2_auth": "Pieteikties ar FIDO2"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.nl-nl.json b/data/web/lang/lang.nl-nl.json
index fdfc91c701..49113cd31e 100644
--- a/data/web/lang/lang.nl-nl.json
+++ b/data/web/lang/lang.nl-nl.json
@@ -1028,6 +1028,7 @@
"create_syncjob": "Voeg sync job toe",
"daily": "Dagelijks",
"day": "dag",
+ "description": "Beschrijving",
"delete_ays": "Bevestig de verwijdering.",
"direct_aliases": "Directe aliasadressen",
"direct_aliases_desc": "Directe aliasadressen worden beïnvloed door spamfilters en het versleutelingsbeleid.",
@@ -1167,4 +1168,4 @@
"search": "Zoeken:",
"zeroRecords": "Geen overeenkomsten gevonden"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.pl-pl.json b/data/web/lang/lang.pl-pl.json
index aa185d32e3..cba7372a06 100644
--- a/data/web/lang/lang.pl-pl.json
+++ b/data/web/lang/lang.pl-pl.json
@@ -363,6 +363,7 @@
"create_syncjob": "Utwórz nowe polecenie synchronizacji",
"daily": "Co dzień",
"day": "Dzień",
+ "description": "Opis",
"direct_aliases": "Aliasy bezpośrednie",
"direct_aliases_desc": "Na aliasy bezpośrednie wpływają filtry spamu i ustawienia TLS.",
"eas_reset": "Zresetuj pamięć podręczną urządzenia ActiveSync",
@@ -431,4 +432,4 @@
"weekly": "Co tydzień",
"weeks": "Tygodnie"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.pt-br.json b/data/web/lang/lang.pt-br.json
index 2fbd43535c..7afea2587d 100644
--- a/data/web/lang/lang.pt-br.json
+++ b/data/web/lang/lang.pt-br.json
@@ -1186,6 +1186,7 @@
"created_on": "Criado em",
"daily": "Diariamente",
"day": "dia",
+ "description": "Descrição",
"delete_ays": "Confirme o processo de exclusão.",
"direct_aliases": "Endereços de alias diretos",
"direct_aliases_desc": "Os endereços de alias diretos são afetados pelo filtro de spam e pelas configurações da política TLS.",
@@ -1332,4 +1333,4 @@
"session_token": "Token de formulário inválido: incompatibilidade de token",
"session_ua": "Token de formulário inválido: erro de validação do agente de usuário"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.pt-pt.json b/data/web/lang/lang.pt-pt.json
index 624acd6dba..2279c2cec0 100644
--- a/data/web/lang/lang.pt-pt.json
+++ b/data/web/lang/lang.pt-pt.json
@@ -236,6 +236,7 @@
"aliases_send_as_all": "Não verificar remetente para os domínios",
"change_password": "Alterar senha",
"day": "Dia",
+ "description": "Descrição",
"edit": "Editar",
"hour": "Hora",
"hours": "Horas",
@@ -272,4 +273,4 @@
"week": "Semana",
"weeks": "Semanas"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.ro-ro.json b/data/web/lang/lang.ro-ro.json
index 90c96c218d..04fb31fed1 100644
--- a/data/web/lang/lang.ro-ro.json
+++ b/data/web/lang/lang.ro-ro.json
@@ -1064,6 +1064,7 @@
"created_on": "Creat în",
"daily": "Zilnic",
"day": "zi",
+ "description": "Descriere",
"delete_ays": "Vă rugăm să confirmați stergerea.",
"direct_aliases": "Adrese alias directe",
"direct_aliases_desc": "Adresele alias directe sunt afectate de setările filtrului de spam și ale politicii TLS.",
@@ -1210,4 +1211,4 @@
"expand_all": "Expandează tot",
"decimal": ","
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.ru-ru.json b/data/web/lang/lang.ru-ru.json
index 5d1ef9af2e..b021fd6953 100644
--- a/data/web/lang/lang.ru-ru.json
+++ b/data/web/lang/lang.ru-ru.json
@@ -1192,6 +1192,7 @@
"created_on": "Дата создания",
"daily": "Раз в день",
"day": "день",
+ "description": "Описание",
"delete_ays": "Пожалуйста, подтвердите удаление",
"direct_aliases": "Личные псевдонимы",
"direct_aliases_desc": "На личные псевдонимы распространяются фильтры нежелательной почты и параметры политики TLS.",
@@ -1338,4 +1339,4 @@
"session_token": "Неверный токен формы: несоответствие токена",
"session_ua": "Неверный токен формы: ошибка проверки User-Agent"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.sk-sk.json b/data/web/lang/lang.sk-sk.json
index 466afdb854..0abe95d4f3 100644
--- a/data/web/lang/lang.sk-sk.json
+++ b/data/web/lang/lang.sk-sk.json
@@ -1116,6 +1116,7 @@
"created_on": "Vytvorené",
"daily": "Denne",
"day": "deň",
+ "description": "Popis",
"delete_ays": "Potvrďte zmazanie.",
"direct_aliases": "Priame alias adresy",
"direct_aliases_desc": "Priame aliasy sú ovplyvnené spam filtrom a nastavením TLS pravidiel.",
@@ -1258,4 +1259,4 @@
"session_token": "Formulárový token neplatný: Tokenová nezhoda",
"session_ua": "Formulárový token neplatný: User-Agent validation error"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.sv-se.json b/data/web/lang/lang.sv-se.json
index bbf0d9586a..31cc148744 100644
--- a/data/web/lang/lang.sv-se.json
+++ b/data/web/lang/lang.sv-se.json
@@ -993,6 +993,7 @@
"created_on": "Skapad vid",
"daily": "Dagligen",
"day": "dag",
+ "description": "Beskrivning",
"delete_ays": "Är du säker att du vill ta bort det här objektet?",
"direct_aliases": "Direkta aliasadresser",
"direct_aliases_desc": "Endast direkta aliasadresser påverkas av spamfilter och TLS-policyföreskrifter.",
@@ -1112,4 +1113,4 @@
"session_token": "Formulär-nyckeln är ogiltig: Nyckeln matchar inte",
"session_ua": "Formulär-nyckeln är ogiltig: User-Agenten kunde inte valideras"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.tr-tr.json b/data/web/lang/lang.tr-tr.json
index 7049046c2a..4d18a73ba2 100644
--- a/data/web/lang/lang.tr-tr.json
+++ b/data/web/lang/lang.tr-tr.json
@@ -1207,6 +1207,7 @@
"created_on": "Oluşturulma tarihi",
"daily": "Günlük",
"day": "Gün",
+ "description": "Açıklama",
"delete_ays": "Lütfen silme işlemini onaylayın.",
"direct_aliases": "Doğrudan takma ad adresleri",
"eas_reset_help": "Birçok durumda cihaz önbelleğini sıfırlama, bozuk bir ActiveSync profilini kurtarmaya yardımcı olur.
Dikkat: Tüm öğeler yeniden indirilecek!",
@@ -1313,4 +1314,4 @@
"q_reject": "Reddedildi",
"week": "Hafta"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.uk-ua.json b/data/web/lang/lang.uk-ua.json
index f2884cd474..d003b9fda8 100644
--- a/data/web/lang/lang.uk-ua.json
+++ b/data/web/lang/lang.uk-ua.json
@@ -1135,6 +1135,7 @@
"created_on": "Дата створення",
"daily": "Раз на день",
"day": "день",
+ "description": "Опис",
"delete_ays": "Будь ласка, підтвердіть видалення.",
"eas_reset": "Скинути кеш ActiveSync пристроїв",
"eas_reset_help": "У багатьох випадках скидання кешу пристроїв допомагає відновити пошкоджений профіль ActiveSync.
Увага: всі листи, календарі та контакти будуть завантажені заново на всі ваші пристрої!",
@@ -1311,4 +1312,4 @@
},
"collapse_all": "Згорнути все"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.zh-cn.json b/data/web/lang/lang.zh-cn.json
index ca6c9aaf26..5cdaef09e6 100644
--- a/data/web/lang/lang.zh-cn.json
+++ b/data/web/lang/lang.zh-cn.json
@@ -1164,6 +1164,7 @@
"created_on": "添加于",
"daily": "每日",
"day": "日",
+ "description": "描述",
"delete_ays": "请确认删除。",
"direct_aliases": "直接别名",
"direct_aliases_desc": "垃圾邮件过滤和 TLS 策略会作用于直接别名。",
@@ -1336,4 +1337,4 @@
"loadingRecords": "加载中...",
"zeroRecords": "未找到符合条件的记录"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/lang/lang.zh-tw.json b/data/web/lang/lang.zh-tw.json
index 2017d1dddc..e3cc3aed95 100644
--- a/data/web/lang/lang.zh-tw.json
+++ b/data/web/lang/lang.zh-tw.json
@@ -1140,6 +1140,7 @@
"created_on": "建立於",
"daily": "每日",
"day": "日",
+ "description": "描述",
"delete_ays": "請確認刪除。",
"direct_aliases": "直接別名",
"direct_aliases_desc": "直接別名會受到垃圾郵件過濾器和 TLS 規則限制。",
@@ -1328,4 +1329,4 @@
"hold_mail": "保留",
"unhold_mail": "取消保留"
}
-}
+}
\ No newline at end of file
diff --git a/data/web/templates/modals/user.twig b/data/web/templates/modals/user.twig
index c9cd4b97eb..b8e3bf3abe 100644
--- a/data/web/templates/modals/user.twig
+++ b/data/web/templates/modals/user.twig
@@ -340,31 +340,22 @@