Add footable
parent
51230f780f
commit
892f2197cb
|
@ -1 +1 @@
|
|||
server_name logs.servercow.de autodiscover.* autoconfig.*;
|
||||
server_name mail.develcow.de autodiscover.* autoconfig.*;
|
||||
|
|
|
@ -4422,7 +4422,7 @@ function mailbox_get_resource_details($resource) {
|
|||
$resourcedata['name'] = $row['username'];
|
||||
$resourcedata['kind'] = $row['kind'];
|
||||
$resourcedata['multiple_bookings'] = $row['multiple_bookings'];
|
||||
$resourcedata['multiple_bookings_int'] = $row['multiple_bookings'];
|
||||
$resourcedata['multiple_bookings_int'] = $row['multiple_bookings_int'];
|
||||
$resourcedata['description'] = $row['name'];
|
||||
$resourcedata['active'] = $row['active'];
|
||||
$resourcedata['active_int'] = $row['active_int'];
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
<link rel="stylesheet" href="/css/bootstrap-select.min.css">
|
||||
<link rel="stylesheet" href="/css/bootstrap-slider.min.css">
|
||||
<link rel="stylesheet" href="/css/bootstrap-switch.min.css">
|
||||
<link rel="stylesheet" href="/css/footable.bootstrap.min.css">
|
||||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Source+Sans+Pro:400,600,700&subset=latin,latin-ext">
|
||||
<link rel="stylesheet" href="/inc/languages.min.css">
|
||||
<link rel="stylesheet" href="/css/mailcow.css">
|
||||
|
|
|
@ -28,22 +28,23 @@ $(document).ready(function() {
|
|||
item.quota = humanFileSize(item.quota_used_in_domain) + " / " + humanFileSize(item.max_quota_for_domain);
|
||||
item.max_quota_for_mbox = humanFileSize(item.max_quota_for_mbox);
|
||||
item.action = '<div class="btn-group">' +
|
||||
'<a href="/edit.php?domain=' + item.domain_name + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> Edit</a>' +
|
||||
'<a href="/delete.php?domain=' + item.domain_name + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> Remove</a>' +
|
||||
'<a href="/edit.php?domain=' + item.domain_name + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
|
||||
'<a href="/delete.php?domain=' + item.domain_name + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
|
||||
'</div>';
|
||||
});
|
||||
$('#domain_table').footable({
|
||||
"columns": [
|
||||
{"sorted": true,"name":"domain_name","title":lang_domain},
|
||||
{"name":"aliases","title":lang_aliases,"breakpoints":"xs sm"},
|
||||
{"name":"mailboxes","title":lang_mailboxes},
|
||||
{"name":"quota","title":lang_domain_quota},
|
||||
{"name":"max_quota_for_mbox","title":lang_mailbox_quota},
|
||||
{"name":"backupmx","title":lang_backup_mx,"breakpoints":"xs sm"},
|
||||
{"name":"active","title":lang_active,"breakpoints":"xs sm"},
|
||||
{"name":"action","type":"html","title":lang_action,"breakpoints":"xs sm"}
|
||||
{"sorted": true,"name":"domain_name","title":lang.domain,"style":{"width":"250px"}},
|
||||
{"name":"aliases","title":lang.aliases,"breakpoints":"xs sm"},
|
||||
{"name":"mailboxes","title":lang.mailboxes},
|
||||
{"name":"quota","title":lang.domain_quota},
|
||||
{"name":"max_quota_for_mbox","title":lang.mailbox_quota},
|
||||
{"name":"backupmx","title":lang.backup_mx,"breakpoints":"xs sm"},
|
||||
{"name":"active","style":{"maxWidth":"50px","width":"70px"},"title":lang.active},
|
||||
{"name":"action","sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
|
||||
],
|
||||
"rows": data,
|
||||
"empty": lang.empty,
|
||||
"paging": {
|
||||
"enabled": true,
|
||||
"limit": 5,
|
||||
|
@ -51,7 +52,8 @@ $(document).ready(function() {
|
|||
},
|
||||
"filtering": {
|
||||
"enabled": true,
|
||||
"position": "left"
|
||||
"position": "left",
|
||||
"placeholder": lang.search
|
||||
},
|
||||
"sorting": {
|
||||
"enabled": true
|
||||
|
@ -72,8 +74,8 @@ $(document).ready(function() {
|
|||
item.quota = humanFileSize(item.quota_used) + " / " + humanFileSize(item.quota);
|
||||
item.max_quota_for_mbox = humanFileSize(item.max_quota_for_mbox);
|
||||
item.action = '<div class="btn-group">' +
|
||||
'<a href="/edit.php?mailbox=' + item.username + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> Edit</a>' +
|
||||
'<a href="/delete.php?mailbox=' + item.username + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> Remove</a>' +
|
||||
'<a href="/edit.php?mailbox=' + item.username + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
|
||||
'<a href="/delete.php?mailbox=' + item.username + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
|
||||
'</div>';
|
||||
item.in_use = '<div class="progress">' +
|
||||
'<div class="progress-bar progress-bar-' + item.percent_class + ' role="progressbar" aria-valuenow="' + item.percent_in_use + '" aria-valuemin="0" aria-valuemax="100" ' +
|
||||
|
@ -82,16 +84,17 @@ $(document).ready(function() {
|
|||
});
|
||||
$('#mailbox_table').footable({
|
||||
"columns": [
|
||||
{"sorted": true,"name":"username","title":lang_username},
|
||||
{"name":"name","title":lang_fname,"breakpoints":"xs sm"},
|
||||
{"name":"domain","title":lang_domain},
|
||||
{"name":"quota","title":lang_domain_quota},
|
||||
{"name":"spam_aliases","title":lang_spam_aliases},
|
||||
{"name":"in_use","type":"html","title":lang_in_use},
|
||||
{"name":"messages","title":lang_msg_num,"breakpoints":"xs sm"},
|
||||
{"name":"active","title":lang_active,"breakpoints":"xs sm"},
|
||||
{"name":"action","type":"html","title":lang_action,"breakpoints":"xs sm"}
|
||||
{"sorted": true,"name":"username","title":lang.username,"style":{"width":"250px"}},
|
||||
{"name":"name","title":lang.fname,"breakpoints":"xs sm"},
|
||||
{"name":"domain","title":lang.domain},
|
||||
{"name":"quota","title":lang.domain_quota},
|
||||
{"name":"spam_aliases","title":lang.spam_aliases},
|
||||
{"name":"in_use","type":"html","title":lang.in_use},
|
||||
{"name":"messages","title":lang.msg_num,"breakpoints":"xs sm"},
|
||||
{"name":"active","style":{"maxWidth":"50px","width":"70px"},"title":lang.active},
|
||||
{"name":"action","sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
|
||||
],
|
||||
"empty": lang.empty,
|
||||
"rows": data,
|
||||
"paging": {
|
||||
"enabled": true,
|
||||
|
@ -100,7 +103,8 @@ $(document).ready(function() {
|
|||
},
|
||||
"filtering": {
|
||||
"enabled": true,
|
||||
"position": "left"
|
||||
"position": "left",
|
||||
"placeholder": lang.search
|
||||
},
|
||||
"sorting": {
|
||||
"enabled": true
|
||||
|
@ -109,4 +113,130 @@ $(document).ready(function() {
|
|||
}
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: '/json_api.php?action=resource_table_data',
|
||||
jsonp: false,
|
||||
error: function () {
|
||||
alert('Cannot receive history');
|
||||
},
|
||||
success: function (data) {
|
||||
$.each(data, function (i, item) {
|
||||
item.action = '<div class="btn-group">' +
|
||||
'<a href="/edit.php?resource=' + item.name + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
|
||||
'<a href="/delete.php?resource=' + item.name + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
|
||||
'</div>';
|
||||
});
|
||||
$('#resources_table').footable({
|
||||
"columns": [
|
||||
{"sorted": true,"name":"description","title":lang.description,"style":{"width":"250px"}},
|
||||
{"name":"kind","title":lang.kind,"breakpoints":"xs sm"},
|
||||
{"name":"domain","title":lang.domain},
|
||||
{"name":"multiple_bookings","title":lang.multiple_bookings},
|
||||
{"name":"domain","title":lang.domain},
|
||||
{"name":"active","style":{"maxWidth":"50px","width":"70px"},"title":lang.active},
|
||||
{"name":"action","sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
|
||||
],
|
||||
"empty": lang.empty,
|
||||
"rows": data,
|
||||
"paging": {
|
||||
"enabled": true,
|
||||
"limit": 5,
|
||||
"size": 25
|
||||
},
|
||||
"filtering": {
|
||||
"enabled": true,
|
||||
"position": "left",
|
||||
"placeholder": lang.search
|
||||
},
|
||||
"sorting": {
|
||||
"enabled": true
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: '/json_api.php?action=domain_alias_table_data',
|
||||
jsonp: false,
|
||||
error: function () {
|
||||
alert('Cannot receive history');
|
||||
},
|
||||
success: function (data) {
|
||||
$.each(data, function (i, item) {
|
||||
item.action = '<div class="btn-group">' +
|
||||
'<a href="/edit.php?aliasdomain=' + item.alias_domain + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
|
||||
'<a href="/delete.php?aliasdomain=' + item.alias_domain + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
|
||||
'</div>';
|
||||
});
|
||||
$('#aliasdomain_table').footable({
|
||||
"columns": [
|
||||
{"sorted": true,"name":"alias_domain","title":lang.alias,"style":{"width":"250px"}},
|
||||
{"name":"target_domain","title":lang.target_domain,"breakpoints":"xs sm"},
|
||||
{"name":"active","style":{"maxWidth":"50px","width":"70px"},"title":lang.active},
|
||||
{"name":"action","sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
|
||||
],
|
||||
"empty": lang.empty,
|
||||
"rows": data,
|
||||
"paging": {
|
||||
"enabled": true,
|
||||
"limit": 5,
|
||||
"size": 25
|
||||
},
|
||||
"filtering": {
|
||||
"enabled": true,
|
||||
"position": "left",
|
||||
"placeholder": lang.search
|
||||
},
|
||||
"sorting": {
|
||||
"enabled": true
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: '/json_api.php?action=alias_table_data',
|
||||
jsonp: false,
|
||||
error: function () {
|
||||
alert('Cannot receive history');
|
||||
},
|
||||
success: function (data) {
|
||||
$.each(data, function (i, item) {
|
||||
if (item.is_catch_all == 1) {
|
||||
item.address = '<div class="label label-default">Catch-All</div> ' + item.address;
|
||||
}
|
||||
item.action = '<div class="btn-group">' +
|
||||
'<a href="/edit.php?alias=' + item.address + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
|
||||
'<a href="/delete.php?alias=' + item.address + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
|
||||
'</div>';
|
||||
});
|
||||
$('#alias_table').footable({
|
||||
"columns": [
|
||||
{"sorted": true,"name":"address","title":lang.alias,"style":{"width":"250px"}},
|
||||
{"name":"goto","title":lang.target_address},
|
||||
{"name":"domain","title":lang.domain},
|
||||
{"name":"active","style":{"maxWidth":"50px","width":"70px"},"title":lang.active},
|
||||
{"name":"action","sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
|
||||
],
|
||||
"empty": lang.empty,
|
||||
"rows": data,
|
||||
"paging": {
|
||||
"enabled": true,
|
||||
"limit": 5,
|
||||
"size": 5
|
||||
},
|
||||
"filtering": {
|
||||
"enabled": true,
|
||||
"position": "left",
|
||||
"placeholder": lang.search
|
||||
},
|
||||
"sorting": {
|
||||
"enabled": true
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,13 +2,104 @@
|
|||
require_once 'inc/prerequisites.inc.php';
|
||||
error_reporting(E_ALL);
|
||||
if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_username'])) {
|
||||
if ($_GET['action'] && $_GET['object']) {
|
||||
if (isset($_GET['action'])) {
|
||||
$action = $_GET['action'];
|
||||
$object = $_GET['object'];
|
||||
switch ($action) {
|
||||
case "domain_table_data":
|
||||
$domains = mailbox_get_domains();
|
||||
if (!empty($domains)) {
|
||||
foreach ($domains as $domain) {
|
||||
$data[] = mailbox_get_domain_details($domain);
|
||||
}
|
||||
if (!isset($data) || empty($data)) {
|
||||
echo '{}';
|
||||
}
|
||||
else {
|
||||
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "mailbox_table_data":
|
||||
$domains = mailbox_get_domains();
|
||||
if (!empty($domains)) {
|
||||
foreach ($domains as $domain) {
|
||||
$mailboxes = mailbox_get_mailboxes($domain);
|
||||
if (!empty($mailboxes)) {
|
||||
foreach ($mailboxes as $mailbox) {
|
||||
$data[] = mailbox_get_mailbox_details($mailbox);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isset($data) || empty($data)) {
|
||||
echo '{}';
|
||||
}
|
||||
else {
|
||||
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "resource_table_data":
|
||||
$domains = mailbox_get_domains();
|
||||
if (!empty($domains)) {
|
||||
foreach ($domains as $domain) {
|
||||
$resources = mailbox_get_resources($domain);
|
||||
if (!empty($resources)) {
|
||||
foreach ($resources as $resource) {
|
||||
$data[] = mailbox_get_resource_details($resource);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isset($data) || empty($data)) {
|
||||
echo '{}';
|
||||
}
|
||||
else {
|
||||
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "domain_alias_table_data":
|
||||
$domains = mailbox_get_domains();
|
||||
if (!empty($domains)) {
|
||||
foreach ($domains as $domain) {
|
||||
$alias_domains = mailbox_get_alias_domains($domain);
|
||||
if (!empty($alias_domains)) {
|
||||
foreach ($alias_domains as $alias_domain) {
|
||||
$data[] = mailbox_get_alias_domain_details($alias_domain);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isset($data) || empty($data)) {
|
||||
echo '{}';
|
||||
}
|
||||
else {
|
||||
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "alias_table_data":
|
||||
$domains = array_merge(mailbox_get_domains(), mailbox_get_alias_domains());
|
||||
if (!empty($domains)) {
|
||||
foreach ($domains as $domain) {
|
||||
$aliases = mailbox_get_aliases($domain);
|
||||
if (!empty($aliases)) {
|
||||
foreach ($aliases as $alias) {
|
||||
$data[] = mailbox_get_alias_details($alias);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isset($data) || empty($data)) {
|
||||
echo '{}';
|
||||
}
|
||||
else {
|
||||
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "get_mailbox_details":
|
||||
if (!isset($_GET['object'])) { return false; }
|
||||
$object = $_GET['object'];
|
||||
$data = mailbox_get_mailbox_details($object);
|
||||
if (!$data || empty($data)) {
|
||||
if (!isset($data) || empty($data)) {
|
||||
echo '{}';
|
||||
}
|
||||
else {
|
||||
|
@ -16,8 +107,10 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u
|
|||
}
|
||||
break;
|
||||
case "get_domain_details":
|
||||
if (!isset($_GET['object'])) { return false; }
|
||||
$object = $_GET['object'];
|
||||
$data = mailbox_get_domain_details($object);
|
||||
if (!$data || empty($data)) {
|
||||
if (!isset($data) || empty($data)) {
|
||||
echo '{}';
|
||||
}
|
||||
else {
|
||||
|
@ -25,6 +118,8 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u
|
|||
}
|
||||
break;
|
||||
case "get_u2f_reg_challenge":
|
||||
if (!isset($_GET['object'])) { return false; }
|
||||
$object = $_GET['object'];
|
||||
if (
|
||||
($_SESSION["mailcow_cc_role"] == "admin" || $_SESSION["mailcow_cc_role"] == "domainadmin")
|
||||
&&
|
||||
|
@ -40,6 +135,8 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u
|
|||
}
|
||||
break;
|
||||
case "get_u2f_auth_challenge":
|
||||
if (!isset($_GET['object'])) { return false; }
|
||||
$object = $_GET['object'];
|
||||
if (isset($_SESSION['pending_mailcow_cc_username']) && $_SESSION['pending_mailcow_cc_username'] == $object) {
|
||||
$reqs = json_encode($u2f->getAuthenticateData(get_u2f_registrations($object)));
|
||||
$_SESSION['authReq'] = $reqs;
|
||||
|
|
|
@ -5,6 +5,15 @@ if (isset($_SESSION['mailcow_cc_role']) && ($_SESSION['mailcow_cc_role'] == "adm
|
|||
require_once "inc/header.inc.php";
|
||||
$_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
|
||||
?>
|
||||
<style>
|
||||
table.footable>tbody>tr.footable-empty>td {
|
||||
font-size:15px !important;
|
||||
font-style:italic;
|
||||
}
|
||||
.pagination a {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
</style>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
@ -36,9 +45,9 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
|
|||
<a href="/add.php?mailbox"><span class="glyphicon glyphicon-plus"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table id="mailbox_table" class="table table-striped"></table>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table id="mailbox_table" class="table table-striped"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -51,11 +60,9 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
|
|||
<a href="/add.php?resource"><span class="glyphicon glyphicon-plus"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="table-responsive">
|
||||
<table id="resources_table" class="table table-striped"></table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table id="resources_table" class="table table-striped"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -68,11 +75,9 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
|
|||
<a href="/add.php?aliasdomain"><span class="glyphicon glyphicon-plus"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="table-responsive">
|
||||
<table id="aliasdomain_table" class="table table-striped"></table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table id="aliasdomain_table" class="table table-striped"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -86,28 +91,18 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
|
|||
<a href="/add.php?alias"><span class="glyphicon glyphicon-plus"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="table-responsive">
|
||||
<table id="alias_table" class="table table-striped"></table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table id="alias_table" class="table table-striped"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- /container -->
|
||||
<script>
|
||||
var lang_domain = '<?=$lang['mailbox']['domain'];?>';
|
||||
var lang_aliases = '<?=$lang['mailbox']['aliases'];?>';
|
||||
var lang_mailboxes = '<?=$lang['mailbox']['mailboxes'];?>';
|
||||
var lang_mailbox_quota = '<?=$lang['mailbox']['mailbox_quota'];?>';
|
||||
var lang_domain_quota = '<?=$lang['mailbox']['domain_quota'];?>';
|
||||
var lang_backup_mx = '<?=$lang['mailbox']['backup_mx'];?>';
|
||||
var lang_active = '<?=$lang['mailbox']['active'];?>';
|
||||
var lang_username = '<?=$lang['mailbox']['username'];?>';
|
||||
var lang_fname = '<?=$lang['mailbox']['fname'];?>';
|
||||
var lang_spam_aliases = '<?=$lang['mailbox']['spam_aliases'];?>';
|
||||
var lang_in_use = '<?=$lang['mailbox']['in_use'];?>';
|
||||
var lang_msg_num = '<?=$lang['mailbox']['msg_num'];?>';
|
||||
<script type='text/javascript'>
|
||||
<?php
|
||||
$lang_mailbox = json_encode($lang['mailbox']);
|
||||
echo "var lang = ". $lang_mailbox . ";\n";
|
||||
?>
|
||||
</script>
|
||||
<script src="js/footable.min.js"></script>
|
||||
<script src="js/mailbox.js"></script>
|
||||
|
|
|
@ -261,6 +261,9 @@ networks:
|
|||
|
||||
volumes:
|
||||
vmail-vol-1:
|
||||
driver: nfs
|
||||
driver_opts:
|
||||
share: io.servercow.de:/nfs_test
|
||||
mysql-vol-1:
|
||||
dkim-vol-1:
|
||||
redis-vol-1:
|
||||
|
|
Loading…
Reference in New Issue