[Web] Various PHP 8 fixes, partly fixes #4219

master
andryyy 2021-08-09 08:28:22 +02:00
parent 7e958c9b26
commit 2cd0b56b14
No known key found for this signature in database
GPG Key ID: 8EC34FF2794E25EF
15 changed files with 524 additions and 506 deletions

View File

@ -460,7 +460,7 @@ if (isset($_SESSION['mailcow_cc_role'])) {
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2" for="script_data"><?=$lang['edit']['target_address'];?>:</label> <label class="control-label col-sm-2" for="script_data"><?=$lang['edit']['target_address'];?>:</label>
<div class="col-sm-10"> <div class="col-sm-10">
<textarea spellcheck="false" autocorrect="off" autocapitalize="none" class="form-control" rows="10" id="bcc_rcpt" name="bcc_rcpt"><?=implode(PHP_EOL, $quota_notification_bcc['bcc_rcpts']);?></textarea> <textarea spellcheck="false" autocorrect="off" autocapitalize="none" class="form-control" rows="10" id="bcc_rcpt" name="bcc_rcpt"><?=implode(PHP_EOL, (array)$quota_notification_bcc['bcc_rcpts']);?></textarea>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -623,7 +623,15 @@ if (isset($_SESSION['mailcow_cc_role'])) {
$rlyhosts = relayhost('get'); $rlyhosts = relayhost('get');
if (!empty($result)) { if (!empty($result)) {
?> ?>
<h4><?=$lang['edit']['mailbox'];?></h4> <ul class="nav nav-tabs responsive-tabs" role="tablist">
<li class="active"><a data-toggle="tab" href="#medit"><?=$lang['edit']['mailbox'];?></a></li>
<li><a data-toggle="tab" href="#mpushover"><?=$lang['edit']['pushover'];?></a></li>
<li><a data-toggle="tab" href="#macl"><?=$lang['edit']['acl'];?></a></li>
<li><a data-toggle="tab" href="#mrl"><?=$lang['edit']['ratelimit'];?></a></li>
</ul>
<hr>
<div class="tab-content">
<div id="medit" class="tab-pane in active">
<form class="form-horizontal" data-id="editmailbox" role="form" method="post"> <form class="form-horizontal" data-id="editmailbox" role="form" method="post">
<input type="hidden" value="default" name="sender_acl"> <input type="hidden" value="default" name="sender_acl">
<input type="hidden" value="0" name="force_pw_update"> <input type="hidden" value="0" name="force_pw_update">
@ -874,7 +882,8 @@ if (isset($_SESSION['mailcow_cc_role'])) {
</div> </div>
</div> </div>
</form> </form>
<hr> </div>
<div id="mpushover" class="tab-pane">
<form data-id="pushover" class="form well" method="post"> <form data-id="pushover" class="form well" method="post">
<input type="hidden" value="0" name="evaluate_x_prio"> <input type="hidden" value="0" name="evaluate_x_prio">
<input type="hidden" value="0" name="only_x_prio"> <input type="hidden" value="0" name="only_x_prio">
@ -953,31 +962,8 @@ if (isset($_SESSION['mailcow_cc_role'])) {
</div> </div>
</div> </div>
</form> </form>
<hr>
<form data-id="mboxratelimit" class="form-inline well" method="post">
<div class="row">
<div class="col-sm-1">
<p class="help-block"><?=$lang['acl']['ratelimit'];?></p>
</div> </div>
<div class="col-sm-10"> <div id="macl" class="tab-pane">
<div class="form-group">
<input name="rl_value" type="number" autocomplete="off" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="<?=$lang['ratelimit']['disabled']?>">
</div>
<div class="form-group">
<select name="rl_frame" class="form-control">
<option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>><?=$lang['ratelimit']['second']?></option>
<option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>><?=$lang['ratelimit']['minute']?></option>
<option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>><?=$lang['ratelimit']['hour']?></option>
<option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>><?=$lang['ratelimit']['day']?></option>
</select>
</div>
<div class="form-group">
<button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected" data-id="mboxratelimit" data-item="<?=htmlspecialchars($mailbox);?>" data-api-url='edit/rl-mbox' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>
</div>
<p class="help-block"><?=$lang['edit']['mbox_rl_info'];?></p>
</div>
</div>
</form>
<form data-id="useracl" class="form-inline well" method="post"> <form data-id="useracl" class="form-inline well" method="post">
<div class="row"> <div class="row">
<div class="col-sm-1"> <div class="col-sm-1">
@ -1002,6 +988,34 @@ if (isset($_SESSION['mailcow_cc_role'])) {
</div> </div>
</div> </div>
</form> </form>
</div>
<div id="mrl" class="tab-pane">
<form data-id="mboxratelimit" class="form-inline well" method="post">
<div class="row">
<div class="col-sm-1">
<p class="help-block"><?=$lang['acl']['ratelimit'];?></p>
</div>
<div class="col-sm-10">
<div class="form-group">
<input name="rl_value" type="number" autocomplete="off" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="<?=$lang['ratelimit']['disabled']?>">
</div>
<div class="form-group">
<select name="rl_frame" class="form-control">
<option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>><?=$lang['ratelimit']['second']?></option>
<option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>><?=$lang['ratelimit']['minute']?></option>
<option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>><?=$lang['ratelimit']['hour']?></option>
<option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>><?=$lang['ratelimit']['day']?></option>
</select>
</div>
<div class="form-group">
<button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected" data-id="mboxratelimit" data-item="<?=htmlspecialchars($mailbox);?>" data-api-url='edit/rl-mbox' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>
</div>
<p class="help-block"><?=$lang['edit']['mbox_rl_info'];?></p>
</div>
</div>
</form>
</div>
</div>
<?php <?php
} }
} }

View File

@ -268,9 +268,9 @@ if (isset($_SESSION['mailcow_cc_role']) && ($_SESSION['mailcow_cc_role'] == "adm
$currents = dns_get_record($record[0], 52, $_, $_, TRUE); $currents = dns_get_record($record[0], 52, $_, $_, TRUE);
foreach ($currents as &$current) { foreach ($currents as &$current) {
$current['type'] = 'TLSA'; $current['type'] = 'TLSA';
$current['cert_usage'] = hexdec(bin2hex($current['data']{0})); $current['cert_usage'] = hexdec(bin2hex($current['data'][0]));
$current['selector'] = hexdec(bin2hex($current['data']{1})); $current['selector'] = hexdec(bin2hex($current['data'][1]));
$current['match_type'] = hexdec(bin2hex($current['data']{2})); $current['match_type'] = hexdec(bin2hex($current['data'][2]));
$current['cert_data'] = bin2hex(substr($current['data'], 3)); $current['cert_data'] = bin2hex(substr($current['data'], 3));
$current['data'] = $current['cert_usage'] . ' ' . $current['selector'] . ' ' . $current['match_type'] . ' ' . $current['cert_data']; $current['data'] = $current['cert_usage'] . ' ' . $current['selector'] . ' ' . $current['match_type'] . ' ' . $current['cert_data'];
} }

View File

@ -167,7 +167,7 @@ function dkim($_action, $_data = null, $privkey = false) {
array_shift($pem_public_key_array); array_shift($pem_public_key_array);
array_pop($pem_public_key_array); array_pop($pem_public_key_array);
// Implode as single string // Implode as single string
$pem_public_key = implode('', $pem_public_key_array); $pem_public_key = implode('', (array)$pem_public_key_array);
$dkim_selector = (isset($_data['dkim_selector'])) ? $_data['dkim_selector'] : 'dkim'; $dkim_selector = (isset($_data['dkim_selector'])) ? $_data['dkim_selector'] : 'dkim';
$domain = $_data['domain']; $domain = $_data['domain'];
if (!is_valid_domain_name($domain)) { if (!is_valid_domain_name($domain)) {
@ -251,7 +251,7 @@ function dkim($_action, $_data = null, $privkey = false) {
} }
if ($GLOBALS['SPLIT_DKIM_255'] === true) { if ($GLOBALS['SPLIT_DKIM_255'] === true) {
$dkim_txt_tmp = str_split('v=DKIM1;k=rsa;t=s;s=email;p=' . $redis_dkim_key_data, 255); $dkim_txt_tmp = str_split('v=DKIM1;k=rsa;t=s;s=email;p=' . $redis_dkim_key_data, 255);
$dkimdata['dkim_txt'] = sprintf('"%s"', implode('" "', $dkim_txt_tmp ) ); $dkimdata['dkim_txt'] = sprintf('"%s"', implode('" "', (array)$dkim_txt_tmp ) );
} }
else { else {
$dkimdata['dkim_txt'] = 'v=DKIM1;k=rsa;t=s;s=email;p=' . $redis_dkim_key_data; $dkimdata['dkim_txt'] = 'v=DKIM1;k=rsa;t=s;s=email;p=' . $redis_dkim_key_data;

View File

@ -18,7 +18,7 @@ function fail2ban($_action, $_data = null) {
} }
if (isset($tmp_wl_data)) { if (isset($tmp_wl_data)) {
natsort($tmp_wl_data); natsort($tmp_wl_data);
$f2b_options['whitelist'] = implode(PHP_EOL, $tmp_wl_data); $f2b_options['whitelist'] = implode(PHP_EOL, (array)$tmp_wl_data);
} }
else { else {
$f2b_options['whitelist'] = ""; $f2b_options['whitelist'] = "";
@ -34,7 +34,7 @@ function fail2ban($_action, $_data = null) {
} }
if (isset($tmp_bl_data)) { if (isset($tmp_bl_data)) {
natsort($tmp_bl_data); natsort($tmp_bl_data);
$f2b_options['blacklist'] = implode(PHP_EOL, $tmp_bl_data); $f2b_options['blacklist'] = implode(PHP_EOL, (array)$tmp_bl_data);
} }
else { else {
$f2b_options['blacklist'] = ""; $f2b_options['blacklist'] = "";

View File

@ -57,7 +57,7 @@ function fwdhost($_action, $_data = null) {
$_SESSION['return'][] = array( $_SESSION['return'][] = array(
'type' => 'success', 'type' => 'success',
'log' => array(__FUNCTION__, $_action, $_data_log), 'log' => array(__FUNCTION__, $_action, $_data_log),
'msg' => array('forwarding_host_added', htmlspecialchars(implode(', ', $hosts))) 'msg' => array('forwarding_host_added', htmlspecialchars(implode(', ', (array)$hosts)))
); );
break; break;
case 'edit': case 'edit':

View File

@ -201,7 +201,7 @@ function password_complexity($_action, $_data = null) {
$policy_text[] = sprintf($lang['admin']["password_policy_$name"], $value); $policy_text[] = sprintf($lang['admin']["password_policy_$name"], $value);
} }
} }
return '<p class="help-block small">- ' . implode('<br>- ', $policy_text) . '</p>'; return '<p class="help-block small">- ' . implode('<br>- ', (array)$policy_text) . '</p>';
break; break;
} }
} }

View File

@ -683,7 +683,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
$gotos = array_unique($gotos); $gotos = array_unique($gotos);
$gotos = array_filter($gotos); $gotos = array_filter($gotos);
if (empty($gotos)) { return false; } if (empty($gotos)) { return false; }
$goto = implode(",", $gotos); $goto = implode(",", (array)$gotos);
} }
foreach ($addresses as $address) { foreach ($addresses as $address) {
if (empty($address)) { if (empty($address)) {
@ -1572,7 +1572,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
$_SESSION['return'][] = array( $_SESSION['return'][] = array(
'type' => 'success', 'type' => 'success',
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr), 'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
'msg' => array('mailbox_modified', htmlspecialchars(implode(', ', $usernames))) 'msg' => array('mailbox_modified', htmlspecialchars(implode(', ', (array)$usernames)))
); );
} }
break; break;
@ -2080,7 +2080,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
} }
$gotos = array_unique($gotos); $gotos = array_unique($gotos);
$gotos = array_filter($gotos); $gotos = array_filter($gotos);
$goto = implode(",", $gotos); $goto = implode(",", (array)$gotos);
} }
if (!empty($goto)) { if (!empty($goto)) {
$stmt = $pdo->prepare("UPDATE `alias` SET $stmt = $pdo->prepare("UPDATE `alias` SET
@ -3002,7 +3002,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
while($field = array_shift($fields)) { while($field = array_shift($fields)) {
$shown_fields[] = $field['Field']; $shown_fields[] = $field['Field'];
} }
$stmt = $pdo->prepare("SELECT " . implode(',', $shown_fields) . ", $stmt = $pdo->prepare("SELECT " . implode(',', (array)$shown_fields) . ",
`active` `active`
FROM `imapsync` WHERE id = :id"); FROM `imapsync` WHERE id = :id");
} }
@ -3017,7 +3017,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
while($field = array_shift($fields)) { while($field = array_shift($fields)) {
$shown_fields[] = $field['Field']; $shown_fields[] = $field['Field'];
} }
$stmt = $pdo->prepare("SELECT " . implode(',', $shown_fields) . ", $stmt = $pdo->prepare("SELECT " . implode(',', (array)$shown_fields) . ",
`active` `active`
FROM `imapsync` WHERE id = :id"); FROM `imapsync` WHERE id = :id");
} }
@ -4231,7 +4231,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
if (($key = array_search($username, $goto_exploded)) !== false) { if (($key = array_search($username, $goto_exploded)) !== false) {
unset($goto_exploded[$key]); unset($goto_exploded[$key]);
} }
$gotos_rebuild = implode(',', $goto_exploded); $gotos_rebuild = implode(',', (array)$goto_exploded);
$stmt = $pdo->prepare("UPDATE `alias` SET $stmt = $pdo->prepare("UPDATE `alias` SET
`goto` = :goto `goto` = :goto
WHERE `address` = :address"); WHERE `address` = :address");

View File

@ -188,7 +188,7 @@ function oauth2($_action, $_type, $_data = null) {
$_SESSION['return'][] = array( $_SESSION['return'][] = array(
'type' => 'success', 'type' => 'success',
'log' => array(__FUNCTION__, $_action, $_type, $_data), 'log' => array(__FUNCTION__, $_action, $_type, $_data),
'msg' => sprintf($lang['success']['items_deleted'], implode(', ', $access_tokens)) 'msg' => sprintf($lang['success']['items_deleted'], implode(', ', (array)$access_tokens))
); );
break; break;
case 'refresh_token': case 'refresh_token':
@ -210,7 +210,7 @@ function oauth2($_action, $_type, $_data = null) {
$_SESSION['return'][] = array( $_SESSION['return'][] = array(
'type' => 'success', 'type' => 'success',
'log' => array(__FUNCTION__, $_action, $_type, $_data), 'log' => array(__FUNCTION__, $_action, $_type, $_data),
'msg' => sprintf($lang['success']['items_deleted'], implode(', ', $refresh_tokens)) 'msg' => sprintf($lang['success']['items_deleted'], implode(', ', (array)$refresh_tokens))
); );
break; break;
} }

View File

@ -261,7 +261,7 @@ function policy($_action, $_scope, $_data = null) {
$_SESSION['return'][] = array( $_SESSION['return'][] = array(
'type' => 'success', 'type' => 'success',
'log' => array(__FUNCTION__, $_action, $_scope, $_data_log), 'log' => array(__FUNCTION__, $_action, $_scope, $_data_log),
'msg' => array('items_deleted', implode(', ', $prefids)) 'msg' => array('items_deleted', implode(', ', (array)$prefids))
); );
} }
break; break;

View File

@ -81,7 +81,7 @@ function pushover($_action, $_data = null) {
} }
$senders = array_filter($senders); $senders = array_filter($senders);
if (empty($senders)) { $senders = ''; } if (empty($senders)) { $senders = ''; }
$senders = implode(",", $senders); $senders = implode(",", (array)$senders);
if (!ctype_alnum($key) || strlen($key) != 30) { if (!ctype_alnum($key) || strlen($key) != 30) {
$_SESSION['return'][] = array( $_SESSION['return'][] = array(
'type' => 'danger', 'type' => 'danger',

View File

@ -45,7 +45,7 @@ function relayhost($_action, $_data = null) {
$_SESSION['return'][] = array( $_SESSION['return'][] = array(
'type' => 'success', 'type' => 'success',
'log' => array(__FUNCTION__, $_action, $_data_log), 'log' => array(__FUNCTION__, $_action, $_data_log),
'msg' => array('relayhost_added', htmlspecialchars(implode(', ', $hosts))) 'msg' => array('relayhost_added', htmlspecialchars(implode(', ', (array)$hosts)))
); );
break; break;
case 'edit': case 'edit':
@ -100,7 +100,7 @@ function relayhost($_action, $_data = null) {
$_SESSION['return'][] = array( $_SESSION['return'][] = array(
'type' => 'success', 'type' => 'success',
'log' => array(__FUNCTION__, $_action, $_data_log), 'log' => array(__FUNCTION__, $_action, $_data_log),
'msg' => array('object_modified', htmlspecialchars(implode(', ', $hostnames))) 'msg' => array('object_modified', htmlspecialchars(implode(', ', (array)$hostnames)))
); );
} }
break; break;
@ -307,7 +307,7 @@ function transport($_action, $_data = null) {
$_SESSION['return'][] = array( $_SESSION['return'][] = array(
'type' => 'success', 'type' => 'success',
'log' => array(__FUNCTION__, $_action, $_data_log), 'log' => array(__FUNCTION__, $_action, $_data_log),
'msg' => array('relayhost_added', htmlspecialchars(implode(', ', $hosts))) 'msg' => array('relayhost_added', htmlspecialchars(implode(', ', (array)$hosts)))
); );
break; break;
case 'edit': case 'edit':
@ -442,7 +442,7 @@ function transport($_action, $_data = null) {
$_SESSION['return'][] = array( $_SESSION['return'][] = array(
'type' => 'success', 'type' => 'success',
'log' => array(__FUNCTION__, $_action, $_data_log), 'log' => array(__FUNCTION__, $_action, $_data_log),
'msg' => array('object_modified', htmlspecialchars(implode(', ', $hostnames))) 'msg' => array('object_modified', htmlspecialchars(implode(', ', (array)$hostnames)))
); );
} }
break; break;

View File

@ -258,11 +258,11 @@ jQuery(function($){
}}, }},
{"name":"def_quota_for_mbox","title":lang.mailbox_defquota,"breakpoints":"xs sm md","style":{"width":"125px"}}, {"name":"def_quota_for_mbox","title":lang.mailbox_defquota,"breakpoints":"xs sm md","style":{"width":"125px"}},
{"name":"max_quota_for_mbox","title":lang.mailbox_quota,"breakpoints":"xs sm","style":{"width":"125px"}}, {"name":"max_quota_for_mbox","title":lang.mailbox_quota,"breakpoints":"xs sm","style":{"width":"125px"}},
{"name":"rl","title":"RL","breakpoints":"xs sm md lg","style":{"maxWidth":"100px","width":"100px"}}, {"name":"rl","title":"RL","breakpoints":"xs sm md lg","style":{"min-width":"100px","width":"100px"}},
{"name":"backupmx","filterable": false,"style":{"maxWidth":"120px","width":"120px"},"title":lang.backup_mx,"breakpoints":"xs sm md lg","formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}}, {"name":"backupmx","filterable": false,"style":{"min-width":"120px","width":"120px"},"title":lang.backup_mx,"breakpoints":"xs sm md lg","formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
{"name":"domain_admins","title":lang.domain_admins,"style":{"word-break":"break-all","min-width":"200px"},"breakpoints":"xs sm md lg","filterable":(role == "admin"),"visible":(role == "admin")}, {"name":"domain_admins","title":lang.domain_admins,"style":{"word-break":"break-all","min-width":"200px"},"breakpoints":"xs sm md lg","filterable":(role == "admin"),"visible":(role == "admin")},
{"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}}, {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
{"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"240px","width":"240px"},"type":"html","title":lang.action,"breakpoints":"xs sm md"} {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"240px","width":"240px"},"type":"html","title":lang.action,"breakpoints":"xs sm md"}
], ],
"rows": $.ajax({ "rows": $.ajax({
dataType: 'json', dataType: 'json',
@ -386,7 +386,7 @@ jQuery(function($){
}, },
{"name":"messages","filterable": false,"title":lang.msg_num,"breakpoints":"xs sm md"}, {"name":"messages","filterable": false,"title":lang.msg_num,"breakpoints":"xs sm md"},
/* {"name":"rl","title":"RL","breakpoints":"all","style":{"width":"125px"}}, */ /* {"name":"rl","title":"RL","breakpoints":"all","style":{"width":"125px"}}, */
{"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':(0==value?'<i class="bi bi-x-lg"></i>':2==value&&'&#8212;');}}, {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':(0==value?'<i class="bi bi-x-lg"></i>':2==value&&'&#8212;');}},
{"name":"action","filterable": false,"sortable": false,"style":{"min-width":"290px","text-align":"right"},"type":"html","title":lang.action,"breakpoints":"xs sm md"} {"name":"action","filterable": false,"sortable": false,"style":{"min-width":"290px","text-align":"right"},"type":"html","title":lang.action,"breakpoints":"xs sm md"}
], ],
"empty": lang.empty, "empty": lang.empty,
@ -512,9 +512,9 @@ jQuery(function($){
{"name":"name","title":lang.alias}, {"name":"name","title":lang.alias},
{"name":"kind","title":lang.kind}, {"name":"kind","title":lang.kind},
{"name":"domain","title":lang.domain,"breakpoints":"xs sm"}, {"name":"domain","title":lang.domain,"breakpoints":"xs sm"},
{"name":"multiple_bookings","filterable": false,"style":{"maxWidth":"150px","width":"140px"},"title":lang.multiple_bookings,"breakpoints":"xs sm"}, {"name":"multiple_bookings","filterable": false,"style":{"min-width":"150px","width":"140px"},"title":lang.multiple_bookings,"breakpoints":"xs sm"},
{"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}}, {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
{"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"} {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
], ],
"empty": lang.empty, "empty": lang.empty,
"rows": $.ajax({ "rows": $.ajax({
@ -650,11 +650,11 @@ jQuery(function($){
ft_recipient_map_table = FooTable.init('#recipient_map_table', { ft_recipient_map_table = FooTable.init('#recipient_map_table', {
"columns": [ "columns": [
{"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"}, {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
{"sorted": true,"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}}, {"sorted": true,"name":"id","title":"ID","style":{"min-width":"60px","width":"60px","text-align":"center"}},
{"name":"recipient_map_old","title":lang.recipient_map_old}, {"name":"recipient_map_old","title":lang.recipient_map_old},
{"name":"recipient_map_new","title":lang.recipient_map_new}, {"name":"recipient_map_new","title":lang.recipient_map_new},
{"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}}, {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
{"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":(role == "admin" ? lang.action : ""),"breakpoints":"xs sm"} {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":(role == "admin" ? lang.action : ""),"breakpoints":"xs sm"}
], ],
"empty": lang.empty, "empty": lang.empty,
"rows": $.ajax({ "rows": $.ajax({
@ -714,12 +714,12 @@ jQuery(function($){
ft_tls_policy_table = FooTable.init('#tls_policy_table', { ft_tls_policy_table = FooTable.init('#tls_policy_table', {
"columns": [ "columns": [
{"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"}, {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
{"sorted": true,"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}}, {"sorted": true,"name":"id","title":"ID","style":{"min-width":"60px","width":"60px","text-align":"center"}},
{"name":"dest","title":lang.tls_map_dest}, {"name":"dest","title":lang.tls_map_dest},
{"name":"policy","title":lang.tls_map_policy}, {"name":"policy","title":lang.tls_map_policy},
{"name":"parameters","title":lang.tls_map_parameters}, {"name":"parameters","title":lang.tls_map_parameters},
{"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}}, {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
{"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":(role == "admin" ? lang.action : ""),"breakpoints":"xs sm"} {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":(role == "admin" ? lang.action : ""),"breakpoints":"xs sm"}
], ],
"empty": lang.empty, "empty": lang.empty,
"rows": $.ajax({ "rows": $.ajax({
@ -784,15 +784,15 @@ jQuery(function($){
ft_alias_table = FooTable.init('#alias_table', { ft_alias_table = FooTable.init('#alias_table', {
"columns": [ "columns": [
{"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"}, {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
{"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}}, {"name":"id","title":"ID","style":{"min-width":"60px","width":"60px","text-align":"center"}},
{"sorted": true,"name":"address","title":lang.alias,"style":{"width":"250px"}}, {"sorted": true,"name":"address","title":lang.alias,"style":{"width":"250px"}},
{"name":"goto","title":lang.target_address}, {"name":"goto","title":lang.target_address},
{"name":"domain","title":lang.domain,"breakpoints":"xs sm"}, {"name":"domain","title":lang.domain,"breakpoints":"xs sm"},
{"name":"public_comment","title":lang.public_comment,"breakpoints":"all"}, {"name":"public_comment","title":lang.public_comment,"breakpoints":"all"},
{"name":"private_comment","title":lang.private_comment,"breakpoints":"all"}, {"name":"private_comment","title":lang.private_comment,"breakpoints":"all"},
{"name":"sogo_visible","title":lang.sogo_visible,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';},"breakpoints":"all"}, {"name":"sogo_visible","title":lang.sogo_visible,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';},"breakpoints":"all"},
{"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}}, {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
{"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"} {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
], ],
"empty": lang.empty, "empty": lang.empty,
"rows": $.ajax({ "rows": $.ajax({
@ -886,8 +886,8 @@ jQuery(function($){
{"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"}, {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
{"sorted": true,"name":"alias_domain","title":lang.alias,"style":{"width":"250px"}}, {"sorted": true,"name":"alias_domain","title":lang.alias,"style":{"width":"250px"}},
{"name":"target_domain","title":lang.target_domain,"type":"html"}, {"name":"target_domain","title":lang.target_domain,"type":"html"},
{"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}}, {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
{"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"250px","width":"250px"},"type":"html","title":lang.action,"breakpoints":"xs sm"} {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"250px","width":"250px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
], ],
"empty": lang.empty, "empty": lang.empty,
"rows": $.ajax({ "rows": $.ajax({
@ -949,17 +949,17 @@ jQuery(function($){
function draw_sync_job_table() { function draw_sync_job_table() {
ft_syncjob_table = FooTable.init('#sync_job_table', { ft_syncjob_table = FooTable.init('#sync_job_table', {
"columns": [ "columns": [
{"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"}, {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"},
{"sorted": true,"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}}, {"sorted": true,"name":"id","title":"ID","style":{"min-width":"60px","width":"60px","text-align":"center"}},
{"name":"user2","title":lang.owner}, {"name":"user2","title":lang.owner},
{"name":"server_w_port","title":"Server","breakpoints":"xs sm md","style":{"word-break":"break-all"}}, {"name":"server_w_port","title":"Server","breakpoints":"xs sm md","style":{"word-break":"break-all"}},
{"name":"exclude","title":lang.excludes,"breakpoints":"all"}, {"name":"exclude","title":lang.excludes,"breakpoints":"all"},
{"name":"mins_interval","title":lang.mins_interval,"breakpoints":"all"}, {"name":"mins_interval","title":lang.mins_interval,"breakpoints":"all"},
{"name":"last_run","title":lang.last_run,"breakpoints":"xs sm md"}, {"name":"last_run","title":lang.last_run,"breakpoints":"xs sm md"},
{"name":"log","title":"Log"}, {"name":"log","title":"Log"},
{"name":"active","filterable": false,"style":{"maxWidth":"70px","width":"70px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}}, {"name":"active","filterable": false,"style":{"min-width":"70px","width":"70px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
{"name":"is_running","filterable": false,"style":{"maxWidth":"120px","width":"100px"},"title":lang.status}, {"name":"is_running","filterable": false,"style":{"min-width":"120px","width":"100px"},"title":lang.status},
{"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"} {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
], ],
"empty": lang.empty, "empty": lang.empty,
"rows": $.ajax({ "rows": $.ajax({
@ -1031,14 +1031,14 @@ jQuery(function($){
function draw_filter_table() { function draw_filter_table() {
ft_filter_table = FooTable.init('#filter_table', { ft_filter_table = FooTable.init('#filter_table', {
"columns": [ "columns": [
{"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"}, {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"},
{"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}}, {"name":"id","title":"ID","style":{"min-width":"60px","width":"60px","text-align":"center"}},
{"name":"active","style":{"maxWidth":"80px","width":"80px"},"title":lang.active}, {"name":"active","style":{"min-width":"80px","width":"80px"},"title":lang.active},
{"name":"filter_type","style":{"maxWidth":"80px","width":"80px"},"title":"Type"}, {"name":"filter_type","style":{"min-width":"80px","width":"80px"},"title":"Type"},
{"sorted": true,"name":"username","title":lang.owner,"style":{"maxWidth":"550px","width":"350px"}}, {"sorted": true,"name":"username","title":lang.owner,"style":{"min-width":"550px","width":"350px"}},
{"name":"script_desc","title":lang.description,"breakpoints":"xs"}, {"name":"script_desc","title":lang.description,"breakpoints":"xs"},
{"name":"script_data","title":"Script","breakpoints":"all"}, {"name":"script_data","title":"Script","breakpoints":"all"},
{"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"} {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
], ],
"empty": lang.empty, "empty": lang.empty,
"rows": $.ajax({ "rows": $.ajax({

View File

@ -514,6 +514,7 @@
"optional": "Dieser Eintrag ist optional." "optional": "Dieser Eintrag ist optional."
}, },
"edit": { "edit": {
"acl": "ACL (Berechtigungen)",
"active": "Aktiv", "active": "Aktiv",
"admin": "Administrator bearbeiten", "admin": "Administrator bearbeiten",
"advanced_settings": "Erweiterte Einstellungen", "advanced_settings": "Erweiterte Einstellungen",
@ -574,6 +575,7 @@
"previous": "Vorherige Seite", "previous": "Vorherige Seite",
"private_comment": "Privater Kommentar", "private_comment": "Privater Kommentar",
"public_comment": "Öffentlicher Kommentar", "public_comment": "Öffentlicher Kommentar",
"pushover": "Pushover",
"pushover_evaluate_x_prio": "Hohe Priorität eskalieren [<code>X-Priority: 1</code>]", "pushover_evaluate_x_prio": "Hohe Priorität eskalieren [<code>X-Priority: 1</code>]",
"pushover_info": "Push-Benachrichtigungen werden angewendet auf alle nicht-Spam Nachrichten zugestellt an <b>%s</b>, einschließlich Alias-Adressen (shared, non-shared, tagged).", "pushover_info": "Push-Benachrichtigungen werden angewendet auf alle nicht-Spam Nachrichten zugestellt an <b>%s</b>, einschließlich Alias-Adressen (shared, non-shared, tagged).",
"pushover_only_x_prio": "Nur Mail mit hoher Priorität berücksichtigen [<code>X-Priority: 1</code>]", "pushover_only_x_prio": "Nur Mail mit hoher Priorität berücksichtigen [<code>X-Priority: 1</code>]",

View File

@ -517,6 +517,7 @@
"optional": "This record is optional." "optional": "This record is optional."
}, },
"edit": { "edit": {
"acl": "ACL (Permission)",
"active": "Active", "active": "Active",
"admin": "Edit administrator", "admin": "Edit administrator",
"advanced_settings": "Advanced settings", "advanced_settings": "Advanced settings",
@ -577,6 +578,7 @@
"previous": "Previous page", "previous": "Previous page",
"private_comment": "Private comment", "private_comment": "Private comment",
"public_comment": "Public comment", "public_comment": "Public comment",
"pushover": "Pushover",
"pushover_evaluate_x_prio": "Escalate high priority mail [<code>X-Priority: 1</code>]", "pushover_evaluate_x_prio": "Escalate high priority mail [<code>X-Priority: 1</code>]",
"pushover_info": "Push notification settings will apply to all clean (non-spam) mail delivered to <b>%s</b> including aliases (shared, non-shared, tagged).", "pushover_info": "Push notification settings will apply to all clean (non-spam) mail delivered to <b>%s</b> including aliases (shared, non-shared, tagged).",
"pushover_only_x_prio": "Only consider high priority mail [<code>X-Priority: 1</code>]", "pushover_only_x_prio": "Only consider high priority mail [<code>X-Priority: 1</code>]",