[BS5] fix minor issues
This commit is contained in:
		@@ -63,6 +63,12 @@
 | 
				
			|||||||
.navbar-nav {
 | 
					.navbar-nav {
 | 
				
			||||||
  margin: 0;
 | 
					  margin: 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					.navbar-nav .nav-link {
 | 
				
			||||||
 | 
					  height: 44px;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  margin: 0 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
.navbar-fixed-bottom .navbar-collapse, 
 | 
					.navbar-fixed-bottom .navbar-collapse, 
 | 
				
			||||||
.navbar-fixed-top .navbar-collapse {
 | 
					.navbar-fixed-top .navbar-collapse {
 | 
				
			||||||
  max-height: 1000px
 | 
					  max-height: 1000px
 | 
				
			||||||
@@ -169,6 +175,9 @@ legend {
 | 
				
			|||||||
.bootstrap-select.btn-group .no-results {
 | 
					.bootstrap-select.btn-group .no-results {
 | 
				
			||||||
  display: none;
 | 
					  display: none;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary {
 | 
				
			||||||
 | 
					  color: rgb(197, 197, 197) !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
.haveibeenpwned {
 | 
					.haveibeenpwned {
 | 
				
			||||||
  cursor: pointer;
 | 
					  cursor: pointer;
 | 
				
			||||||
  -webkit-user-select: none;  
 | 
					  -webkit-user-select: none;  
 | 
				
			||||||
@@ -214,7 +223,7 @@ legend {
 | 
				
			|||||||
.btn-input-missing:active:hover,
 | 
					.btn-input-missing:active:hover,
 | 
				
			||||||
.btn-input-missing:active:focus {
 | 
					.btn-input-missing:active:focus {
 | 
				
			||||||
  color: #000 !important;
 | 
					  color: #000 !important;
 | 
				
			||||||
  background-color: #ff4136;
 | 
					  background-color: rgba(255, 65, 54, 0.2);
 | 
				
			||||||
  border-color: #ff291c;
 | 
					  border-color: #ff291c;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.navbar-nav > li {
 | 
					.navbar-nav > li {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -254,7 +254,7 @@ $css_dir = array_diff(scandir('/web/css/build'), array('..', '.'));
 | 
				
			|||||||
$UI_TEXTS = customize('get', 'ui_texts');
 | 
					$UI_TEXTS = customize('get', 'ui_texts');
 | 
				
			||||||
$UI_THEME = "lumen"; // TODO: customize('get', 'ui_theme');
 | 
					$UI_THEME = "lumen"; // TODO: customize('get', 'ui_theme');
 | 
				
			||||||
// minify bootstrap theme
 | 
					// minify bootstrap theme
 | 
				
			||||||
if (file_exists('/web/css/themes'.$UI_THEME.'-bootstrap.css'))
 | 
					if (file_exists('/web/css/themes/'.$UI_THEME.'-bootstrap.css'))
 | 
				
			||||||
  $css_minifier->add('/web/css/themes/'.$UI_THEME.'-bootstrap.css');
 | 
					  $css_minifier->add('/web/css/themes/'.$UI_THEME.'-bootstrap.css');
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
  $css_minifier->add('/web/css/themes/lumen-bootstrap.css'); 
 | 
					  $css_minifier->add('/web/css/themes/lumen-bootstrap.css'); 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -678,13 +678,13 @@ jQuery(function($){
 | 
				
			|||||||
        "value": scan_time
 | 
					        "value": scan_time
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      if (item.action === 'clean' || item.action === 'no action') {
 | 
					      if (item.action === 'clean' || item.action === 'no action') {
 | 
				
			||||||
        item.action = "<div class='badge fs-5 bg-success'>" + item.action + "</div>";
 | 
					        item.action = "<div class='badge fs-6 bg-success'>" + item.action + "</div>";
 | 
				
			||||||
      } else if (item.action === 'rewrite subject' || item.action === 'add header' || item.action === 'probable spam') {
 | 
					      } else if (item.action === 'rewrite subject' || item.action === 'add header' || item.action === 'probable spam') {
 | 
				
			||||||
        item.action = "<div class='badge fs-5 bg-warning'>" + item.action + "</div>";
 | 
					        item.action = "<div class='badge fs-6 bg-warning'>" + item.action + "</div>";
 | 
				
			||||||
      } else if (item.action === 'spam' || item.action === 'reject') {
 | 
					      } else if (item.action === 'spam' || item.action === 'reject') {
 | 
				
			||||||
        item.action = "<div class='badge fs-5 bg-danger'>" + item.action + "</div>";
 | 
					        item.action = "<div class='badge fs-6 bg-danger'>" + item.action + "</div>";
 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
        item.action = "<div class='badge fs-5 bg-info'>" + item.action + "</div>";
 | 
					        item.action = "<div class='badge fs-6 bg-info'>" + item.action + "</div>";
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      var score_content;
 | 
					      var score_content;
 | 
				
			||||||
      if (item.score < item.required_score) {
 | 
					      if (item.score < item.required_score) {
 | 
				
			||||||
@@ -711,13 +711,13 @@ jQuery(function($){
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        item.ua = '<span style="font-size:small">' + item.ua + '</span>';
 | 
					        item.ua = '<span style="font-size:small">' + item.ua + '</span>';
 | 
				
			||||||
        if (item.service == "activesync") {
 | 
					        if (item.service == "activesync") {
 | 
				
			||||||
          item.service = '<span class="badge fs-5 bg-info">ActiveSync</span>';
 | 
					          item.service = '<span class="badge fs-6 bg-info">ActiveSync</span>';
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else if (item.service == "imap") {
 | 
					        else if (item.service == "imap") {
 | 
				
			||||||
          item.service = '<span class="badge fs-5 bg-success">IMAP, SMTP, Cal-/CardDAV</span>';
 | 
					          item.service = '<span class="badge fs-6 bg-success">IMAP, SMTP, Cal-/CardDAV</span>';
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else {
 | 
					        else {
 | 
				
			||||||
          item.service = '<span class="badge fs-5 bg-danger">' + escapeHtml(item.service) + '</span>';
 | 
					          item.service = '<span class="badge fs-6 bg-danger">' + escapeHtml(item.service) + '</span>';
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    } else if (table == 'watchdog') {
 | 
					    } else if (table == 'watchdog') {
 | 
				
			||||||
@@ -725,13 +725,13 @@ jQuery(function($){
 | 
				
			|||||||
        if (item.message == null) {
 | 
					        if (item.message == null) {
 | 
				
			||||||
          item.message = 'Health level: ' + item.lvl + '% (' + item.hpnow + '/' + item.hptotal + ')';
 | 
					          item.message = 'Health level: ' + item.lvl + '% (' + item.hpnow + '/' + item.hptotal + ')';
 | 
				
			||||||
          if (item.hpdiff < 0) {
 | 
					          if (item.hpdiff < 0) {
 | 
				
			||||||
            item.trend = '<span class="badge fs-5 bg-danger"><i class="bi bi-caret-down-fill"></i> ' + item.hpdiff + '</span>';
 | 
					            item.trend = '<span class="badge fs-6 bg-danger"><i class="bi bi-caret-down-fill"></i> ' + item.hpdiff + '</span>';
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          else if (item.hpdiff == 0) {
 | 
					          else if (item.hpdiff == 0) {
 | 
				
			||||||
            item.trend = '<span class="badge fs-5 bg-info"><i class="bi bi-caret-right-fill"></i> ' + item.hpdiff + '</span>';
 | 
					            item.trend = '<span class="badge fs-6 bg-info"><i class="bi bi-caret-right-fill"></i> ' + item.hpdiff + '</span>';
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          else {
 | 
					          else {
 | 
				
			||||||
            item.trend = '<span class="badge fs-5 bg-success"><i class="bi bi-caret-up-fill"></i> ' + item.hpdiff + '</span>';
 | 
					            item.trend = '<span class="badge fs-6 bg-success"><i class="bi bi-caret-up-fill"></i> ' + item.hpdiff + '</span>';
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else {
 | 
					        else {
 | 
				
			||||||
@@ -745,13 +745,13 @@ jQuery(function($){
 | 
				
			|||||||
        item.user = escapeHtml(item.user);
 | 
					        item.user = escapeHtml(item.user);
 | 
				
			||||||
        item.call = escapeHtml(item.call);
 | 
					        item.call = escapeHtml(item.call);
 | 
				
			||||||
        item.task = '<code>' + item.task + '</code>';
 | 
					        item.task = '<code>' + item.task + '</code>';
 | 
				
			||||||
        item.type = '<span class="badge fs-5 bg-' + item.type + '">' + item.type + '</span>';
 | 
					        item.type = '<span class="badge fs-6 bg-' + item.type + '">' + item.type + '</span>';
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    } else if (table == 'sasl_log_table') {
 | 
					    } else if (table == 'sasl_log_table') {
 | 
				
			||||||
      $.each(data, function (i, item) {
 | 
					      $.each(data, function (i, item) {
 | 
				
			||||||
        if (item === null) { return true; }
 | 
					        if (item === null) { return true; }
 | 
				
			||||||
        item.username = escapeHtml(item.username);
 | 
					        item.username = escapeHtml(item.username);
 | 
				
			||||||
        item.service = '<div class="badge fs-5 bg-secondary">' + item.service.toUpperCase() + '</div>';
 | 
					        item.service = '<div class="badge fs-6 bg-secondary">' + item.service.toUpperCase() + '</div>';
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    } else if (table == 'general_syslog') {
 | 
					    } else if (table == 'general_syslog') {
 | 
				
			||||||
      $.each(data, function (i, item) {
 | 
					      $.each(data, function (i, item) {
 | 
				
			||||||
@@ -770,20 +770,20 @@ jQuery(function($){
 | 
				
			|||||||
        var warning_class = ["warning", "warn"];
 | 
					        var warning_class = ["warning", "warn"];
 | 
				
			||||||
        var info_class = ["notice", "info", "debug"];
 | 
					        var info_class = ["notice", "info", "debug"];
 | 
				
			||||||
        if (jQuery.inArray(item.priority, danger_class) !== -1) {
 | 
					        if (jQuery.inArray(item.priority, danger_class) !== -1) {
 | 
				
			||||||
          item.priority = '<span class="badge fs-5 bg-danger">' + item.priority + '</span>';
 | 
					          item.priority = '<span class="badge fs-6 bg-danger">' + item.priority + '</span>';
 | 
				
			||||||
        } else if (jQuery.inArray(item.priority, warning_class) !== -1) {
 | 
					        } else if (jQuery.inArray(item.priority, warning_class) !== -1) {
 | 
				
			||||||
          item.priority = '<span class="badge fs-5 bg-warning">' + item.priority + '</span>';
 | 
					          item.priority = '<span class="badge fs-6 bg-warning">' + item.priority + '</span>';
 | 
				
			||||||
        } else if (jQuery.inArray(item.priority, info_class) !== -1) {
 | 
					        } else if (jQuery.inArray(item.priority, info_class) !== -1) {
 | 
				
			||||||
          item.priority = '<span class="badge fs-5 bg-info">' + item.priority + '</span>';
 | 
					          item.priority = '<span class="badge fs-6 bg-info">' + item.priority + '</span>';
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    } else if (table == 'apilog') {
 | 
					    } else if (table == 'apilog') {
 | 
				
			||||||
      $.each(data, function (i, item) {
 | 
					      $.each(data, function (i, item) {
 | 
				
			||||||
        if (item === null) { return true; }
 | 
					        if (item === null) { return true; }
 | 
				
			||||||
        if (item.method == 'GET') {
 | 
					        if (item.method == 'GET') {
 | 
				
			||||||
          item.method = '<span class="badge fs-5 bg-success">' + item.method + '</span>';
 | 
					          item.method = '<span class="badge fs-6 bg-success">' + item.method + '</span>';
 | 
				
			||||||
        } else if (item.method == 'POST') {
 | 
					        } else if (item.method == 'POST') {
 | 
				
			||||||
          item.method = '<span class="badge fs-5 bg-warning">' + item.method + '</span>';
 | 
					          item.method = '<span class="badge fs-6 bg-warning">' + item.method + '</span>';
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        item.data = escapeHtml(item.data);
 | 
					        item.data = escapeHtml(item.data);
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@
 | 
				
			|||||||
<body>
 | 
					<body>
 | 
				
			||||||
<div class="overlay"></div>
 | 
					<div class="overlay"></div>
 | 
				
			||||||
{% block navbar %}
 | 
					{% block navbar %}
 | 
				
			||||||
<nav class="navbar navbar-expand-lg navbar-light bg-light navbar-fixed-top">
 | 
					<nav class="navbar navbar-expand-lg navbar-light bg-light navbar-fixed-top p-0">
 | 
				
			||||||
  <div class="container-fluid">
 | 
					  <div class="container-fluid">
 | 
				
			||||||
    <a class="navbar-brand" href="/"><img alt="mailcow-logo" src="{{ logo|default('/img/cow_mailcow.svg') }}"></a>
 | 
					    <a class="navbar-brand" href="/"><img alt="mailcow-logo" src="{{ logo|default('/img/cow_mailcow.svg') }}"></a>
 | 
				
			||||||
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
 | 
					    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
 | 
				
			||||||
@@ -53,14 +53,14 @@
 | 
				
			|||||||
            {% endif %}
 | 
					            {% endif %}
 | 
				
			||||||
          </ul>
 | 
					          </ul>
 | 
				
			||||||
        </li>
 | 
					        </li>
 | 
				
			||||||
        <li class="nav-item"><a href="/quarantine" class="nav-link {% if is_uri('quarantine') %}active{% endif %}"><i class="bi bi-inbox-fill"></i> {{ lang.header.quarantine }}</a></li>
 | 
					        <li class="nav-item"><a href="/quarantine" class="nav-link {% if is_uri('quarantine') %}active{% endif %}"><i class="bi bi-inbox-fill me-2"></i> {{ lang.header.quarantine }}</a></li>
 | 
				
			||||||
        {% endif %}
 | 
					        {% endif %}
 | 
				
			||||||
        {% if mailcow_cc_role == 'admin' and not skip_sogo %}
 | 
					        {% if mailcow_cc_role == 'admin' and not skip_sogo %}
 | 
				
			||||||
        <li class="nav-item"><a href="#" class="nav-link" data-bs-toggle="modal" data-container="sogo-mailcow" data-bs-target="#RestartContainer"><i class="bi bi-arrow-repeat"></i> {{ lang.header.restart_sogo }}</a></li>
 | 
					        <li class="nav-item"><a href="#" class="nav-link" data-bs-toggle="modal" data-container="sogo-mailcow" data-bs-target="#RestartContainer"><i class="bi bi-arrow-repeat me-2"></i> {{ lang.header.restart_sogo }}</a></li>
 | 
				
			||||||
        {% endif %}
 | 
					        {% endif %}
 | 
				
			||||||
        {% if mailcow_apps or app_links %}
 | 
					        {% if mailcow_apps or app_links %}
 | 
				
			||||||
        <li class="nav-item dropdown">
 | 
					        <li class="nav-item dropdown">
 | 
				
			||||||
          <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false"><i class="bi bi-link-45deg"></i> {{ ui_texts.apps_name|raw }}</a>
 | 
					          <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false"><i class="bi bi-link-45deg me-2"></i> {{ ui_texts.apps_name|raw }}</a>
 | 
				
			||||||
          <ul class="dropdown-menu">
 | 
					          <ul class="dropdown-menu">
 | 
				
			||||||
            {% for app in mailcow_apps %}
 | 
					            {% for app in mailcow_apps %}
 | 
				
			||||||
              {% if not skip_sogo or not is_uri('SOGo', app.link) %}
 | 
					              {% if not skip_sogo or not is_uri('SOGo', app.link) %}
 | 
				
			||||||
@@ -78,9 +78,9 @@
 | 
				
			|||||||
        </li>
 | 
					        </li>
 | 
				
			||||||
        {% endif %}
 | 
					        {% endif %}
 | 
				
			||||||
        {% if not dual_login and mailcow_cc_username %}
 | 
					        {% if not dual_login and mailcow_cc_username %}
 | 
				
			||||||
        <li class="logged-in-as" class="nav-item"><a href="#" onclick="logout.submit()" class="nav-link"><b class="username-lia">{{ mailcow_cc_username }}</b> <i class="bi bi-power"></i></a></li>
 | 
					        <li class="logged-in-as" class="nav-item"><a href="#" onclick="logout.submit()" class="nav-link"><b class="username-lia">{{ mailcow_cc_username }}</b> <i class="bi bi-power ms-2"></i></a></li>
 | 
				
			||||||
        {% elseif dual_login %}
 | 
					        {% elseif dual_login %}
 | 
				
			||||||
        <li class="logged-in-as" class="nav-item"><a href="#" onclick="logout.submit()" class="nav-link"><b class="username-lia">{{ mailcow_cc_username }} <span class="text-info">({{ dual_login.username }})</span> </b><i class="bi bi-power"></i></a></li>
 | 
					        <li class="logged-in-as" class="nav-item"><a href="#" onclick="logout.submit()" class="nav-link"><b class="username-lia">{{ mailcow_cc_username }} <span class="text-info">({{ dual_login.username }})</span> </b><i class="bi bi-power ms-2"></i></a></li>
 | 
				
			||||||
        {% endif %}
 | 
					        {% endif %}
 | 
				
			||||||
        {% if not is_master %}
 | 
					        {% if not is_master %}
 | 
				
			||||||
        <li class="text-warning slave-info nav-item">[ slave ]</li>
 | 
					        <li class="text-warning slave-info nav-item">[ slave ]</li>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user