Przeglądaj źródła

Refactor table HTML (#3606)

Alec Rust 2 lat temu
rodzic
commit
27e6dbedf9

+ 55 - 54
web/templates/pages/list_access_keys.php

@@ -41,71 +41,72 @@
 </div>
 <!-- End toolbar -->
 
-
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div>
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div>
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-6"><b><?= _("Access Key") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left compact u-text-right"><b>&nbsp;</b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center wide-2"><b><?= _("Comment") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Date") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Time") ?></b></div>
 				</div>
-				<div class="clearfix l-unit__stat-col--left wide-6"><b><?= _("Access Key") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left compact u-text-right"><b>&nbsp;</b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center wide-2"><b><?= _("Comment") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Date") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Time") ?></b></div>
 			</div>
 		</div>
-	</div>
 
-	<!-- Begin Access Keys list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
-				$key_user = !empty($value['USER']) ? $value['USER'] : 'admin';
-				$key_comment = !empty($value['COMMENT']) ? $value['COMMENT'] : '-';
-				//$key_permissions = !empty($value['PERMISSIONS']) ? $value['PERMISSIONS'] : '-';
-				//$key_permissions = implode(' ', $key_permissions);
-				$key_date = !empty($value['DATE']) ? $value['DATE'] : '-';
-				$key_time = !empty($value['TIME']) ? $value['TIME'] : '-';
-		?>
-		<div class="l-unit animate__animated animate__fadeIn js-unit"
-			data-sort-key="<?=strtolower($key)?>"
-			data-sort-comment="<?=strtolower($key_comment)?>"
-			data-sort-date="<?=strtotime($data[$key]['DATE'] .' '. $data[$key]['TIME'] )?>">
+		<!-- Begin Access Keys list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
+					$key_user = !empty($value['USER']) ? $value['USER'] : 'admin';
+					$key_comment = !empty($value['COMMENT']) ? $value['COMMENT'] : '-';
+					//$key_permissions = !empty($value['PERMISSIONS']) ? $value['PERMISSIONS'] : '-';
+					//$key_permissions = implode(' ', $key_permissions);
+					$key_date = !empty($value['DATE']) ? $value['DATE'] : '-';
+					$key_time = !empty($value['TIME']) ? $value['TIME'] : '-';
+			?>
+			<div class="l-unit animate__animated animate__fadeIn js-unit"
+				data-sort-key="<?=strtolower($key)?>"
+				data-sort-comment="<?=strtolower($key_comment)?>"
+				data-sort-date="<?=strtotime($data[$key]['DATE'] .' '. $data[$key]['TIME'] )?>">
 
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="key[]" value="<?= $key ?>">
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-6">
-					<b><a href="/list/access-key/?key=<?= htmlentities($key) ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Access Key") ?>: <?= $key ?>"><?= $key ?></a></b>
-				</div>
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="key[]" value="<?= $key ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-6">
+						<b><a href="/list/access-key/?key=<?= htmlentities($key) ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Access Key") ?>: <?= $key ?>"><?= $key ?></a></b>
+					</div>
 
-				<!-- START QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left compact u-text-right">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-								<a
-									class="data-controls js-confirm-action"
-									href="/delete/access-key/?key=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
-									data-confirm-title="<?= _("Delete") ?>"
-									data-confirm-message="<?= sprintf(_("Are you sure you want to delete access key %s?"), $key) ?>"
-								>
-									<i class="fas fa-trash icon-red icon-dim"></i>
-								</a>
+					<!-- START QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left compact u-text-right">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+									<a
+										class="data-controls js-confirm-action"
+										href="/delete/access-key/?key=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
+										data-confirm-title="<?= _("Delete") ?>"
+										data-confirm-message="<?= sprintf(_("Are you sure you want to delete access key %s?"), $key) ?>"
+									>
+										<i class="fas fa-trash icon-red icon-dim"></i>
+									</a>
+								</div>
 							</div>
 						</div>
 					</div>
+					<!-- END QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left u-text-center wide-2"><b><?= _($key_comment) ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $key_date ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $key_time ?></b></div>
 				</div>
-				<!-- END QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left u-text-center wide-2"><b><?= _($key_comment) ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $key_date ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $key_time ?></b></div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 75 - 73
web/templates/pages/list_backup.php

@@ -34,91 +34,93 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div>
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div>
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-4"><b><?= _("File Name") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left compact-4 u-text-right"><b>&nbsp;</b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Date") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Size") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Type") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Runtime") ?></b></div>
 				</div>
-				<div class="clearfix l-unit__stat-col--left wide-4"><b><?= _("File Name") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left compact-4 u-text-right"><b>&nbsp;</b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Date") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Size") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Type") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Runtime") ?></b></div>
 			</div>
 		</div>
-	</div>
 
-	<!-- Begin user backup list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
-			$web = _('No');
-			$dns = _('No');
-			$mail = _('No');
-			$db = _('No');
-			$cron = _('No');
-			$udir = _('No');
+		<!-- Begin user backup list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
+				$web = _('No');
+				$dns = _('No');
+				$mail = _('No');
+				$db = _('No');
+				$cron = _('No');
+				$udir = _('No');
 
-			if (!empty($data[$key]['WEB'])) $web = _('Yes');
-			if (!empty($data[$key]['DNS'])) $dns = _('Yes');
-			if (!empty($data[$key]['MAIL'])) $mail = _('Yes');
-			if (!empty($data[$key]['DB'])) $db = _('Yes');
-			if (!empty($data[$key]['CRON'])) $cron = _('Yes');
-			if (!empty($data[$key]['UDIR'])) $udir = _('Yes');
-		?>
-		<div class="l-unit animate__animated animate__fadeIn">
-			<div class="l-unit__col l-unit__col--right">
-				<div>
-					<div class="clearfix l-unit__stat-col--left super-compact">
-						<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="backup[]" value="<?= $key ?>" <?= $display_mode ?>>
-					</div>
-					<div class="clearfix l-unit__stat-col--left wide-4 truncate">
-						<b>
-							<?php if ($read_only === "true") { ?>
-								<?= $key ?>
-							<?php } else { ?>
-								<a href="/list/backup/?backup=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>"><?= $key ?></a>
-							<?php } ?>
-						</b>
-					</div>
-					<!-- START QUICK ACTION TOOLBAR AREA -->
-					<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
-						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-							<div class="actions-panel clearfix">
-								<?php if ($_SESSION["userContext"] === "admin" && $_SESSION["look"] === "admin" && $read_only === "true") { ?>
-									<!-- Restrict ability to restore or delete backups when impersonating 'admin' account -->
-									&nbsp;
+				if (!empty($data[$key]['WEB'])) $web = _('Yes');
+				if (!empty($data[$key]['DNS'])) $dns = _('Yes');
+				if (!empty($data[$key]['MAIL'])) $mail = _('Yes');
+				if (!empty($data[$key]['DB'])) $db = _('Yes');
+				if (!empty($data[$key]['CRON'])) $cron = _('Yes');
+				if (!empty($data[$key]['UDIR'])) $udir = _('Yes');
+			?>
+			<div class="l-unit animate__animated animate__fadeIn">
+				<div class="l-unit__col l-unit__col--right">
+					<div>
+						<div class="clearfix l-unit__stat-col--left super-compact">
+							<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="backup[]" value="<?= $key ?>" <?= $display_mode ?>>
+						</div>
+						<div class="clearfix l-unit__stat-col--left wide-4 truncate">
+							<b>
+								<?php if ($read_only === "true") { ?>
+									<?= $key ?>
 								<?php } else { ?>
-									<div class="actions-panel__col actions-panel__download shortcut-d" data-key-action="href"><a href="/download/backup/?backup=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Download") ?>"><i class="fas fa-file-arrow-down icon-lightblue icon-dim"></i></a></div>
-									<?php if ($read_only !== 'true') {?>
-										<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href"><a href="/list/backup/?backup=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Restore") ?>"><i class="fas fa-arrow-rotate-left icon-green icon-dim"></i></a></div>
-										<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-											<a
-												class="data-controls js-confirm-action"
-												href="/delete/backup/?backup=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
-												data-confirm-title="<?= _("Delete") ?>"
-												data-confirm-message="<?= sprintf(_("Are you sure you want to delete backup %s?"), $key) ?>"
-											>
-												<i class="fas fa-trash icon-red icon-dim"></i>
-											</a>
-										</div>
-									<?php } ?>
+									<a href="/list/backup/?backup=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>"><?= $key ?></a>
 								<?php } ?>
+							</b>
+						</div>
+						<!-- START QUICK ACTION TOOLBAR AREA -->
+						<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
+							<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+								<div class="actions-panel clearfix">
+									<?php if ($_SESSION["userContext"] === "admin" && $_SESSION["look"] === "admin" && $read_only === "true") { ?>
+										<!-- Restrict ability to restore or delete backups when impersonating 'admin' account -->
+										&nbsp;
+									<?php } else { ?>
+										<div class="actions-panel__col actions-panel__download shortcut-d" data-key-action="href"><a href="/download/backup/?backup=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Download") ?>"><i class="fas fa-file-arrow-down icon-lightblue icon-dim"></i></a></div>
+										<?php if ($read_only !== 'true') {?>
+											<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href"><a href="/list/backup/?backup=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Restore") ?>"><i class="fas fa-arrow-rotate-left icon-green icon-dim"></i></a></div>
+											<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+												<a
+													class="data-controls js-confirm-action"
+													href="/delete/backup/?backup=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
+													data-confirm-title="<?= _("Delete") ?>"
+													data-confirm-message="<?= sprintf(_("Are you sure you want to delete backup %s?"), $key) ?>"
+												>
+													<i class="fas fa-trash icon-red icon-dim"></i>
+												</a>
+											</div>
+										<?php } ?>
+									<?php } ?>
+								</div>
 							</div>
 						</div>
+						<!-- END QUICK ACTION TOOLBAR AREA -->
+						<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= translate_date($data[$key]["DATE"]) ?></b></div>
+						<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= humanize_usage_size($data[$key]["SIZE"]) ?></b> <span class="u-text-small"><?= humanize_usage_measure($data[$key]["SIZE"]) ?></span></div>
+						<div class="clearfix l-unit__stat-col--left u-text-center"><?= $data[$key]["TYPE"] ?></div>
+						<div class="clearfix l-unit__stat-col--left u-text-center"><?= humanize_time($data[$key]["RUNTIME"]) ?></div>
 					</div>
-					<!-- END QUICK ACTION TOOLBAR AREA -->
-					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= translate_date($data[$key]["DATE"]) ?></b></div>
-					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= humanize_usage_size($data[$key]["SIZE"]) ?></b> <span class="u-text-small"><?= humanize_usage_measure($data[$key]["SIZE"]) ?></span></div>
-					<div class="clearfix l-unit__stat-col--left u-text-center"><?= $data[$key]["TYPE"] ?></div>
-					<div class="clearfix l-unit__stat-col--left u-text-center"><?= humanize_time($data[$key]["RUNTIME"]) ?></div>
 				</div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 167 - 165
web/templates/pages/list_backup_detail.php

@@ -31,210 +31,212 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div>
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div>
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4"><b><?= _("Type") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left wide-7"><b><?= _("Details") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-right compact-4"><b><?= _("Restore") ?></b></div>
 				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4"><b><?= _("Type") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left wide-7"><b><?= _("Details") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-right compact-4"><b><?= _("Restore") ?></b></div>
 			</div>
 		</div>
-	</div>
 
-	<!-- List web domains -->
-	<?php
-		$backup = htmlentities($_GET['backup']);
-		$web = explode(',',$data[$backup]['WEB']);
-		foreach ($web as $key) {
-			if (!empty($key)) {
-				++$i;
-		?>
-		<div class="l-unit animate__animated animate__fadeIn">
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" name="web[]" value="<?= $key ?>">
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4">
-					<div class="l-unit__stat-col l-unit__stat-col--left"><?= _("Web Domain") ?></div>
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-7">
-					<div class="l-unit__stat-col l-unit__stat-col--left wide-7"><b><?= $key ?></b></div>
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href">
-								<a href="/schedule/restore/?backup=<?= $backup ?>&type=web&object=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>">
-									<i class="fas fa-arrow-rotate-left icon-green icon-dim u-mr5"></i>
-								</a>
+		<!-- List web domains -->
+		<?php
+			$backup = htmlentities($_GET['backup']);
+			$web = explode(',',$data[$backup]['WEB']);
+			foreach ($web as $key) {
+				if (!empty($key)) {
+					++$i;
+			?>
+			<div class="l-unit animate__animated animate__fadeIn">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" name="web[]" value="<?= $key ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4">
+						<div class="l-unit__stat-col l-unit__stat-col--left"><?= _("Web Domain") ?></div>
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-7">
+						<div class="l-unit__stat-col l-unit__stat-col--left wide-7"><b><?= $key ?></b></div>
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href">
+									<a href="/schedule/restore/?backup=<?= $backup ?>&type=web&object=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>">
+										<i class="fas fa-arrow-rotate-left icon-green icon-dim u-mr5"></i>
+									</a>
+								</div>
 							</div>
 						</div>
 					</div>
 				</div>
 			</div>
-		</div>
-	<?php }} ?>
+		<?php }} ?>
 
-	<!-- List mail domains -->
-	<?php
-		$mail = explode(',',$data[$backup]['MAIL']);
-		foreach ($mail as $key) {
-			if (!empty($key)) {
-		?>
-		<div class="l-unit">
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check2<?= $i ?>" class="js-unit-checkbox" type="checkbox" name="mail[]" value="<?= $key ?>">
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4">
-					<div class="l-unit__stat-col l-unit__stat-col--left"><?= _("Mail Domain") ?></div>
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-7">
-					<div class="l-unit__stat-col l-unit__stat-col--left wide-7"><b><?= $key ?></b></div>
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href">
-								<a href="/schedule/restore/?backup=<?= $backup ?>&type=mail&object=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>">
-									<i class="fas fa-arrow-rotate-left icon-green icon-dim"></i>
-								</a>
+		<!-- List mail domains -->
+		<?php
+			$mail = explode(',',$data[$backup]['MAIL']);
+			foreach ($mail as $key) {
+				if (!empty($key)) {
+			?>
+			<div class="l-unit">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check2<?= $i ?>" class="js-unit-checkbox" type="checkbox" name="mail[]" value="<?= $key ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4">
+						<div class="l-unit__stat-col l-unit__stat-col--left"><?= _("Mail Domain") ?></div>
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-7">
+						<div class="l-unit__stat-col l-unit__stat-col--left wide-7"><b><?= $key ?></b></div>
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href">
+									<a href="/schedule/restore/?backup=<?= $backup ?>&type=mail&object=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>">
+										<i class="fas fa-arrow-rotate-left icon-green icon-dim"></i>
+									</a>
+								</div>
 							</div>
 						</div>
 					</div>
 				</div>
 			</div>
-		</div>
-	<?php }} ?>
+		<?php }} ?>
 
-	<!-- List DNS zones -->
-	<?php
-		$dns = explode(',',$data[$backup]['DNS']);
-		foreach ($dns as $key) {
-			if (!empty($key)) {
-		?>
-		<div class="l-unit">
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check3<?= $i ?>" class="js-unit-checkbox" type="checkbox" name="dns[]" value="<?= $key ?>">
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4">
-					<div class="l-unit__stat-col l-unit__stat-col--left"><?= _("DNS Zone") ?></div>
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-7">
-					<div class="l-unit__stat-col l-unit__stat-col--left wide-7"><b><?= $key ?></b></div>
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href">
-								<a href="/schedule/restore/?backup=<?= $backup ?>&type=dns&object=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>">
-									<i class="fas fa-arrow-rotate-left icon-green icon-dim"></i>
-								</a>
+		<!-- List DNS zones -->
+		<?php
+			$dns = explode(',',$data[$backup]['DNS']);
+			foreach ($dns as $key) {
+				if (!empty($key)) {
+			?>
+			<div class="l-unit">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check3<?= $i ?>" class="js-unit-checkbox" type="checkbox" name="dns[]" value="<?= $key ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4">
+						<div class="l-unit__stat-col l-unit__stat-col--left"><?= _("DNS Zone") ?></div>
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-7">
+						<div class="l-unit__stat-col l-unit__stat-col--left wide-7"><b><?= $key ?></b></div>
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href">
+									<a href="/schedule/restore/?backup=<?= $backup ?>&type=dns&object=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>">
+										<i class="fas fa-arrow-rotate-left icon-green icon-dim"></i>
+									</a>
+								</div>
 							</div>
 						</div>
 					</div>
 				</div>
 			</div>
-		</div>
-	<?php }} ?>
+		<?php }} ?>
 
-	<!-- List Databases -->
-	<?php
-		$db = explode(',',$data[$backup]['DB']);
-		foreach ($db as $key) {
-			if (!empty($key)) {
-		?>
-		<div class="l-unit">
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check4<?= $i ?>" class="js-unit-checkbox" type="checkbox" name="db[]" value="<?= $key ?>">
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4">
-					<div class="l-unit__stat-col l-unit__stat-col--left"><?= _("Database") ?></div>
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-7">
-					<div class="l-unit__stat-col l-unit__stat-col--left wide-7"><b><?= $key ?></b></div>
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href">
-								<a href="/schedule/restore/?backup=<?= $backup ?>&type=db&object=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>">
-									<i class="fas fa-arrow-rotate-left icon-green icon-dim"></i>
-								</a>
+		<!-- List Databases -->
+		<?php
+			$db = explode(',',$data[$backup]['DB']);
+			foreach ($db as $key) {
+				if (!empty($key)) {
+			?>
+			<div class="l-unit">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check4<?= $i ?>" class="js-unit-checkbox" type="checkbox" name="db[]" value="<?= $key ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4">
+						<div class="l-unit__stat-col l-unit__stat-col--left"><?= _("Database") ?></div>
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-7">
+						<div class="l-unit__stat-col l-unit__stat-col--left wide-7"><b><?= $key ?></b></div>
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href">
+									<a href="/schedule/restore/?backup=<?= $backup ?>&type=db&object=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>">
+										<i class="fas fa-arrow-rotate-left icon-green icon-dim"></i>
+									</a>
+								</div>
 							</div>
 						</div>
 					</div>
 				</div>
 			</div>
-		</div>
-	<?php }} ?>
+		<?php }} ?>
 
-	<!-- List Cron Jobs -->
-	<?php if (!empty($data[$backup]["CRON"])) {
- 	if (!empty($key)) { ?>
-		<div class="l-unit">
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check5<?= $i ?>" class="js-unit-checkbox" type="checkbox" name="check" value="<?= $key ?>">
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4">
-					<div class="l-unit__stat-col l-unit__stat-col--left"><?= _("Cron Jobs") ?></div>
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-7">
-					<div class="l-unit__stat-col l-unit__stat-col--left wide-7"><b><?= _("Jobs") ?></b></div>
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href">
-								<a href="/schedule/restore/?backup=<?= $backup ?>&type=cron&object=records&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>">
-									<i class="fas fa-arrow-rotate-left icon-green icon-dim"></i>
-								</a>
+		<!-- List Cron Jobs -->
+		<?php if (!empty($data[$backup]["CRON"])) {
+		if (!empty($key)) { ?>
+			<div class="l-unit">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check5<?= $i ?>" class="js-unit-checkbox" type="checkbox" name="check" value="<?= $key ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4">
+						<div class="l-unit__stat-col l-unit__stat-col--left"><?= _("Cron Jobs") ?></div>
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-7">
+						<div class="l-unit__stat-col l-unit__stat-col--left wide-7"><b><?= _("Jobs") ?></b></div>
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href">
+									<a href="/schedule/restore/?backup=<?= $backup ?>&type=cron&object=records&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>">
+										<i class="fas fa-arrow-rotate-left icon-green icon-dim"></i>
+									</a>
+								</div>
 							</div>
 						</div>
 					</div>
 				</div>
 			</div>
-		</div>
-	<?php }} ?>
+		<?php }} ?>
 
-	<!-- List user directories -->
-	<?php
-		$udir = explode(',',$data[$backup]['UDIR']);
-		foreach ($udir as $key) {
-			if (!empty($key)) {
-		?>
-		<div class="l-unit">
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check6<?= $i ?>" class="js-unit-checkbox" type="checkbox" name="udir[]" value="<?= $key ?>">
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4">
-					<div class="l-unit__stat-col l-unit__stat-col--left"><?= _("User Directory") ?></div>
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-7">
-					<div class="l-unit__stat-col l-unit__stat-col--left wide-7"><b><?= $key ?></b></div>
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href">
-								<a href="/schedule/restore/?backup=<?= $backup ?>&type=udir&object=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>">
-									<i class="fas fa-arrow-rotate-left icon-green icon-dim"></i>
-								</a>
+		<!-- List user directories -->
+		<?php
+			$udir = explode(',',$data[$backup]['UDIR']);
+			foreach ($udir as $key) {
+				if (!empty($key)) {
+			?>
+			<div class="l-unit">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check6<?= $i ?>" class="js-unit-checkbox" type="checkbox" name="udir[]" value="<?= $key ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4">
+						<div class="l-unit__stat-col l-unit__stat-col--left"><?= _("User Directory") ?></div>
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-7">
+						<div class="l-unit__stat-col l-unit__stat-col--left wide-7"><b><?= $key ?></b></div>
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-4 u-text-right">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<div class="actions-panel__col actions-panel__list shortcut-enter" data-key-action="href">
+									<a href="/schedule/restore/?backup=<?= $backup ?>&type=udir&object=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Restore") ?>">
+										<i class="fas fa-arrow-rotate-left icon-green icon-dim"></i>
+									</a>
+								</div>
 							</div>
 						</div>
 					</div>
 				</div>
 			</div>
-		</div>
-	<?php }} ?>
+		<?php }} ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 86 - 84
web/templates/pages/list_cron.php

@@ -65,98 +65,100 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact">
-				<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
-			</div>
-			<div class="clearfix l-unit__stat-col--left wide-5"><b><?= _("Command") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-2 u-text-right"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><b><?= _("Minute") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><b><?= _("Hour") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><b><?= _("Day") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><b><?= _("Month") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><b><?= _("Day of Week") ?></b></div>
-		</div>
-	</div>
-
-	<!-- Begin cron job list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
-			if ($data[$key]['SUSPENDED'] == 'yes') {
-				$status = 'suspended';
-				$spnd_action = 'unsuspend';
-				$spnd_action_title = _('Unsuspend');
-				$spnd_icon = 'fa-play';
-				$spnd_confirmation = _('Are you sure you want to unsuspend the cron job?') ;
-			} else {
-				$status = 'active';
-				$spnd_action = 'suspend';
-				$spnd_action_title = _('Suspend');
-				$spnd_icon = 'fa-pause';
-				$spnd_confirmation = _('Are you sure you want to suspend the cron job?') ;
-			}
-		?>
-		<div class="l-unit <?php if($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
-			data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
-			data-sort-name="<?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?>">
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
 			<div class="l-unit__col l-unit__col--right">
 				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="job[]" value="<?= $key ?>" <?= $display_mode ?>>
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-5 truncate">
-					<?php if ($read_only === "true" || $data[$key]["SUSPENDED"] == "yes") { ?>
-						<b><?= htmlspecialchars($data[$key]["CMD"], ENT_NOQUOTES) ?></b>
-					<?php } else { ?>
-						<b><a href="/edit/cron/?job=<?=$data[$key]['JOB']?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Cron Job") ?>: <?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?>"><?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?></a></b>
-					<?php } ?>
+					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
 				</div>
-				<!-- START QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left compact-2 u-text-right">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<?php if ($read_only === "true") { ?>
-								<!-- Restrict other administrators from editing, deleting, or suspending 'admin' user cron jobs -->
-								&nbsp;
-							<?php } else { ?>
-								<?php if ($data[$key]['SUSPENDED'] == 'no') {?>
-									<div class="actions-panel__col actions-panel__download shortcut-enter" data-key-action="href"><a href="/edit/cron/?job=<?=$data[$key]['JOB']?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Cron Job") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
+				<div class="clearfix l-unit__stat-col--left wide-5"><b><?= _("Command") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-2 u-text-right"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><b><?= _("Minute") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><b><?= _("Hour") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><b><?= _("Day") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><b><?= _("Month") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><b><?= _("Day of Week") ?></b></div>
+			</div>
+		</div>
+
+		<!-- Begin cron job list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
+				if ($data[$key]['SUSPENDED'] == 'yes') {
+					$status = 'suspended';
+					$spnd_action = 'unsuspend';
+					$spnd_action_title = _('Unsuspend');
+					$spnd_icon = 'fa-play';
+					$spnd_confirmation = _('Are you sure you want to unsuspend the cron job?') ;
+				} else {
+					$status = 'active';
+					$spnd_action = 'suspend';
+					$spnd_action_title = _('Suspend');
+					$spnd_icon = 'fa-pause';
+					$spnd_confirmation = _('Are you sure you want to suspend the cron job?') ;
+				}
+			?>
+			<div class="l-unit <?php if($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
+				data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
+				data-sort-name="<?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?>">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="job[]" value="<?= $key ?>" <?= $display_mode ?>>
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-5 truncate">
+						<?php if ($read_only === "true" || $data[$key]["SUSPENDED"] == "yes") { ?>
+							<b><?= htmlspecialchars($data[$key]["CMD"], ENT_NOQUOTES) ?></b>
+						<?php } else { ?>
+							<b><a href="/edit/cron/?job=<?=$data[$key]['JOB']?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Cron Job") ?>: <?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?>"><?=htmlspecialchars($data[$key]['CMD'], ENT_NOQUOTES)?></a></b>
+						<?php } ?>
+					</div>
+					<!-- START QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left compact-2 u-text-right">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<?php if ($read_only === "true") { ?>
+									<!-- Restrict other administrators from editing, deleting, or suspending 'admin' user cron jobs -->
+									&nbsp;
+								<?php } else { ?>
+									<?php if ($data[$key]['SUSPENDED'] == 'no') {?>
+										<div class="actions-panel__col actions-panel__download shortcut-enter" data-key-action="href"><a href="/edit/cron/?job=<?=$data[$key]['JOB']?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Cron Job") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
+									<?php } ?>
+									<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
+										<a
+											class="data-controls js-confirm-action"
+											href="/<?= $spnd_action ?>/cron/?job=<?= $data[$key]["JOB"] ?>&token=<?= $_SESSION["token"] ?>"
+											data-confirm-title="<?= $spnd_action_title ?>"
+											data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
+										>
+											<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
+										</a>
+									</div>
+									<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+										<a
+											class="data-controls js-confirm-action"
+											href="/delete/cron/?job=<?= $data[$key]["JOB"] ?>&token=<?= $_SESSION["token"] ?>"
+											data-confirm-title="<?= _("Delete") ?>"
+											data-confirm-message="<?= sprintf(_("Are you sure you want to delete the cron job?"), $key) ?>"
+										>
+											<i class="fas fa-trash icon-red icon-dim"></i>
+										</a>
+									</div>
 								<?php } ?>
-								<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
-									<a
-										class="data-controls js-confirm-action"
-										href="/<?= $spnd_action ?>/cron/?job=<?= $data[$key]["JOB"] ?>&token=<?= $_SESSION["token"] ?>"
-										data-confirm-title="<?= $spnd_action_title ?>"
-										data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
-									>
-										<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
-									</a>
-								</div>
-								<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-									<a
-										class="data-controls js-confirm-action"
-										href="/delete/cron/?job=<?= $data[$key]["JOB"] ?>&token=<?= $_SESSION["token"] ?>"
-										data-confirm-title="<?= _("Delete") ?>"
-										data-confirm-message="<?= sprintf(_("Are you sure you want to delete the cron job?"), $key) ?>"
-									>
-										<i class="fas fa-trash icon-red icon-dim"></i>
-									</a>
-								</div>
-							<?php } ?>
+							</div>
 						</div>
 					</div>
+					<!-- END QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><?= $data[$key]["MIN"] ?></div>
+					<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><?= $data[$key]["HOUR"] ?></div>
+					<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><?= $data[$key]["DAY"] ?></div>
+					<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><?= $data[$key]["MONTH"] ?></div>
+					<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><?= $data[$key]["WDAY"] ?></div>
 				</div>
-				<!-- END QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><?= $data[$key]["MIN"] ?></div>
-				<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><?= $data[$key]["HOUR"] ?></div>
-				<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><?= $data[$key]["DAY"] ?></div>
-				<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><?= $data[$key]["MONTH"] ?></div>
-				<div class="clearfix l-unit__stat-col--left compact-3 u-text-center"><?= $data[$key]["WDAY"] ?></div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 102 - 100
web/templates/pages/list_db.php

@@ -97,115 +97,117 @@ if (!empty($_SESSION["DB_PGA_ALIAS"])) {
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact">
-				<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left super-compact">
+					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
+				</div>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Name") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-right compact-3"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Disk") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= _("Type") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center wide"><b><?= _("Username") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Hostname") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Charset") ?></b></div>
 			</div>
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Name") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-right compact-3"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Disk") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= _("Type") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center wide"><b><?= _("Username") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Hostname") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Charset") ?></b></div>
 		</div>
-	</div>
 
-	<!-- Begin database list item loop -->
-	<?php
-		list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"].":");
-		foreach ($data as $key => $value) {
-			++$i;
-			if ($data[$key]['SUSPENDED'] == 'yes') {
-				$status = 'suspended';
-				$spnd_action = 'unsuspend';
-				$spnd_action_title = _('Unsuspend');
-				$spnd_icon = 'fa-play';
-				$spnd_confirmation = _('Are you sure you want to unsuspend database %s?') ;
-			} else {
-				$status = 'active';
-				$spnd_action = 'suspend';
-				$spnd_action_title = _('Suspend');
-				$spnd_icon = 'fa-pause';
-				$spnd_confirmation = _('Are you sure you want to suspend database %s?') ;
-			}
-			if ($data[$key]['HOST'] != 'localhost' ) $http_host = $data[$key]['HOST'];
-			if ($data[$key]['TYPE'] == 'mysql') $db_admin = "phpMyAdmin";
-			if ($data[$key]['TYPE'] == 'mysql') $db_admin_link = "https://".$http_host."/phpmyadmin/";
-			if (($data[$key]['TYPE'] == 'mysql') && (!empty($_SESSION['DB_PMA_ALIAS']))) $db_admin_link = $_SESSION['DB_PMA_ALIAS'];
-			if ($data[$key]['TYPE'] == 'pgsql') $db_admin = "phpPgAdmin";
-			if ($data[$key]['TYPE'] == 'pgsql') $db_admin_link = "https://".$http_host."/phppgadmin/";
-			if (($data[$key]['TYPE'] == 'pgsql') && (!empty($_SESSION['DB_PGA_ALIAS']))) $db_admin_link = $_SESSION['DB_PGA_ALIAS'];
-		?>
-		<div class="l-unit <?php if($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
-			data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
-			data-sort-name="<?=$key?>"
-			data-sort-disk="<?=$data[$key]['U_DISK']?>"
-			data-sort-user="<?=$data[$key]['DBUSER']?>"
-			data-sort-server="<?=$data[$key]['HOST']?>"
-			data-sort-charset="<?=$data[$key]['CHARSET']?>">
-			<div class="l-unit__col l-unit__col--right">
-				<div>
-					<div class="clearfix l-unit__stat-col--left super-compact">
-						<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="database[]" value="<?= $key ?>" <?= $display_mode ?>>
-					</div>
-					<div class="clearfix l-unit__stat-col--left wide-3 truncate">
-						<?php if ($read_only === "true" || $data[$key]["SUSPENDED"] == "yes") { ?>
-							<b><?= $key ?></b>
-						<?php } else { ?>
-							<b><a href="/edit/db/?database=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Edit Database") ?>: <?= $key ?>"><?= $key ?></a></b>
-						<?php } ?>
-					</div>
-					<!-- START QUICK ACTION TOOLBAR AREA -->
-					<div class="clearfix l-unit__stat-col--left u-text-right compact-3">
-						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-							<div class="actions-panel clearfix">
-								<?php if ($read_only === "true") { ?>
-									<!-- Restrict the ability to edit, delete, or suspend domain items when impersonating 'admin' user -->
-									&nbsp;
-								<?php } else { ?>
-									<?php if ($data[$key]['SUSPENDED'] == 'no') {?>
-										<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/db/?database=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Database") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
-									<?php } ?>
-									<?php if ($data[$key]['TYPE'] == 'mysql' && isset($_SESSION['PHPMYADMIN_KEY']) && $_SESSION['PHPMYADMIN_KEY'] != '' && !ipUsed()) { $time = time(); ?>
-										<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a target="_blank" href="<?=$db_myadmin_link;?>hestia-sso.php?database=<?=$key;?>&user=<?=$user_plain;?>&exp=<?=$time;?>&hestia_token=<?=password_hash($key.$user_plain.$_SESSION['user_combined_ip'].$time.$_SESSION['PHPMYADMIN_KEY'], PASSWORD_DEFAULT)?>" title="phpMyAdmin"><i class="fas fa-right-to-bracket icon-orange icon-dim"></i></a></div>
+		<!-- Begin database list item loop -->
+		<?php
+			list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"].":");
+			foreach ($data as $key => $value) {
+				++$i;
+				if ($data[$key]['SUSPENDED'] == 'yes') {
+					$status = 'suspended';
+					$spnd_action = 'unsuspend';
+					$spnd_action_title = _('Unsuspend');
+					$spnd_icon = 'fa-play';
+					$spnd_confirmation = _('Are you sure you want to unsuspend database %s?') ;
+				} else {
+					$status = 'active';
+					$spnd_action = 'suspend';
+					$spnd_action_title = _('Suspend');
+					$spnd_icon = 'fa-pause';
+					$spnd_confirmation = _('Are you sure you want to suspend database %s?') ;
+				}
+				if ($data[$key]['HOST'] != 'localhost' ) $http_host = $data[$key]['HOST'];
+				if ($data[$key]['TYPE'] == 'mysql') $db_admin = "phpMyAdmin";
+				if ($data[$key]['TYPE'] == 'mysql') $db_admin_link = "https://".$http_host."/phpmyadmin/";
+				if (($data[$key]['TYPE'] == 'mysql') && (!empty($_SESSION['DB_PMA_ALIAS']))) $db_admin_link = $_SESSION['DB_PMA_ALIAS'];
+				if ($data[$key]['TYPE'] == 'pgsql') $db_admin = "phpPgAdmin";
+				if ($data[$key]['TYPE'] == 'pgsql') $db_admin_link = "https://".$http_host."/phppgadmin/";
+				if (($data[$key]['TYPE'] == 'pgsql') && (!empty($_SESSION['DB_PGA_ALIAS']))) $db_admin_link = $_SESSION['DB_PGA_ALIAS'];
+			?>
+			<div class="l-unit <?php if($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
+				data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
+				data-sort-name="<?=$key?>"
+				data-sort-disk="<?=$data[$key]['U_DISK']?>"
+				data-sort-user="<?=$data[$key]['DBUSER']?>"
+				data-sort-server="<?=$data[$key]['HOST']?>"
+				data-sort-charset="<?=$data[$key]['CHARSET']?>">
+				<div class="l-unit__col l-unit__col--right">
+					<div>
+						<div class="clearfix l-unit__stat-col--left super-compact">
+							<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="database[]" value="<?= $key ?>" <?= $display_mode ?>>
+						</div>
+						<div class="clearfix l-unit__stat-col--left wide-3 truncate">
+							<?php if ($read_only === "true" || $data[$key]["SUSPENDED"] == "yes") { ?>
+								<b><?= $key ?></b>
+							<?php } else { ?>
+								<b><a href="/edit/db/?database=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Edit Database") ?>: <?= $key ?>"><?= $key ?></a></b>
+							<?php } ?>
+						</div>
+						<!-- START QUICK ACTION TOOLBAR AREA -->
+						<div class="clearfix l-unit__stat-col--left u-text-right compact-3">
+							<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+								<div class="actions-panel clearfix">
+									<?php if ($read_only === "true") { ?>
+										<!-- Restrict the ability to edit, delete, or suspend domain items when impersonating 'admin' user -->
+										&nbsp;
+									<?php } else { ?>
+										<?php if ($data[$key]['SUSPENDED'] == 'no') {?>
+											<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/db/?database=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Database") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
+										<?php } ?>
+										<?php if ($data[$key]['TYPE'] == 'mysql' && isset($_SESSION['PHPMYADMIN_KEY']) && $_SESSION['PHPMYADMIN_KEY'] != '' && !ipUsed()) { $time = time(); ?>
+											<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a target="_blank" href="<?=$db_myadmin_link;?>hestia-sso.php?database=<?=$key;?>&user=<?=$user_plain;?>&exp=<?=$time;?>&hestia_token=<?=password_hash($key.$user_plain.$_SESSION['user_combined_ip'].$time.$_SESSION['PHPMYADMIN_KEY'], PASSWORD_DEFAULT)?>" title="phpMyAdmin"><i class="fas fa-right-to-bracket icon-orange icon-dim"></i></a></div>
+										<?php } ?>
+										<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
+											<a
+												class="data-controls js-confirm-action"
+												href="/<?=$spnd_action?>/db/?database=<?=$key?>&token=<?=$_SESSION['token']?>"
+												data-confirm-title="<?= $spnd_action_title ?>"
+												data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
+											>
+												<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
+											</a>
+										</div>
+										<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+											<a
+												class="data-controls js-confirm-action"
+												href="/delete/db/?database=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
+												data-confirm-title="<?= _("Delete") ?>"
+												data-confirm-message="<?= sprintf(_("Are you sure you want to delete database %s?"), $key) ?>"
+											>
+												<i class="fas fa-trash icon-red icon-dim"></i>
+											</a>
+										</div>
 									<?php } ?>
-									<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
-										<a
-											class="data-controls js-confirm-action"
-											href="/<?=$spnd_action?>/db/?database=<?=$key?>&token=<?=$_SESSION['token']?>"
-											data-confirm-title="<?= $spnd_action_title ?>"
-											data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
-										>
-											<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
-										</a>
-									</div>
-									<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-										<a
-											class="data-controls js-confirm-action"
-											href="/delete/db/?database=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
-											data-confirm-title="<?= _("Delete") ?>"
-											data-confirm-message="<?= sprintf(_("Are you sure you want to delete database %s?"), $key) ?>"
-										>
-											<i class="fas fa-trash icon-red icon-dim"></i>
-										</a>
-									</div>
-								<?php } ?>
+								</div>
 							</div>
 						</div>
+						<!-- END QUICK ACTION TOOLBAR AREA -->
+						<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= humanize_usage_size($data[$key]["U_DISK"]) ?></b> <span class="u-text-small"><?= humanize_usage_measure($data[$key]["U_DISK"]) ?></span></div>
+						<div class="clearfix l-unit__stat-col--left u-text-center compact"><?= $data[$key]["TYPE"] ?></div>
+						<div class="clearfix l-unit__stat-col--left u-text-center wide"><b><?= $data[$key]["DBUSER"] ?></b></div>
+						<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $data[$key]["HOST"] ?></b></div>
+						<div class="clearfix l-unit__stat-col--left u-text-center"><?= $data[$key]["CHARSET"] ?></div>
 					</div>
-					<!-- END QUICK ACTION TOOLBAR AREA -->
-					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= humanize_usage_size($data[$key]["U_DISK"]) ?></b> <span class="u-text-small"><?= humanize_usage_measure($data[$key]["U_DISK"]) ?></span></div>
-					<div class="clearfix l-unit__stat-col--left u-text-center compact"><?= $data[$key]["TYPE"] ?></div>
-					<div class="clearfix l-unit__stat-col--left u-text-center wide"><b><?= $data[$key]["DBUSER"] ?></b></div>
-					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $data[$key]["HOST"] ?></b></div>
-					<div class="clearfix l-unit__stat-col--left u-text-center"><?= $data[$key]["CHARSET"] ?></div>
 				</div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 102 - 100
web/templates/pages/list_dns.php

@@ -66,117 +66,119 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact">
-				<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode; ?>>
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left super-compact">
+					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode; ?>>
+				</div>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Name") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-right"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= _("Records") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Template") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= _("TTL") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("SOA") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-3"><b><?= _("DNSSEC") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Expiration Date") ?></b></div>
 			</div>
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Name") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-right"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= _("Records") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Template") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= _("TTL") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("SOA") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-3"><b><?= _("DNSSEC") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Expiration Date") ?></b></div>
 		</div>
-	</div>
 
-	<!-- Begin DNS zone list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
-			if ($data[$key]['SUSPENDED'] == 'yes') {
-				$status = 'suspended';
-				$spnd_action = 'unsuspend';
-				$spnd_action_title = _('Unsuspend');
-				$spnd_icon = 'fa-play';
-				$spnd_confirmation = _('Are you sure you want to unsuspend domain %s?');
-			} else {
-				$status = 'active';
-				$spnd_action = 'suspend';
-				$spnd_action_title = _('Suspend');
-				$spnd_icon = 'fa-pause';
-				$spnd_confirmation = _('Are you sure you want to suspend domain %s?');
-				if ($data[$key]['DNSSEC'] !== 'yes') {
-					$dnssec_icon = 'fa-circle-xmark';
+		<!-- Begin DNS zone list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
+				if ($data[$key]['SUSPENDED'] == 'yes') {
+					$status = 'suspended';
+					$spnd_action = 'unsuspend';
+					$spnd_action_title = _('Unsuspend');
+					$spnd_icon = 'fa-play';
+					$spnd_confirmation = _('Are you sure you want to unsuspend domain %s?');
 				} else {
-					$dnssec_icon = 'fa-circle-check';
+					$status = 'active';
+					$spnd_action = 'suspend';
+					$spnd_action_title = _('Suspend');
+					$spnd_icon = 'fa-pause';
+					$spnd_confirmation = _('Are you sure you want to suspend domain %s?');
+					if ($data[$key]['DNSSEC'] !== 'yes') {
+						$dnssec_icon = 'fa-circle-xmark';
+					} else {
+						$dnssec_icon = 'fa-circle-check';
+					}
 				}
-			}
-		?>
-		<div class="l-unit <?php if ($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
-			data-sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>"
-			data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
-			data-sort-name="<?=htmlentities($key);?>"
-			data-sort-expire="<?=strtotime($data[$key]['EXP'])?>"
-			data-sort-records="<?=(int)$data[$key]['RECORDS']?>">
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="domain[]" value="<?= $key ?>" <?= $display_mode ?>>
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-3 truncate">
-					<b><a href="/list/dns/?domain=<?= htmlentities($key) ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("DNS Records") ?>: <?= htmlentities($key) ?>"><?= htmlentities($key) ?></a></b>
-					<?= empty($data[$key]["SRC"]) ? "" : '<br>⇢ <span style="font-size:11px;">' . htmlspecialchars($data[$key]["SRC"], ENT_QUOTES) . "</span>" ?>
-				</div>
-				<!-- START QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left u-text-right">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<?php if ($read_only === "true") { ?>
-								<!-- Restrict administrators from editing domain items when impersonating the 'admin' user -->
-								&nbsp;
-							<?php } else { ?>
-								<?php if ($data[$key]['SUSPENDED'] == 'no') {?>
-									<div class="actions-panel__col actions-panel__logs shortcut-n" data-key-action="href"><a href="/add/dns/?domain=<?=htmlentities($key);?>&token=<?=$_SESSION['token']?>" title="<?= _("Add DNS Record") ?>"><i class="fas fa-circle-plus icon-green icon-dim"></i></a></div>
-									<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/dns/?domain=<?=htmlentities($key);?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit DNS Domain") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
-									<?php if($data[$key]['DNSSEC'] == "yes"){?><div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/list/dns/?domain=<?=htmlentities($key);?>&action=dnssec&token=<?=$_SESSION['token']?>" title="<?= _("View Public DNSSEC Key") ?>"><i class="fas fa-key icon-orange icon-dim"></i></a></div>
+			?>
+			<div class="l-unit <?php if ($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
+				data-sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>"
+				data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
+				data-sort-name="<?=htmlentities($key);?>"
+				data-sort-expire="<?=strtotime($data[$key]['EXP'])?>"
+				data-sort-records="<?=(int)$data[$key]['RECORDS']?>">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="domain[]" value="<?= $key ?>" <?= $display_mode ?>>
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-3 truncate">
+						<b><a href="/list/dns/?domain=<?= htmlentities($key) ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("DNS Records") ?>: <?= htmlentities($key) ?>"><?= htmlentities($key) ?></a></b>
+						<?= empty($data[$key]["SRC"]) ? "" : '<br>⇢ <span style="font-size:11px;">' . htmlspecialchars($data[$key]["SRC"], ENT_QUOTES) . "</span>" ?>
+					</div>
+					<!-- START QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left u-text-right">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<?php if ($read_only === "true") { ?>
+									<!-- Restrict administrators from editing domain items when impersonating the 'admin' user -->
+									&nbsp;
+								<?php } else { ?>
+									<?php if ($data[$key]['SUSPENDED'] == 'no') {?>
+										<div class="actions-panel__col actions-panel__logs shortcut-n" data-key-action="href"><a href="/add/dns/?domain=<?=htmlentities($key);?>&token=<?=$_SESSION['token']?>" title="<?= _("Add DNS Record") ?>"><i class="fas fa-circle-plus icon-green icon-dim"></i></a></div>
+										<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/dns/?domain=<?=htmlentities($key);?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit DNS Domain") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
+										<?php if($data[$key]['DNSSEC'] == "yes"){?><div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/list/dns/?domain=<?=htmlentities($key);?>&action=dnssec&token=<?=$_SESSION['token']?>" title="<?= _("View Public DNSSEC Key") ?>"><i class="fas fa-key icon-orange icon-dim"></i></a></div>
+										<?php } ?>
 									<?php } ?>
+									<div class="actions-panel__col actions-panel__edit shortcut-l" data-key-action="href"><a href="/list/dns/?domain=<?=htmlentities($key);?>&token=<?=$_SESSION['token']?>" title="<?= _("DNS Records") ?>"><i class="fas fa-list icon-lightblue icon-dim"></i></a></div>
+									<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
+										<a
+											class="data-controls js-confirm-action"
+											href="/<?=$spnd_action?>/dns/?domain=<?=htmlentities($key);?>&token=<?=$_SESSION['token']?>"
+											data-confirm-title="<?= $spnd_action_title ?>"
+											data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
+										>
+											<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
+										</a>
+									</div>
+									<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+										<a
+											class="data-controls js-confirm-action"
+											href="/delete/dns/?domain=<?= htmlentities($key) ?>&token=<?= $_SESSION["token"] ?>"
+											data-confirm-title="<?= _("Delete") ?>"
+											data-confirm-message="<?= sprintf(_("Are you sure you want to delete domain %s?"), $key) ?>"
+										>
+											<i class="fas fa-trash icon-red icon-dim"></i>
+										</a>
+									</div>
 								<?php } ?>
-								<div class="actions-panel__col actions-panel__edit shortcut-l" data-key-action="href"><a href="/list/dns/?domain=<?=htmlentities($key);?>&token=<?=$_SESSION['token']?>" title="<?= _("DNS Records") ?>"><i class="fas fa-list icon-lightblue icon-dim"></i></a></div>
-								<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
-									<a
-										class="data-controls js-confirm-action"
-										href="/<?=$spnd_action?>/dns/?domain=<?=htmlentities($key);?>&token=<?=$_SESSION['token']?>"
-										data-confirm-title="<?= $spnd_action_title ?>"
-										data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
-									>
-										<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
-									</a>
-								</div>
-								<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-									<a
-										class="data-controls js-confirm-action"
-										href="/delete/dns/?domain=<?= htmlentities($key) ?>&token=<?= $_SESSION["token"] ?>"
-										data-confirm-title="<?= _("Delete") ?>"
-										data-confirm-message="<?= sprintf(_("Are you sure you want to delete domain %s?"), $key) ?>"
-									>
-										<i class="fas fa-trash icon-red icon-dim"></i>
-									</a>
-								</div>
-							<?php } ?>
+							</div>
 						</div>
 					</div>
+					<!-- END QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left u-text-center compact">
+						<?php if ($data[$key]['RECORDS']){
+							echo '<span>'.$data[$key]['RECORDS'].'</span>';
+						}else{
+							echo '<span>0</span>';
+						}?>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $data[$key]["TPL"] ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact"><?= $data[$key]["TTL"] ?></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><?= $data[$key]["SOA"] ?></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-3">
+						<i class="fas <?= $dnssec_icon ?>"></i>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $data[$key]["EXP"] ?></b></div>
 				</div>
-				<!-- END QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left u-text-center compact">
-					<?php if ($data[$key]['RECORDS']){
-						echo '<span>'.$data[$key]['RECORDS'].'</span>';
-					}else{
-						echo '<span>0</span>';
-					}?>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $data[$key]["TPL"] ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center compact"><?= $data[$key]["TTL"] ?></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><?= $data[$key]["SOA"] ?></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-3">
-					<i class="fas <?= $dnssec_icon ?>"></i>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $data[$key]["EXP"] ?></b></div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 27 - 27
web/templates/pages/list_dns_public.php

@@ -66,37 +66,37 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-
-	<div class="l-unit animate__animated animate__fadeIn js-unit">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("DNSKEY Record") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $data[$domain]["RECORD"]; ?>"></b></div>
+<div class="container">
+	<div class="units">
+		<div class="l-unit animate__animated animate__fadeIn js-unit">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("DNSKEY Record") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $data[$domain]["RECORD"]; ?>"></b></div>
+			</div>
 		</div>
-	</div>
-	<div class="l-unit animate__animated animate__fadeIn js-unit">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("DS Record") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $data[$domain]["DS"]; ?>"></b></div>
+		<div class="l-unit animate__animated animate__fadeIn js-unit">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("DS Record") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $data[$domain]["DS"]; ?>"></b></div>
+			</div>
 		</div>
-	</div>
-	<div class="l-unit animate__animated animate__fadeIn js-unit">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("Public Key") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $data[$domain]["KEY"]; ?>"></b></div>
+		<div class="l-unit animate__animated animate__fadeIn js-unit">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("Public Key") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $data[$domain]["KEY"]; ?>"></b></div>
+			</div>
 		</div>
-	</div>
-	<div class="l-unit animate__animated animate__fadeIn js-unit">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("Key Tag / Flag") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $flag; ?>"></b></div>
+		<div class="l-unit animate__animated animate__fadeIn js-unit">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("Key Tag / Flag") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $flag; ?>"></b></div>
+			</div>
 		</div>
-	</div>
-	<div class="l-unit animate__animated animate__fadeIn js-unit">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("Algorithm") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $algorithm; ?>"></b></div>
+		<div class="l-unit animate__animated animate__fadeIn js-unit">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("Algorithm") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $algorithm; ?>"></b></div>
+			</div>
 		</div>
 	</div>
-
 </div>

+ 71 - 70
web/templates/pages/list_dns_rec.php

@@ -70,87 +70,88 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact">
-				<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left super-compact">
+					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
+				</div>
+				<div class="clearfix l-unit__stat-col--left"><b><?= _("Record") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left super-compact u-text-right"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left compact u-text-center" style="padding-left: 32px;"><b><?= _("Type") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact u-text-center"><b><?= _("Priority") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact u-text-center"><b><?= _("TTL") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left super-compact"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left wide-6"><b><?= _("IP or Value") ?></b></div>
 			</div>
-			<div class="clearfix l-unit__stat-col--left"><b><?= _("Record") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left super-compact u-text-right"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left compact u-text-center" style="padding-left: 32px;"><b><?= _("Type") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact u-text-center"><b><?= _("Priority") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact u-text-center"><b><?= _("TTL") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left super-compact"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left wide-6"><b><?= _("IP or Value") ?></b></div>
 		</div>
-	</div>
 
-	<!-- Begin DNS record list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
-			if ($data[$key]['SUSPENDED'] == 'yes') {
-				$status = 'suspended';
-			}else{
-				$status = 'active';
+		<!-- Begin DNS record list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
+				if ($data[$key]['SUSPENDED'] == 'yes') {
+					$status = 'suspended';
+				}else{
+					$status = 'active';
 
-			}
-		?>
-		<div class="l-unit <?php if ($status == 'suspended') echo 'l-unit--suspended';?> animate__animated animate__fadeIn js-unit"
-			data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
-			data-sort-record="<?=$data[$key]['RECORD']?>"
-			data-sort-type="<?=$data[$key]['TYPE']?>"
-			data-sort-ttl="<?=$data[$key]['TTL']?>"
-			data-sort-value="<?=$data[$key]['VALUE']?>">
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check<?= $data[$key]["ID"] ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="record[]" value="<?= $data[$key]["ID"] ?>" <?= $display_mode ?>>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-truncate">
-					<b>
-					<?php if (($read_only === 'true') || ($data[$key]['SUSPENDED'] == 'yes')) {?>
-						<?=substr($data[$key]['RECORD'], 0, 12); if(strlen($data[$key]['RECORD']) > 12 ) echo '...'; ?>
-					<?php } else { ?>
-						<a href="/edit/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit DNS Record") . ': '.htmlspecialchars($data[$key]['RECORD'])?>"><? echo substr($data[$key]['RECORD'], 0, 12); if(strlen($data[$key]['RECORD']) > 12 ) echo '...'; ?></a>
-					<?php } ?>
-					</b>
-				</div>
-			<!-- START QUICK ACTION TOOLBAR AREA -->
-			<div class="clearfix l-unit__stat-col--left super-compact u-text-right">
-				<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-					<div class="actions-panel clearfix">
-						<?php if ($read_only === "true") { ?>
-							<!-- Restrict editing of DNS records when impersonating 'admin' account -->
-							&nbsp;
+				}
+			?>
+			<div class="l-unit <?php if ($status == 'suspended') echo 'l-unit--suspended';?> animate__animated animate__fadeIn js-unit"
+				data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
+				data-sort-record="<?=$data[$key]['RECORD']?>"
+				data-sort-type="<?=$data[$key]['TYPE']?>"
+				data-sort-ttl="<?=$data[$key]['TTL']?>"
+				data-sort-value="<?=$data[$key]['VALUE']?>">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check<?= $data[$key]["ID"] ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="record[]" value="<?= $data[$key]["ID"] ?>" <?= $display_mode ?>>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-truncate">
+						<b>
+						<?php if (($read_only === 'true') || ($data[$key]['SUSPENDED'] == 'yes')) {?>
+							<?=substr($data[$key]['RECORD'], 0, 12); if(strlen($data[$key]['RECORD']) > 12 ) echo '...'; ?>
 						<?php } else { ?>
-							<?php if ($data[$key]['SUSPENDED'] == 'no') {?>
-								<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit DNS Record") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
-							<?php } ?>
-							<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-								<a
-									class="data-controls js-confirm-action"
-									href="/delete/dns/?domain=<?= htmlspecialchars($_GET["domain"]) ?>&record_id=<?= $data[$key]["ID"] ?>&token=<?= $_SESSION["token"] ?>"
-									data-confirm-title="<?= _("Delete") ?>"
-									data-confirm-message="<?= sprintf(_("Are you sure you want to delete record %s?"), $key) ?>"
-								>
-									<i class="fas fa-trash icon-red icon-dim"></i>
-								</a>
-							</div>
+							<a href="/edit/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit DNS Record") . ': '.htmlspecialchars($data[$key]['RECORD'])?>"><? echo substr($data[$key]['RECORD'], 0, 12); if(strlen($data[$key]['RECORD']) > 12 ) echo '...'; ?></a>
 						<?php } ?>
+						</b>
+					</div>
+				<!-- START QUICK ACTION TOOLBAR AREA -->
+				<div class="clearfix l-unit__stat-col--left super-compact u-text-right">
+					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+						<div class="actions-panel clearfix">
+							<?php if ($read_only === "true") { ?>
+								<!-- Restrict editing of DNS records when impersonating 'admin' account -->
+								&nbsp;
+							<?php } else { ?>
+								<?php if ($data[$key]['SUSPENDED'] == 'no') {?>
+									<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/dns/?domain=<?=htmlspecialchars($_GET['domain'])?>&record_id=<?=$data[$key]['ID']?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit DNS Record") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
+								<?php } ?>
+								<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+									<a
+										class="data-controls js-confirm-action"
+										href="/delete/dns/?domain=<?= htmlspecialchars($_GET["domain"]) ?>&record_id=<?= $data[$key]["ID"] ?>&token=<?= $_SESSION["token"] ?>"
+										data-confirm-title="<?= _("Delete") ?>"
+										data-confirm-message="<?= sprintf(_("Are you sure you want to delete record %s?"), $key) ?>"
+									>
+										<i class="fas fa-trash icon-red icon-dim"></i>
+									</a>
+								</div>
+							<?php } ?>
+						</div>
 					</div>
 				</div>
+				<!-- END QUICK ACTION TOOLBAR AREA -->
+				<div class="clearfix l-unit__stat-col--left compact u-text-center" style="padding-left: 32px;"><b><?=$data[$key]['TYPE']?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact u-text-center"><?=$data[$key]['PRIORITY']?>&nbsp;</div>
+				<div class="clearfix l-unit__stat-col--left compact u-text-center"><?php if($data[$key]['TTL'] == ''){ echo _('Default'); }else{ echo $data[$key]['TTL'];} ?></div>
+				<div class="clearfix l-unit__stat-col--left super-compact"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left wide-6 truncate" style="word-break: break-word;"><?= htmlspecialchars($data[$key]["VALUE"], ENT_QUOTES, "UTF-8") ?></div>
 			</div>
-			<!-- END QUICK ACTION TOOLBAR AREA -->
-			<div class="clearfix l-unit__stat-col--left compact u-text-center" style="padding-left: 32px;"><b><?=$data[$key]['TYPE']?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact u-text-center"><?=$data[$key]['PRIORITY']?>&nbsp;</div>
-			<div class="clearfix l-unit__stat-col--left compact u-text-center"><?php if($data[$key]['TTL'] == ''){ echo _('Default'); }else{ echo $data[$key]['TTL'];} ?></div>
-			<div class="clearfix l-unit__stat-col--left super-compact"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left wide-6 truncate" style="word-break: break-word;"><?= htmlspecialchars($data[$key]["VALUE"], ENT_QUOTES, "UTF-8") ?></div>
 		</div>
+		<?php } ?>
 	</div>
-<?php } ?>
-
 </div>
 
 <footer class="app-footer">

+ 87 - 85
web/templates/pages/list_firewall.php

@@ -55,100 +55,102 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units compact">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact">
-				<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
+<div class="container">
+	<div class="units compact">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left super-compact">
+					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
+				</div>
+				<div class="clearfix l-unit__stat-col--left wide-1"><b><?= _("Action") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-2 u-text-right"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Comment") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Protocol") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-3 u-text-center"><b><?= _("Port") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("IP Address") ?></b></div>
 			</div>
-			<div class="clearfix l-unit__stat-col--left wide-1"><b><?= _("Action") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-2 u-text-right"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Comment") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Protocol") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide-3 u-text-center"><b><?= _("Port") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("IP Address") ?></b></div>
 		</div>
-	</div>
 
-	<!-- Begin firewall chain/action list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
-			if ($data[$key]['SUSPENDED'] == 'yes') {
-				$status = 'suspended';
-				$spnd_action = 'unsuspend';
-				$spnd_action_title = _('Unsuspend');
-				$spnd_icon = 'fa-play';
-				$spnd_confirmation = _('Are you sure you want to unsuspend rule #%s?') ;
-			} else {
-				$status = 'active';
-				$spnd_action = 'suspend';
-				$spnd_action_title = _('Suspend');
-				$spnd_icon = 'fa-pause';
-				$spnd_confirmation = _('Are you sure you want to suspend rule #%s?') ;
-			}
-		?>
-		<div class="l-unit <?php if ($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
-			data-sort-action="<?=$data[$key]['ACTION']?>"
-			data-sort-protocol="<?=$data[$key]['PROTOCOL']?>"
-			data-sort-port="<?=$data[$key]['PORT']?>"
-			data-sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>"
-			data-sort-comment="<?=$data[$key]['COMMENT']?>">
-			<div class="l-unit__col l-unit__col--right">
-				<div>
-					<div class="clearfix l-unit__stat-col--left super-compact">
-						<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="rule[]" value="<?= $key ?>">
-					</div>
-					<div class="clearfix l-unit__stat-col--left wide-1">
-						<b>
-							<a href="/edit/firewall/?rule=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Edit Firewall Rule") ?>">
-								<?php
-									$suspended = $data[$key]["SUSPENDED"] == "no";
-									$action = $data[$key]["ACTION"];
-									$iconClass = $action == "DROP" ? "fa-circle-minus" : "fa-circle-check";
-									$colorClass = $action == "DROP" ? "icon-red" : "icon-green";
-								?>
-								<i class="fas <?= $iconClass ?> u-mr5 <?= $suspended ? $colorClass : "" ?>"></i> <?= $action ?>
-							</a>
-						</b>
-					</div>
-					<!-- START QUICK ACTION TOOLBAR AREA -->
-					<div class="clearfix l-unit__stat-col--left compact-2 u-text-right">
-						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-							<div class="actions-panel clearfix" style="padding-right: 10px;">
-								<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/firewall/?rule=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Firewall Rule") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
-								<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
-									<a
-										class="data-controls js-confirm-action"
-										href="/<?=$spnd_action?>/firewall/?rule=<?=$key?>&token=<?=$_SESSION['token']?>"
-										data-confirm-title="<?= $spnd_action_title ?>"
-										data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
-									>
-										<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
-									</a>
-								</div>
-								<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-									<a
-										class="data-controls js-confirm-action"
-										href="/delete/firewall/?rule=<?=$key?>&token=<?=$_SESSION['token']?>"
-										data-confirm-title="<?= _("Delete") ?>"
-										data-confirm-message="<?= sprintf(_('Are you sure you want to delete rule %s'), $key) ?>"
-									>
-										<i class="fas fa-trash icon-red icon-dim"></i>
-									</a>
+		<!-- Begin firewall chain/action list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
+				if ($data[$key]['SUSPENDED'] == 'yes') {
+					$status = 'suspended';
+					$spnd_action = 'unsuspend';
+					$spnd_action_title = _('Unsuspend');
+					$spnd_icon = 'fa-play';
+					$spnd_confirmation = _('Are you sure you want to unsuspend rule #%s?') ;
+				} else {
+					$status = 'active';
+					$spnd_action = 'suspend';
+					$spnd_action_title = _('Suspend');
+					$spnd_icon = 'fa-pause';
+					$spnd_confirmation = _('Are you sure you want to suspend rule #%s?') ;
+				}
+			?>
+			<div class="l-unit <?php if ($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
+				data-sort-action="<?=$data[$key]['ACTION']?>"
+				data-sort-protocol="<?=$data[$key]['PROTOCOL']?>"
+				data-sort-port="<?=$data[$key]['PORT']?>"
+				data-sort-ip="<?=str_replace('.', '', $data[$key]['IP'])?>"
+				data-sort-comment="<?=$data[$key]['COMMENT']?>">
+				<div class="l-unit__col l-unit__col--right">
+					<div>
+						<div class="clearfix l-unit__stat-col--left super-compact">
+							<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="rule[]" value="<?= $key ?>">
+						</div>
+						<div class="clearfix l-unit__stat-col--left wide-1">
+							<b>
+								<a href="/edit/firewall/?rule=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Edit Firewall Rule") ?>">
+									<?php
+										$suspended = $data[$key]["SUSPENDED"] == "no";
+										$action = $data[$key]["ACTION"];
+										$iconClass = $action == "DROP" ? "fa-circle-minus" : "fa-circle-check";
+										$colorClass = $action == "DROP" ? "icon-red" : "icon-green";
+									?>
+									<i class="fas <?= $iconClass ?> u-mr5 <?= $suspended ? $colorClass : "" ?>"></i> <?= $action ?>
+								</a>
+							</b>
+						</div>
+						<!-- START QUICK ACTION TOOLBAR AREA -->
+						<div class="clearfix l-unit__stat-col--left compact-2 u-text-right">
+							<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+								<div class="actions-panel clearfix" style="padding-right: 10px;">
+									<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/firewall/?rule=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Firewall Rule") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
+									<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
+										<a
+											class="data-controls js-confirm-action"
+											href="/<?=$spnd_action?>/firewall/?rule=<?=$key?>&token=<?=$_SESSION['token']?>"
+											data-confirm-title="<?= $spnd_action_title ?>"
+											data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
+										>
+											<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
+										</a>
+									</div>
+									<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+										<a
+											class="data-controls js-confirm-action"
+											href="/delete/firewall/?rule=<?=$key?>&token=<?=$_SESSION['token']?>"
+											data-confirm-title="<?= _("Delete") ?>"
+											data-confirm-message="<?= sprintf(_('Are you sure you want to delete rule %s'), $key) ?>"
+										>
+											<i class="fas fa-trash icon-red icon-dim"></i>
+										</a>
+									</div>
 								</div>
 							</div>
 						</div>
+						<!-- END QUICK ACTION TOOLBAR AREA -->
+						<div class="clearfix l-unit__stat-col--left wide-3"><b><?php if (!empty($data[$key]['COMMENT'])) echo '' . $data[$key]['COMMENT']; else echo "&nbsp;"; ?></b></div>
+						<div class="clearfix l-unit__stat-col--left u-text-center"><?=_($data[$key]['PROTOCOL'])?></div>
+						<div class="clearfix l-unit__stat-col--left wide-3 u-text-center"><b><?=$data[$key]['PORT']?></b></div>
+						<div class="clearfix l-unit__stat-col--left u-text-center"><?=$data[$key]['IP']?></div>
 					</div>
-					<!-- END QUICK ACTION TOOLBAR AREA -->
-					<div class="clearfix l-unit__stat-col--left wide-3"><b><?php if (!empty($data[$key]['COMMENT'])) echo '' . $data[$key]['COMMENT']; else echo "&nbsp;"; ?></b></div>
-					<div class="clearfix l-unit__stat-col--left u-text-center"><?=_($data[$key]['PROTOCOL'])?></div>
-					<div class="clearfix l-unit__stat-col--left wide-3 u-text-center"><b><?=$data[$key]['PORT']?></b></div>
-					<div class="clearfix l-unit__stat-col--left u-text-center"><?=$data[$key]['IP']?></div>
 				</div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 44 - 42
web/templates/pages/list_firewall_banlist.php

@@ -25,56 +25,58 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact">
-				<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
-			</div>
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("IP Address") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-4"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><b><?= _("Date") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><b><?= _("Time") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide u-text-center"><b><?= _("Comment") ?></b></div>
-		</div>
-	</div>
-
-	<!-- Begin banned IP address list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
-			$ip = $key;
-		?>
-		<div class="l-unit animate__animated animate__fadeIn">
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
 			<div class="l-unit__col l-unit__col--right">
 				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="ipchain[]" value="<?= $ip . ":" . $value["CHAIN"] ?>">
+					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
 				</div>
-				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= $ip ?></b></div>
-				<!-- START QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left compact-4">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-								<a
-									class="data-controls js-confirm-action"
-									href="/delete/firewall/banlist/?ip=<?= $ip ?>&chain=<?= $value["CHAIN"] ?>&token=<?= $_SESSION["token"] ?>"
-									data-confirm-title="<?= _("Delete") ?>"
-									data-confirm-message="<?= sprintf(_("Are you sure you want to delete IP address %s?"), $key) ?>"
-								>
-									<i class="fas fa-trash icon-red icon-dim"></i>
-								</a>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("IP Address") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-4"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><b><?= _("Date") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><b><?= _("Time") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide u-text-center"><b><?= _("Comment") ?></b></div>
+			</div>
+		</div>
+
+		<!-- Begin banned IP address list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
+				$ip = $key;
+			?>
+			<div class="l-unit animate__animated animate__fadeIn">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="ipchain[]" value="<?= $ip . ":" . $value["CHAIN"] ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-3"><b><?= $ip ?></b></div>
+					<!-- START QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left compact-4">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+									<a
+										class="data-controls js-confirm-action"
+										href="/delete/firewall/banlist/?ip=<?= $ip ?>&chain=<?= $value["CHAIN"] ?>&token=<?= $_SESSION["token"] ?>"
+										data-confirm-title="<?= _("Delete") ?>"
+										data-confirm-message="<?= sprintf(_("Are you sure you want to delete IP address %s?"), $key) ?>"
+									>
+										<i class="fas fa-trash icon-red icon-dim"></i>
+									</a>
+								</div>
 							</div>
 						</div>
 					</div>
+					<!-- END QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><?= _($data[$key]["DATE"]) ?></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><?= $data[$key]["TIME"] ?></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center wide"><b><?= _($value["CHAIN"]) ?></b></div>
 				</div>
-				<!-- END QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><?= _($data[$key]["DATE"]) ?></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><?= $data[$key]["TIME"] ?></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center wide"><b><?= _($value["CHAIN"]) ?></b></div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 52 - 50
web/templates/pages/list_firewall_ipset.php

@@ -25,64 +25,66 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact">
-				<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
-			</div>
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("IP List Name") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-4"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><b><?= _("Auto Update") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-4"><b><?= _("IP Version") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-4"><b><?= _("Date") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-4"><b><?= _("Time") ?></b></div>
-		</div>
-	</div>
-
-	<!-- Begin firewall IP address list item loop -->
-	<?php foreach ($data as $key => $value) {
- 	$listname = $key; ?>
-		<div class="l-unit animate__animated animate__fadeIn">
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
 			<div class="l-unit__col l-unit__col--right">
 				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="setname[]" value="<?= $listname ?>">
+					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
 				</div>
-				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= $listname ?></b></div>
-				<!-- START QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left compact-4">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-								<a
-									class="data-controls js-confirm-action"
-									href="/delete/firewall/ipset/?listname=<?= $listname ?>&token=<?= $_SESSION["token"] ?>"
-									data-confirm-title="<?= _("Delete") ?>"
-									data-confirm-message="<?= sprintf(_("Are you sure you want to delete IP list %s?"), $key) ?>"
-								>
-									<i class="fas fa-trash icon-red icon-dim"></i>
-								</a>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("IP List Name") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-4"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><b><?= _("Auto Update") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-4"><b><?= _("IP Version") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-4"><b><?= _("Date") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-4"><b><?= _("Time") ?></b></div>
+			</div>
+		</div>
+
+		<!-- Begin firewall IP address list item loop -->
+		<?php foreach ($data as $key => $value) {
+		$listname = $key; ?>
+			<div class="l-unit animate__animated animate__fadeIn">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="setname[]" value="<?= $listname ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-3"><b><?= $listname ?></b></div>
+					<!-- START QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left compact-4">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+									<a
+										class="data-controls js-confirm-action"
+										href="/delete/firewall/ipset/?listname=<?= $listname ?>&token=<?= $_SESSION["token"] ?>"
+										data-confirm-title="<?= _("Delete") ?>"
+										data-confirm-message="<?= sprintf(_("Are you sure you want to delete IP list %s?"), $key) ?>"
+									>
+										<i class="fas fa-trash icon-red icon-dim"></i>
+									</a>
+								</div>
 							</div>
 						</div>
 					</div>
+					<!-- END QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><b>
+							<?php if ($data[$key]["AUTOUPDATE"] == "no") { ?>
+								<i class="fas fa-circle-xmark icon-red"></i>
+							<?php } else { ?>
+								<i class="fas fa-circle-check icon-green"></i>
+							<?php } ?>
+						</b>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-4"><?= _($data[$key]["IP_VERSION"]) ?></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-4"><?= _($data[$key]["DATE"]) ?></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-4"><?= $data[$key]["TIME"] ?></div>
 				</div>
-				<!-- END QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><b>
-						<?php if ($data[$key]["AUTOUPDATE"] == "no") { ?>
-							<i class="fas fa-circle-xmark icon-red"></i>
-						<?php } else { ?>
-							<i class="fas fa-circle-check icon-green"></i>
-						<?php } ?>
-					</b>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-4"><?= _($data[$key]["IP_VERSION"]) ?></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-4"><?= _($data[$key]["DATE"]) ?></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-4"><?= $data[$key]["TIME"] ?></div>
 			</div>
-		</div>
-	<?php
-	$i++;
-} ?>
+		<?php
+		$i++;
+	} ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 56 - 54
web/templates/pages/list_ip.php

@@ -51,70 +51,72 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div>
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div>
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("IP Address") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left compact u-text-right"><b>&nbsp;</b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><b><?= _("Netmask") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Interface") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Status") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Domains") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Owner") ?></b></div>
 				</div>
-				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("IP Address") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left compact u-text-right"><b>&nbsp;</b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><b><?= _("Netmask") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Interface") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Status") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Domains") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Owner") ?></b></div>
 			</div>
 		</div>
-	</div>
 
-	<!-- Begin IP address list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
-		?>
-		<div class="l-unit animate__animated animate__fadeIn js-unit"
-			data-sort-ip="<?=str_replace('.', '', $key)?>"
-			data-sort-date="<?=strtotime($data[$key]['DATE'] .' '. $data[$key]['TIME'] )?>"
-			data-sort-netmask="<?=str_replace('.', '', $data[$key]['NETMASK'])?>"
-			data-sort-interface="<?=$data[$key]['INTERFACE']?>"
-			data-sort-domains="<?=$data[$key]['U_WEB_DOMAINS']?>"
-			data-sort-owner="<?=$data[$key]['OWNER']?>">
+		<!-- Begin IP address list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
+			?>
+			<div class="l-unit animate__animated animate__fadeIn js-unit"
+				data-sort-ip="<?=str_replace('.', '', $key)?>"
+				data-sort-date="<?=strtotime($data[$key]['DATE'] .' '. $data[$key]['TIME'] )?>"
+				data-sort-netmask="<?=str_replace('.', '', $data[$key]['NETMASK'])?>"
+				data-sort-interface="<?=$data[$key]['INTERFACE']?>"
+				data-sort-domains="<?=$data[$key]['U_WEB_DOMAINS']?>"
+				data-sort-owner="<?=$data[$key]['OWNER']?>">
 
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="ip[]" value="<?= $key ?>">
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-3"><b><a href="/edit/ip/?ip=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit IP Address") ?>"><?=$key?> <?php if (!empty($data[$key]['NAT'])) echo ' → ' . $data[$key]['NAT'] . ''; ?></a></b>
-				</div>
-				<!-- START QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left compact u-text-right">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/ip/?ip=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit IP Address") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
-							<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-								<a
-									class="data-controls js-confirm-action"
-									href="/delete/ip/?ip=<?=$key?>&token=<?=$_SESSION['token']?>"
-									data-confirm-title="<?= _("Delete") ?>"
-									data-confirm-message="<?= sprintf(_('Are you sure you want to delete IP address %s?'), $key) ?>"
-								>
-									<i class="fas fa-trash icon-red icon-dim"></i>
-								</a>
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="ip[]" value="<?= $key ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-3"><b><a href="/edit/ip/?ip=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit IP Address") ?>"><?=$key?> <?php if (!empty($data[$key]['NAT'])) echo ' → ' . $data[$key]['NAT'] . ''; ?></a></b>
+					</div>
+					<!-- START QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left compact u-text-right">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/ip/?ip=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit IP Address") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
+								<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+									<a
+										class="data-controls js-confirm-action"
+										href="/delete/ip/?ip=<?=$key?>&token=<?=$_SESSION['token']?>"
+										data-confirm-title="<?= _("Delete") ?>"
+										data-confirm-message="<?= sprintf(_('Are you sure you want to delete IP address %s?'), $key) ?>"
+									>
+										<i class="fas fa-trash icon-red icon-dim"></i>
+									</a>
+								</div>
 							</div>
 						</div>
 					</div>
+					<!-- END QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><?= $data[$key]["NETMASK"] ?></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><?= $data[$key]["INTERFACE"] ?></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _($data[$key]["STATUS"]) ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $data[$key]["U_WEB_DOMAINS"] ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $data[$key]["OWNER"] ?></b></div>
 				</div>
-				<!-- END QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-5"><?= $data[$key]["NETMASK"] ?></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><?= $data[$key]["INTERFACE"] ?></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _($data[$key]["STATUS"]) ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $data[$key]["U_WEB_DOMAINS"] ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= $data[$key]["OWNER"] ?></b></div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 38 - 36
web/templates/pages/list_key.php

@@ -19,50 +19,52 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("SSH ID") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-2">
-				&nbsp;
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("SSH ID") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-2">
+					&nbsp;
+				</div>
+				<div class="clearfix l-unit__stat-col--left wide-7"><b><?= _("SSH Key") ?></b></div>
 			</div>
-			<div class="clearfix l-unit__stat-col--left wide-7"><b><?= _("SSH Key") ?></b></div>
 		</div>
-	</div>
 
-	<!-- Begin SSH key list item loop -->
-	<?php
-		$i = 0;
-			foreach ($data as $key => $value) {
-			++$i;
-		?>
-		<div class="l-unit header animate__animated animate__fadeIn" style="<?php if ($data[$key]['ID'] === 'filemanager.ssh.key') { echo 'display: none;'; } ?>">
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= htmlspecialchars($data[$key]["ID"]) ?></b></div>
-				<div class="clearfix l-unit__stat-col--left text-left compact-2">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-								<a
-									class="data-controls js-confirm-action"
-									<?php if ($_SESSION["userContext"] === "admin" && isset($_GET["user"]) && $_GET["user"] !== "admin") { ?>
-										href="/delete/key/?user=<?= htmlentities($_GET["user"]) ?>&key=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
-									<?php } else { ?>
-										href="/delete/key/?key=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
-									<?php } ?>
-									data-confirm-title="<?= _("Delete") ?>"
-									data-confirm-message="<?= sprintf(_("Are you sure you want to delete SSH key %s?"), $key) ?>"
-								>
-									<i class="fas fa-trash icon-red icon-dim"></i>
-								</a>
+		<!-- Begin SSH key list item loop -->
+		<?php
+			$i = 0;
+				foreach ($data as $key => $value) {
+				++$i;
+			?>
+			<div class="l-unit header animate__animated animate__fadeIn" style="<?php if ($data[$key]['ID'] === 'filemanager.ssh.key') { echo 'display: none;'; } ?>">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left wide-3"><b><?= htmlspecialchars($data[$key]["ID"]) ?></b></div>
+					<div class="clearfix l-unit__stat-col--left text-left compact-2">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+									<a
+										class="data-controls js-confirm-action"
+										<?php if ($_SESSION["userContext"] === "admin" && isset($_GET["user"]) && $_GET["user"] !== "admin") { ?>
+											href="/delete/key/?user=<?= htmlentities($_GET["user"]) ?>&key=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
+										<?php } else { ?>
+											href="/delete/key/?key=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
+										<?php } ?>
+										data-confirm-title="<?= _("Delete") ?>"
+										data-confirm-message="<?= sprintf(_("Are you sure you want to delete SSH key %s?"), $key) ?>"
+									>
+										<i class="fas fa-trash icon-red icon-dim"></i>
+									</a>
+								</div>
 							</div>
 						</div>
 					</div>
+					<div class="clearfix l-unit__stat-col--left wide-7"><b><?= htmlspecialchars($data[$key]["KEY"], ENT_QUOTES) ?></b></div>
 				</div>
-				<div class="clearfix l-unit__stat-col--left wide-7"><b><?= htmlspecialchars($data[$key]["KEY"], ENT_QUOTES) ?></b></div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 35 - 34
web/templates/pages/list_log.php

@@ -69,45 +69,46 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact u-text-center">&nbsp;</div>
-			<div class="clearfix l-unit__stat-col--left"><b><?= _("Date") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-2"><b><?= _("Time") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left"><b><?= _("Category") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left"><b><?= _("Message") ?></b></div>
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left super-compact u-text-center">&nbsp;</div>
+				<div class="clearfix l-unit__stat-col--left"><b><?= _("Date") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-2"><b><?= _("Time") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left"><b><?= _("Category") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left"><b><?= _("Message") ?></b></div>
+			</div>
 		</div>
-	</div>
 
-	<!-- Begin log history entry loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
+		<!-- Begin log history entry loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
 
-			if ($data[$key]['LEVEL'] === 'Info') {
-				$level_icon = 'fa-info-circle icon-blue';
-			}
-			if ($data[$key]['LEVEL'] === 'Warning') {
-				$level_icon = 'fa-triangle-exclamation icon-orange';
-			}
-			if ($data[$key]['LEVEL'] === 'Error') {
-				$level_icon = 'fa-circle-xmark icon-red';
-			}
-		?>
-		<div class="l-unit header animate__animated animate__fadeIn">
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact u-text-center">
-					<i class="fas <?= $level_icon ?>"></i>
+				if ($data[$key]['LEVEL'] === 'Info') {
+					$level_icon = 'fa-info-circle icon-blue';
+				}
+				if ($data[$key]['LEVEL'] === 'Warning') {
+					$level_icon = 'fa-triangle-exclamation icon-orange';
+				}
+				if ($data[$key]['LEVEL'] === 'Error') {
+					$level_icon = 'fa-circle-xmark icon-red';
+				}
+			?>
+			<div class="l-unit header animate__animated animate__fadeIn">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact u-text-center">
+						<i class="fas <?= $level_icon ?>"></i>
+					</div>
+					<div class="clearfix l-unit__stat-col--left"><b><?= translate_date($data[$key]["DATE"]) ?></b></div>
+					<div class="clearfix l-unit__stat-col--left compact-2"><b><?= htmlspecialchars($data[$key]["TIME"]) ?></b></div>
+					<div class="clearfix l-unit__stat-col--left"><b><?= htmlspecialchars($data[$key]["CATEGORY"]) ?></b></div>
+					<div class="clearfix l-unit__stat-col--left wide-7"><?= htmlspecialchars($data[$key]["MESSAGE"], ENT_QUOTES) ?></div>
 				</div>
-				<div class="clearfix l-unit__stat-col--left"><b><?= translate_date($data[$key]["DATE"]) ?></b></div>
-				<div class="clearfix l-unit__stat-col--left compact-2"><b><?= htmlspecialchars($data[$key]["TIME"]) ?></b></div>
-				<div class="clearfix l-unit__stat-col--left"><b><?= htmlspecialchars($data[$key]["CATEGORY"]) ?></b></div>
-				<div class="clearfix l-unit__stat-col--left wide-7"><?= htmlspecialchars($data[$key]["MESSAGE"], ENT_QUOTES) ?></div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 39 - 38
web/templates/pages/list_log_auth.php

@@ -39,52 +39,53 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left u-text-center">
-				<b><?= _("Status") ?></b>
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left u-text-center">
+					<b><?= _("Status") ?></b>
+				</div>
+				<div class="clearfix l-unit__stat-col--left"><b><?= _("Date") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-2"><b><?= _("Time") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left"><b><?= _("IP Address") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-7"><b><?= _("Browser") ?></b></div>
 			</div>
-			<div class="clearfix l-unit__stat-col--left"><b><?= _("Date") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-2"><b><?= _("Time") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left"><b><?= _("IP Address") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide-7"><b><?= _("Browser") ?></b></div>
 		</div>
-	</div>
 
-	<!-- Begin log history entry loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
+		<!-- Begin log history entry loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
 
-			if ($data[$key]['ACTION'] == 'login') {
-				if ($data[$key]['ACTIVE'] === 'yes') {
-					$action_icon = 'fa-right-to-bracket icon-maroon';
+				if ($data[$key]['ACTION'] == 'login') {
+					if ($data[$key]['ACTIVE'] === 'yes') {
+						$action_icon = 'fa-right-to-bracket icon-maroon';
+					} else {
+						$action_icon = ' fa-right-to-bracket icon-dim';
+					}
+				}
+				if ($data[$key]['STATUS'] == 'success')	{
+						$status_icon = 'fa-circle-check icon-green';
+						$status_title = _('Success');
 				} else {
-					$action_icon = ' fa-right-to-bracket icon-dim';
+						$status_icon = 'fa-circle-minus icon-red';
+						$status_title = _('Failed');
 				}
-			}
-			if ($data[$key]['STATUS'] == 'success')	{
-					$status_icon = 'fa-circle-check icon-green';
-					$status_title = _('Success');
-			} else {
-					$status_icon = 'fa-circle-minus icon-red';
-					$status_title = _('Failed');
-			}
-		?>
-		<div class="l-unit header animate__animated animate__fadeIn">
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left u-text-center">
-					<i class="fas <?= $status_icon ?> u-mr5" title="<?= $status_title ?>"></i>
+			?>
+			<div class="l-unit header animate__animated animate__fadeIn">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left u-text-center">
+						<i class="fas <?= $status_icon ?> u-mr5" title="<?= $status_title ?>"></i>
+					</div>
+					<div class="clearfix l-unit__stat-col--left"><b><?= translate_date($data[$key]["DATE"]) ?></b></div>
+					<div class="clearfix l-unit__stat-col--left compact-2"><b><?= htmlspecialchars($data[$key]["TIME"]) ?></b></div>
+					<div class="clearfix l-unit__stat-col--left"><?= htmlspecialchars($data[$key]["IP"]) ?></div>
+					<div class="clearfix l-unit__stat-col--left wide-7"><?= htmlspecialchars($data[$key]["USER_AGENT"]) ?></b></div>
 				</div>
-				<div class="clearfix l-unit__stat-col--left"><b><?= translate_date($data[$key]["DATE"]) ?></b></div>
-				<div class="clearfix l-unit__stat-col--left compact-2"><b><?= htmlspecialchars($data[$key]["TIME"]) ?></b></div>
-				<div class="clearfix l-unit__stat-col--left"><?= htmlspecialchars($data[$key]["IP"]) ?></div>
-				<div class="clearfix l-unit__stat-col--left wide-7"><?= htmlspecialchars($data[$key]["USER_AGENT"]) ?></b></div>
 			</div>
-		</div>
-	<?php } ?>
-
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 157 - 155
web/templates/pages/list_mail.php

@@ -63,175 +63,177 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact">
-				<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left super-compact">
+					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
+				</div>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Name") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-right compact-5"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b><?= _("Accounts") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b><?= _("Disk") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-3"><b><?= _("Anti-Virus") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-3"><b><?= _("Spam Filter") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-3"><b><?= _("DKIM") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-3"><b><?= _("SSL") ?></b></div>
 			</div>
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Name") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-right compact-5"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b><?= _("Accounts") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b><?= _("Disk") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-3"><b><?= _("Anti-Virus") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-3"><b><?= _("Spam Filter") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-3"><b><?= _("DKIM") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-3"><b><?= _("SSL") ?></b></div>
 		</div>
-	</div>
 
-	<!-- Begin mail domain list item loop -->
-	<?php
-		list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"].":");
-		$webmail = "webmail";
-		if (!empty($_SESSION['WEBMAIL_ALIAS'])) $webmail = $_SESSION['WEBMAIL_ALIAS'];
-		foreach ($data as $key => $value) {
-			++$i;
-			if ($data[$key]['SUSPENDED'] == 'yes') {
-				$status = 'suspended';
-				$spnd_action = 'unsuspend';
-				$spnd_action_title = _('Unsuspend');
-				$spnd_icon = 'fa-play';
-				$spnd_confirmation = _('Are you sure you want to unsuspend domain %s?');
-				if ($data[$key]['ANTIVIRUS'] == 'no') {
-					$antivirus_icon = 'fa-circle-xmark';
-				} else {
-					$antivirus_icon = 'fa-circle-check';
-				}
-				if ($data[$key]['ANTISPAM'] == 'no') {
-					$antispam_icon = 'fa-circle-xmark';
-				} else {
-					$antispam_icon = 'fa-circle-check';
-				}
-				if ($data[$key]['DKIM'] == 'no') {
-					$dkim_icon = 'fa-circle-xmark';
-				} else {
-					$dkim_icon = 'fa-circle-check';
-				}
-				if ($data[$key]['SSL'] == 'no') {
-					$ssl_icon = 'fa-circle-xmark';
+		<!-- Begin mail domain list item loop -->
+		<?php
+			list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"].":");
+			$webmail = "webmail";
+			if (!empty($_SESSION['WEBMAIL_ALIAS'])) $webmail = $_SESSION['WEBMAIL_ALIAS'];
+			foreach ($data as $key => $value) {
+				++$i;
+				if ($data[$key]['SUSPENDED'] == 'yes') {
+					$status = 'suspended';
+					$spnd_action = 'unsuspend';
+					$spnd_action_title = _('Unsuspend');
+					$spnd_icon = 'fa-play';
+					$spnd_confirmation = _('Are you sure you want to unsuspend domain %s?');
+					if ($data[$key]['ANTIVIRUS'] == 'no') {
+						$antivirus_icon = 'fa-circle-xmark';
+					} else {
+						$antivirus_icon = 'fa-circle-check';
+					}
+					if ($data[$key]['ANTISPAM'] == 'no') {
+						$antispam_icon = 'fa-circle-xmark';
+					} else {
+						$antispam_icon = 'fa-circle-check';
+					}
+					if ($data[$key]['DKIM'] == 'no') {
+						$dkim_icon = 'fa-circle-xmark';
+					} else {
+						$dkim_icon = 'fa-circle-check';
+					}
+					if ($data[$key]['SSL'] == 'no') {
+						$ssl_icon = 'fa-circle-xmark';
+					} else {
+						$ssl_icon = 'fa-circle-check';
+					}
 				} else {
-					$ssl_icon = 'fa-circle-check';
+					$status = 'active';
+					$spnd_action = 'suspend';
+					$spnd_action_title = _('Suspend');
+					$spnd_icon = 'fa-pause';
+					$spnd_confirmation = _('Are you sure you want to suspend domain %s?');
+					if ($data[$key]['ANTIVIRUS'] == 'no') {
+						$antivirus_icon = 'fa-circle-xmark icon-red';
+					} else {
+						$antivirus_icon = 'fa-circle-check icon-green';
+					}
+					if ($data[$key]['ANTISPAM'] == 'no') {
+						$antispam_icon = 'fa-circle-xmark icon-red';
+					} else {
+						$antispam_icon = 'fa-circle-check icon-green';
+					}
+					if ($data[$key]['DKIM'] == 'no') {
+						$dkim_icon = 'fa-circle-xmark icon-red';
+					} else {
+						$dkim_icon = 'fa-circle-check icon-green';
+					}
+					if ($data[$key]['SSL'] == 'no') {
+						$ssl_icon = 'fa-circle-xmark icon-red';
+					} else {
+						$ssl_icon = 'fa-circle-check icon-green';
+					}
 				}
-			} else {
-				$status = 'active';
-				$spnd_action = 'suspend';
-				$spnd_action_title = _('Suspend');
-				$spnd_icon = 'fa-pause';
-				$spnd_confirmation = _('Are you sure you want to suspend domain %s?');
-				if ($data[$key]['ANTIVIRUS'] == 'no') {
-					$antivirus_icon = 'fa-circle-xmark icon-red';
-				} else {
-					$antivirus_icon = 'fa-circle-check icon-green';
-				}
-				if ($data[$key]['ANTISPAM'] == 'no') {
-					$antispam_icon = 'fa-circle-xmark icon-red';
-				} else {
-					$antispam_icon = 'fa-circle-check icon-green';
-				}
-				if ($data[$key]['DKIM'] == 'no') {
-					$dkim_icon = 'fa-circle-xmark icon-red';
-				} else {
-					$dkim_icon = 'fa-circle-check icon-green';
+				if (empty($data[$key]['CATCHALL'])) {
+					$data[$key]['CATCHALL'] = '/dev/null';
 				}
-				if ($data[$key]['SSL'] == 'no') {
-					$ssl_icon = 'fa-circle-xmark icon-red';
-				} else {
-					$ssl_icon = 'fa-circle-check icon-green';
-				}
-			}
-			if (empty($data[$key]['CATCHALL'])) {
-				$data[$key]['CATCHALL'] = '/dev/null';
-			}
-		?>
-		<div class="l-unit <?php if ($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
-			data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
-			data-sort-name="<?=$key?>"
-			data-sort-disk="<?=$data[$key]['U_DISK']?>"
-			data-sort-accounts="<?=$data[$key]['ACCOUNTS']?>">
-			<div class="l-unit__col l-unit__col--right">
-				<div>
-					<div class="clearfix l-unit__stat-col--left super-compact">
-						<input id="check<?=$i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="domain[]" value="<?=$key?>" <?=$display_mode;?>>
-					</div>
-					<div class="clearfix l-unit__stat-col--left wide-3 truncate"><b><a href="?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Mail Accounts") ?>: <?=$key?>"><?=$key?></a></b></div>
-					<!-- START QUICK ACTION TOOLBAR AREA -->
-					<div class="clearfix l-unit__stat-col--left u-text-right compact-5">
-						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-							<div class="actions-panel clearfix">
-								<?php if ($read_only === 'true') {?>
-									<!-- Restrict ability to edit, delete, or suspend domain items when impersonating 'admin' account -->
-									<div class="actions-panel__col actions-panel__edit shortcut-l" data-key-action="href"><a href="?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Mail Accounts") ?>"><i class="fas fa-users icon-blue icon-dim"></i></a></div>
-									<div class="actions-panel__col actions-panel__edit shortcut-l" data-key-action="href"><a href="?domain=<?=$key?>&dns=1&token=<?=$_SESSION['token']?>" title="<?= _("DNS Records") ?>"><i class="fas fa-book-atlas icon-blue icon-dim"></i></a></div>
-									<?php if ($data[$key]['SUSPENDED'] == 'no') {?>
-										<div class="actions-panel__col actions-panel__edit" data-key-action="href"><a href="http://<?=$webmail;?>.<?=$key?>/" target="_blank" title="<?= _("Open Webmail") ?>"><i class="fas fa-paper-plane icon-lightblue icon-dim"></i></a></div>
-									<?php } ?>
-								<?php } else { ?>
-									<?php if ($data[$key]['SUSPENDED'] == 'no') {?>
-										<div class="actions-panel__col actions-panel__logs shortcut-n" data-key-action="href"><a href="/add/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Add Mail Account") ?>"><i class="fas fa-circle-plus icon-green icon-dim"></i></a></div>
-										<?php if($_SESSION['WEBMAIL_SYSTEM']){?>
-											<?php if (!empty($data[$key]['WEBMAIL'])) {?>
-												<div class="actions-panel__col actions-panel__edit" data-key-action="href"><a href="http://<?=$webmail;?>.<?=$key?>/" target="_blank" title="<?= _("Open Webmail") ?>"><i class="fas fa-paper-plane icon-lightblue icon-dim"></i></a></div>
+			?>
+			<div class="l-unit <?php if ($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
+				data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
+				data-sort-name="<?=$key?>"
+				data-sort-disk="<?=$data[$key]['U_DISK']?>"
+				data-sort-accounts="<?=$data[$key]['ACCOUNTS']?>">
+				<div class="l-unit__col l-unit__col--right">
+					<div>
+						<div class="clearfix l-unit__stat-col--left super-compact">
+							<input id="check<?=$i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="domain[]" value="<?=$key?>" <?=$display_mode;?>>
+						</div>
+						<div class="clearfix l-unit__stat-col--left wide-3 truncate"><b><a href="?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Mail Accounts") ?>: <?=$key?>"><?=$key?></a></b></div>
+						<!-- START QUICK ACTION TOOLBAR AREA -->
+						<div class="clearfix l-unit__stat-col--left u-text-right compact-5">
+							<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+								<div class="actions-panel clearfix">
+									<?php if ($read_only === 'true') {?>
+										<!-- Restrict ability to edit, delete, or suspend domain items when impersonating 'admin' account -->
+										<div class="actions-panel__col actions-panel__edit shortcut-l" data-key-action="href"><a href="?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Mail Accounts") ?>"><i class="fas fa-users icon-blue icon-dim"></i></a></div>
+										<div class="actions-panel__col actions-panel__edit shortcut-l" data-key-action="href"><a href="?domain=<?=$key?>&dns=1&token=<?=$_SESSION['token']?>" title="<?= _("DNS Records") ?>"><i class="fas fa-book-atlas icon-blue icon-dim"></i></a></div>
+										<?php if ($data[$key]['SUSPENDED'] == 'no') {?>
+											<div class="actions-panel__col actions-panel__edit" data-key-action="href"><a href="http://<?=$webmail;?>.<?=$key?>/" target="_blank" title="<?= _("Open Webmail") ?>"><i class="fas fa-paper-plane icon-lightblue icon-dim"></i></a></div>
+										<?php } ?>
+									<?php } else { ?>
+										<?php if ($data[$key]['SUSPENDED'] == 'no') {?>
+											<div class="actions-panel__col actions-panel__logs shortcut-n" data-key-action="href"><a href="/add/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Add Mail Account") ?>"><i class="fas fa-circle-plus icon-green icon-dim"></i></a></div>
+											<?php if($_SESSION['WEBMAIL_SYSTEM']){?>
+												<?php if (!empty($data[$key]['WEBMAIL'])) {?>
+													<div class="actions-panel__col actions-panel__edit" data-key-action="href"><a href="http://<?=$webmail;?>.<?=$key?>/" target="_blank" title="<?= _("Open Webmail") ?>"><i class="fas fa-paper-plane icon-lightblue icon-dim"></i></a></div>
+												<?php } ?>
 											<?php } ?>
+											<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Mail Domain") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
 										<?php } ?>
-										<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Mail Domain") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
+										<div class="actions-panel__col actions-panel__edit shortcut-l" data-key-action="href"><a href="?domain=<?=$key?>&dns=1&token=<?=$_SESSION['token']?>" title="<?= _("DNS Records") ?>"><i class="fas fa-book-atlas icon-blue icon-dim"></i></a></div>
+										<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
+											<a
+												class="data-controls js-confirm-action"
+												href="/<?=$spnd_action?>/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>"
+												data-confirm-title="<?= $spnd_action_title ?>"
+												data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
+											>
+												<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
+											</a>
+										</div>
+										<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+											<a
+												class="data-controls js-confirm-action"
+												href="/delete/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>"
+												data-confirm-title="<?= _("Delete") ?>"
+												data-confirm-message="<?= sprintf(_('Are you sure you want to delete domain %s?'), $key) ?>"
+											>
+												<i class="fas fa-trash icon-red icon-dim"></i>
+											</a>
+										</div>
 									<?php } ?>
-									<div class="actions-panel__col actions-panel__edit shortcut-l" data-key-action="href"><a href="?domain=<?=$key?>&dns=1&token=<?=$_SESSION['token']?>" title="<?= _("DNS Records") ?>"><i class="fas fa-book-atlas icon-blue icon-dim"></i></a></div>
-									<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
-										<a
-											class="data-controls js-confirm-action"
-											href="/<?=$spnd_action?>/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>"
-											data-confirm-title="<?= $spnd_action_title ?>"
-											data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
-										>
-											<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
-										</a>
-									</div>
-									<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-										<a
-											class="data-controls js-confirm-action"
-											href="/delete/mail/?domain=<?=$key?>&token=<?=$_SESSION['token']?>"
-											data-confirm-title="<?= _("Delete") ?>"
-											data-confirm-message="<?= sprintf(_('Are you sure you want to delete domain %s?'), $key) ?>"
-										>
-											<i class="fas fa-trash icon-red icon-dim"></i>
-										</a>
-									</div>
-								<?php } ?>
+								</div>
 							</div>
 						</div>
-					</div>
-					<!-- END QUICK ACTION TOOLBAR AREA -->
-					<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b>
-							<?php
-								if ($data[$key]['ACCOUNTS']) {
-									$mail_accounts = htmlentities($data[$key]['ACCOUNTS']);
-								} else {
-									$mail_accounts = '0';
-								}
-							?>
-							<span><?=$mail_accounts;?></span>
-						</b>
-					</div>
-					<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b>
-							<?=humanize_usage_size($data[$key]['U_DISK'])?></b> <span class="u-text-small"><?=humanize_usage_measure($data[$key]['U_DISK'])?></span>
-					</div>
-					<div class="clearfix l-unit__stat-col--left u-text-center compact-3">
-						<i class="fas <?=$antivirus_icon;?>"></i>
-					</div>
-					<div class="clearfix l-unit__stat-col--left u-text-center compact-3">
-						<i class="fas <?=$antispam_icon;?>"></i>
-					</div>
-					<div class="clearfix l-unit__stat-col--left u-text-center compact-3">
-						<i class="fas <?=$dkim_icon;?>"></i>
-					</div>
-					<div class="clearfix l-unit__stat-col--left u-text-center compact-3">
-						<i class="fas <?=$ssl_icon;?>"></i>
+						<!-- END QUICK ACTION TOOLBAR AREA -->
+						<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b>
+								<?php
+									if ($data[$key]['ACCOUNTS']) {
+										$mail_accounts = htmlentities($data[$key]['ACCOUNTS']);
+									} else {
+										$mail_accounts = '0';
+									}
+								?>
+								<span><?=$mail_accounts;?></span>
+							</b>
+						</div>
+						<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b>
+								<?=humanize_usage_size($data[$key]['U_DISK'])?></b> <span class="u-text-small"><?=humanize_usage_measure($data[$key]['U_DISK'])?></span>
+						</div>
+						<div class="clearfix l-unit__stat-col--left u-text-center compact-3">
+							<i class="fas <?=$antivirus_icon;?>"></i>
+						</div>
+						<div class="clearfix l-unit__stat-col--left u-text-center compact-3">
+							<i class="fas <?=$antispam_icon;?>"></i>
+						</div>
+						<div class="clearfix l-unit__stat-col--left u-text-center compact-3">
+							<i class="fas <?=$dkim_icon;?>"></i>
+						</div>
+						<div class="clearfix l-unit__stat-col--left u-text-center compact-3">
+							<i class="fas <?=$ssl_icon;?>"></i>
+						</div>
 					</div>
 				</div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 129 - 127
web/templates/pages/list_mail_acc.php

@@ -73,148 +73,150 @@ if (!empty($_SESSION["WEBMAIL_ALIAS"])) {
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div>
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div>
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Name") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-right compact-4"><b>&nbsp;</b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= _("Disk") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Quota") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Aliases") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Forwarding") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Auto Reply") ?></b></div>
 				</div>
-				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Name") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-right compact-4"><b>&nbsp;</b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= _("Disk") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Quota") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Aliases") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Forwarding") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Auto Reply") ?></b></div>
 			</div>
 		</div>
-	</div>
 
-	<!-- Begin mail account list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
-			if ($data[$key]['SUSPENDED'] == 'yes') {
-				$status = 'suspended';
-				$spnd_action = 'unsuspend';
-				$spnd_action_title = _('Unsuspend');
-				$spnd_icon = 'fa-play';
-				$spnd_confirmation = _('Are you sure you want to unsuspend %s?');
-				if ($data[$key]['ALIAS'] == '') {
-					$alias_icon = 'fa-circle-minus';
-				} else {
-					$alias_icon = 'fa-circle-check';
-				}
-				if ($data[$key]['FWD'] == '') {
-					$fwd_icon = 'fa-circle-minus';
-				} else {
-					$fwd_icon = 'fa-circle-check';
-				}
-				if ($data[$key]['AUTOREPLY'] == 'no') {
-					$autoreply_icon = 'fa-circle-minus';
+		<!-- Begin mail account list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
+				if ($data[$key]['SUSPENDED'] == 'yes') {
+					$status = 'suspended';
+					$spnd_action = 'unsuspend';
+					$spnd_action_title = _('Unsuspend');
+					$spnd_icon = 'fa-play';
+					$spnd_confirmation = _('Are you sure you want to unsuspend %s?');
+					if ($data[$key]['ALIAS'] == '') {
+						$alias_icon = 'fa-circle-minus';
+					} else {
+						$alias_icon = 'fa-circle-check';
+					}
+					if ($data[$key]['FWD'] == '') {
+						$fwd_icon = 'fa-circle-minus';
+					} else {
+						$fwd_icon = 'fa-circle-check';
+					}
+					if ($data[$key]['AUTOREPLY'] == 'no') {
+						$autoreply_icon = 'fa-circle-minus';
+					} else {
+						$autoreply_icon = 'fa-circle-check';
+					}
 				} else {
-					$autoreply_icon = 'fa-circle-check';
+					$status = 'active';
+					$spnd_action = 'suspend';
+					$spnd_action_title = _('Suspend');
+					$spnd_icon = 'fa-pause';
+					$spnd_confirmation = _('Are you sure you want to suspend %s?');
+					if ($data[$key]['ALIAS'] == '') {
+						$alias_icon = 'fa-circle-minus';
+					} else {
+						$alias_icon = 'fa-circle-check icon-green';
+					}
+					if ($data[$key]['FWD'] == '') {
+						$fwd_icon = 'fa-circle-minus';
+					} else {
+						$fwd_icon = 'fa-circle-check icon-green';
+					}
+					if ($data[$key]['AUTOREPLY'] == 'no') {
+						$autoreply_icon = 'fa-circle-minus';
+					} else {
+						$autoreply_icon = 'fa-circle-check icon-green';
+					}
 				}
-			} else {
-				$status = 'active';
-				$spnd_action = 'suspend';
-				$spnd_action_title = _('Suspend');
-				$spnd_icon = 'fa-pause';
-				$spnd_confirmation = _('Are you sure you want to suspend %s?');
-				if ($data[$key]['ALIAS'] == '') {
-					$alias_icon = 'fa-circle-minus';
-				} else {
-					$alias_icon = 'fa-circle-check icon-green';
-				}
-				if ($data[$key]['FWD'] == '') {
-					$fwd_icon = 'fa-circle-minus';
-				} else {
-					$fwd_icon = 'fa-circle-check icon-green';
-				}
-				if ($data[$key]['AUTOREPLY'] == 'no') {
-					$autoreply_icon = 'fa-circle-minus';
-				} else {
-					$autoreply_icon = 'fa-circle-check icon-green';
-				}
-			}
-		?>
-		<div class="l-unit <?php if ($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
-			data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
-			data-sort-name="<?=$key?>"
-			data-sort-disk="<?=$data[$key]['U_DISK']?>"
-			data-sort-quota="<?=$data[$key]['QUOTA']?>">
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check<?=$i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="account[]" value="<?=$key?>" <?=$display_mode;?>>
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-3 truncate">
-					<?php if (($read_only === 'true') || ($data[$key]['SUSPENDED'] == 'yes')) { ?>
-						<b><?=$key."@".htmlentities($_GET['domain']);?></b>
-					<?php } else { ?>
-						<b><a href="/edit/mail/?domain=<?=htmlspecialchars($_GET['domain'])?>&account=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Mail Account") ?>: <?=$key?>@<?=htmlspecialchars($_GET['domain'])?>"><?=$key."@".htmlentities($_GET['domain']);?></a></b>
-					<?php } ?>
-				</div>
-				<!-- START QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left u-text-right compact-4">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<?php if ($read_only === 'true') { ?>
-								<!-- Restrict the ability to edit, delete, or suspend domain items when impersonating 'admin' account -->
-								<?php if ($data[$key]['SUSPENDED'] == 'yes') { ?>
-									&nbsp;
+			?>
+			<div class="l-unit <?php if ($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
+				data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
+				data-sort-name="<?=$key?>"
+				data-sort-disk="<?=$data[$key]['U_DISK']?>"
+				data-sort-quota="<?=$data[$key]['QUOTA']?>">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check<?=$i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="account[]" value="<?=$key?>" <?=$display_mode;?>>
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-3 truncate">
+						<?php if (($read_only === 'true') || ($data[$key]['SUSPENDED'] == 'yes')) { ?>
+							<b><?=$key."@".htmlentities($_GET['domain']);?></b>
+						<?php } else { ?>
+							<b><a href="/edit/mail/?domain=<?=htmlspecialchars($_GET['domain'])?>&account=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Mail Account") ?>: <?=$key?>@<?=htmlspecialchars($_GET['domain'])?>"><?=$key."@".htmlentities($_GET['domain']);?></a></b>
+						<?php } ?>
+					</div>
+					<!-- START QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left u-text-right compact-4">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<?php if ($read_only === 'true') { ?>
+									<!-- Restrict the ability to edit, delete, or suspend domain items when impersonating 'admin' account -->
+									<?php if ($data[$key]['SUSPENDED'] == 'yes') { ?>
+										&nbsp;
+									<?php } else { ?>
+										<div class="actions-panel__col actions-panel__edit" data-key-action="href"><a href="http://<?=$v_webmail_alias;?>.<?=htmlspecialchars($_GET['domain'])?>/?_user=<?=$key?>@<?=htmlspecialchars($_GET['domain'])?>" target="_blank" title="<?= _("Open Webmail") ?>"><i class="fas fa-envelope-open-text icon-maroon icon-dim"></i></a></div>
+									<?php } ?>
 								<?php } else { ?>
-									<div class="actions-panel__col actions-panel__edit" data-key-action="href"><a href="http://<?=$v_webmail_alias;?>.<?=htmlspecialchars($_GET['domain'])?>/?_user=<?=$key?>@<?=htmlspecialchars($_GET['domain'])?>" target="_blank" title="<?= _("Open Webmail") ?>"><i class="fas fa-envelope-open-text icon-maroon icon-dim"></i></a></div>
-								<?php } ?>
-							<?php } else { ?>
-								<?php if ($data[$key]['SUSPENDED'] == 'no') { ?>
-									<?php if($_SESSION['WEBMAIL_SYSTEM']){?>
-										<?php if (!empty($data[$key]['WEBMAIL'])) { ?>
-											<div class="actions-panel__col actions-panel__edit" data-key-action="href"><a href="http://<?=$v_webmail_alias;?>.<?=htmlspecialchars($_GET['domain'])?>/?_user=<?=$key?>@<?=htmlspecialchars($_GET['domain'])?>" target="_blank" title="<?= _("Open Webmail") ?>"><i class="fas fa-envelope-open-text icon-maroon icon-dim"></i></a></div>
+									<?php if ($data[$key]['SUSPENDED'] == 'no') { ?>
+										<?php if($_SESSION['WEBMAIL_SYSTEM']){?>
+											<?php if (!empty($data[$key]['WEBMAIL'])) { ?>
+												<div class="actions-panel__col actions-panel__edit" data-key-action="href"><a href="http://<?=$v_webmail_alias;?>.<?=htmlspecialchars($_GET['domain'])?>/?_user=<?=$key?>@<?=htmlspecialchars($_GET['domain'])?>" target="_blank" title="<?= _("Open Webmail") ?>"><i class="fas fa-envelope-open-text icon-maroon icon-dim"></i></a></div>
+											<?php } ?>
 										<?php } ?>
+									<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/mail/?domain=<?=htmlspecialchars($_GET['domain'])?>&account=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Mail Account") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
 									<?php } ?>
-								<div class="actions-panel__col actions-panel__logs shortcut-enter" data-key-action="href"><a href="/edit/mail/?domain=<?=htmlspecialchars($_GET['domain'])?>&account=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Mail Account") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
+									<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
+										<a
+											class="data-controls js-confirm-action"
+											href="/<?=$spnd_action?>/mail/?domain=<?=htmlspecialchars($_GET['domain'])?>&account=<?=$key?>&token=<?=$_SESSION['token']?>"
+											data-confirm-title="<?= $spnd_action_title ?>"
+											data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
+										>
+											<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
+										</a>
+									</div>
+									<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+										<a
+											class="data-controls js-confirm-action"
+											href="/delete/mail/?domain=<?=htmlspecialchars($_GET['domain'])?>&account=<?=$key?>&token=<?=$_SESSION['token']?>"
+											data-confirm-title="<?= _("Delete") ?>"
+											data-confirm-message="<?= sprintf(_('Are you sure you want to delete %s?'), $key) ?>"
+										>
+											<i class="fas fa-trash icon-red icon-dim"></i>
+										</a>
+									</div>
 								<?php } ?>
-								<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
-									<a
-										class="data-controls js-confirm-action"
-										href="/<?=$spnd_action?>/mail/?domain=<?=htmlspecialchars($_GET['domain'])?>&account=<?=$key?>&token=<?=$_SESSION['token']?>"
-										data-confirm-title="<?= $spnd_action_title ?>"
-										data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
-									>
-										<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
-									</a>
-								</div>
-								<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-									<a
-										class="data-controls js-confirm-action"
-										href="/delete/mail/?domain=<?=htmlspecialchars($_GET['domain'])?>&account=<?=$key?>&token=<?=$_SESSION['token']?>"
-										data-confirm-title="<?= _("Delete") ?>"
-										data-confirm-message="<?= sprintf(_('Are you sure you want to delete %s?'), $key) ?>"
-									>
-										<i class="fas fa-trash icon-red icon-dim"></i>
-									</a>
-								</div>
-							<?php } ?>
+							</div>
 						</div>
+						<!-- END QUICK ACTION TOOLBAR AREA -->
 					</div>
-					<!-- END QUICK ACTION TOOLBAR AREA -->
-				</div>
 
-				<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= humanize_usage_size($data[$key]["U_DISK"]) ?></b> <span class="u-text-small"><?= humanize_usage_measure($data[$key]["U_DISK"]) ?></span></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?=humanize_usage_size($data[$key]["QUOTA"]) ?></b> <span class="u-text-small"><?= humanize_usage_measure($data[$key]["QUOTA"]) ?></span></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center">
-					<i class="fas <?= $alias_icon ?>"></i>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center">
-					<i class="fas <?= $fwd_icon ?>"></i>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center">
-					<i class="fas <?= $autoreply_icon ?>"></i>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= humanize_usage_size($data[$key]["U_DISK"]) ?></b> <span class="u-text-small"><?= humanize_usage_measure($data[$key]["U_DISK"]) ?></span></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?=humanize_usage_size($data[$key]["QUOTA"]) ?></b> <span class="u-text-small"><?= humanize_usage_measure($data[$key]["QUOTA"]) ?></span></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center">
+						<i class="fas <?= $alias_icon ?>"></i>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center">
+						<i class="fas <?= $fwd_icon ?>"></i>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center">
+						<i class="fas <?= $autoreply_icon ?>"></i>
+					</div>
 				</div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 68 - 66
web/templates/pages/list_mail_dns.php

@@ -15,37 +15,24 @@ if (!empty($_SESSION["WEBMAIL_ALIAS"])) {
 	</div>
 </div>
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div>
-				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Record") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Type") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Priority") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("TTL") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("IP or Value") ?></b></div>
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div>
+					<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Record") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Type") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Priority") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("TTL") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("IP or Value") ?></b></div>
+				</div>
 			</div>
 		</div>
-	</div>
 
-	<div class="l-unit animate__animated animate__fadeIn">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left wide-3">
-				<input type="text" class="form-control" style="width:260px;" value="mail.<?= htmlspecialchars($_GET["domain"]) ?>">
-			</div>
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>A</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>14400</b></div>
-			<div class="clearfix l-unit__stat-col--left wide-3">
-				<input type="text" class="form-control" style="width:400px;" value="<?= empty($ips[array_key_first($ips)]["NAT"]) ? array_key_first($ips) : $ips[array_key_first($ips)]["NAT"] ?>">
-			</div>
-		</div>
-	</div>
-	<?php if ($_SESSION["WEBMAIL_SYSTEM"]) { ?>
 		<div class="l-unit animate__animated animate__fadeIn">
 			<div class="l-unit__col l-unit__col--right">
 				<div class="clearfix l-unit__stat-col--left wide-3">
-					<input type="text" class="form-control" style="width:260px;" value="<?= $v_webmail_alias ?>.<?= htmlspecialchars($_GET["domain"]) ?>">
+					<input type="text" class="form-control" style="width:260px;" value="mail.<?= htmlspecialchars($_GET["domain"]) ?>">
 				</div>
 				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>A</b></div>
 				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>&nbsp;</b></div>
@@ -55,62 +42,77 @@ if (!empty($_SESSION["WEBMAIL_ALIAS"])) {
 				</div>
 			</div>
 		</div>
-	<?php } ?>
-	<div class="l-unit animate__animated animate__fadeIn">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left wide-3">
-				<input type="text" class="form-control" style="width:260px;" value="<?= htmlspecialchars($_GET["domain"]) ?>">
-			</div>
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>MX</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>10</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>14400</b></div>
-			<div class="clearfix l-unit__stat-col--left wide-3">
-				<input type="text" class="form-control" style="width:400px;" value="mail.<?= htmlspecialchars($_GET["domain"]) ?>.">
-			</div>
-		</div>
-	</div>
-	<div class="l-unit animate__animated animate__fadeIn">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left wide-3">
-				<input type="text" class="form-control" style="width:260px;" value="<?= htmlspecialchars($_GET["domain"]) ?>">
+		<?php if ($_SESSION["WEBMAIL_SYSTEM"]) { ?>
+			<div class="l-unit animate__animated animate__fadeIn">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left wide-3">
+						<input type="text" class="form-control" style="width:260px;" value="<?= $v_webmail_alias ?>.<?= htmlspecialchars($_GET["domain"]) ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>A</b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>&nbsp;</b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>14400</b></div>
+					<div class="clearfix l-unit__stat-col--left wide-3">
+						<input type="text" class="form-control" style="width:400px;" value="<?= empty($ips[array_key_first($ips)]["NAT"]) ? array_key_first($ips) : $ips[array_key_first($ips)]["NAT"] ?>">
+					</div>
+				</div>
 			</div>
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>TXT</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>14400</b></div>
-			<?php $ip = empty($ips[array_key_first($ips)]["NAT"]) ? array_key_first($ips) : $ips[array_key_first($ips)]["NAT"]; ?>
-			<div class="clearfix l-unit__stat-col--left wide-3">
-				<input type="text" class="form-control" style="width:400px;" value="<?= htmlspecialchars("v=spf1 a mx ip4:" . $ip . " -all") ?>">
+		<?php } ?>
+		<div class="l-unit animate__animated animate__fadeIn">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left wide-3">
+					<input type="text" class="form-control" style="width:260px;" value="<?= htmlspecialchars($_GET["domain"]) ?>">
+				</div>
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>MX</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>10</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>14400</b></div>
+				<div class="clearfix l-unit__stat-col--left wide-3">
+					<input type="text" class="form-control" style="width:400px;" value="mail.<?= htmlspecialchars($_GET["domain"]) ?>.">
+				</div>
 			</div>
 		</div>
-	</div>
-	<div class="l-unit animate__animated animate__fadeIn">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left wide-3">
-				<input type="text" class="form-control" style="width:260px;" value="_dmarc">
-			</div>
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>TXT</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>14400</b></div>
-			<div class="clearfix l-unit__stat-col--left wide-3">
-				<input type="text" class="form-control" style="width:400px;" value="<?= htmlspecialchars("v=DMARC1; p=quarantine; pct=100") ?>">
+		<div class="l-unit animate__animated animate__fadeIn">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left wide-3">
+					<input type="text" class="form-control" style="width:260px;" value="<?= htmlspecialchars($_GET["domain"]) ?>">
+				</div>
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>TXT</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>14400</b></div>
+				<?php $ip = empty($ips[array_key_first($ips)]["NAT"]) ? array_key_first($ips) : $ips[array_key_first($ips)]["NAT"]; ?>
+				<div class="clearfix l-unit__stat-col--left wide-3">
+					<input type="text" class="form-control" style="width:400px;" value="<?= htmlspecialchars("v=spf1 a mx ip4:" . $ip . " -all") ?>">
+				</div>
 			</div>
 		</div>
-	</div>
-	<?php foreach ($dkim as $key => $value) { ?>
 		<div class="l-unit animate__animated animate__fadeIn">
 			<div class="l-unit__col l-unit__col--right">
 				<div class="clearfix l-unit__stat-col--left wide-3">
-					<input type="text" class="form-control" style="width:260px;" value="<?= htmlspecialchars($key) ?>">
+					<input type="text" class="form-control" style="width:260px;" value="_dmarc">
 				</div>
 				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>TXT</b></div>
 				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>&nbsp;</b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>3600</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>14400</b></div>
 				<div class="clearfix l-unit__stat-col--left wide-3">
-					<input type="text" class="form-control" style="width:400px;" value="<?= htmlspecialchars(str_replace(['"', "'"], "", $dkim[$key]["TXT"])) ?>">
+					<input type="text" class="form-control" style="width:400px;" value="<?= htmlspecialchars("v=DMARC1; p=quarantine; pct=100") ?>">
 				</div>
 			</div>
 		</div>
-	<?php } ?>
+		<?php foreach ($dkim as $key => $value) { ?>
+			<div class="l-unit animate__animated animate__fadeIn">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left wide-3">
+						<input type="text" class="form-control" style="width:260px;" value="<?= htmlspecialchars($key) ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>TXT</b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>&nbsp;</b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b>3600</b></div>
+					<div class="clearfix l-unit__stat-col--left wide-3">
+						<input type="text" class="form-control" style="width:400px;" value="<?= htmlspecialchars(str_replace(['"', "'"], "", $dkim[$key]["TXT"])) ?>">
+					</div>
+				</div>
+			</div>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 173 - 171
web/templates/pages/list_packages.php

@@ -42,187 +42,189 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact">
-				<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
-			</div>
-			<div class="clearfix l-unit__stat-col--left wide"><b><?= _("Package") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-3 u-text-right"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><i class="fas fa-terminal" title="<?= _("Shell") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b><i class="fas fa-hard-drive" title="<?= _("Quota") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b><i class="fas fa-right-left" title="<?= _("Bandwidth") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-earth-americas" title="<?= _("Web Domains") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-link" title="<?= _("Web Aliases") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-book-atlas" title="<?= _("DNS Zones") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-globe" title="<?= _("DNS Records") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-envelopes-bulk" title="<?= _("Mail Domains") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-inbox" title="<?= _("Mail Accounts") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-database" title="<?= _("Databases") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-clock" title="<?= _("Cron Jobs") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-file-zipper" title="<?= _("Backups") ?>"></i></b></div>
-		</div>
-	</div>
-
-	<!-- Begin package list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
-		?>
-		<div class="l-unit animate__animated animate__fadeIn js-unit"
-			data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
-			data-sort-name="<?=$key?>"
-			data-sort-bandwidth="<?=$data[$key]['BANDWIDTH']?>"
-			data-sort-disk="<?=$data[$key]['DISK_QUOTA']?>">
+<div class="container">
+	<div class="units">
+		<div class="units-header">
 			<div class="l-unit__col l-unit__col--right">
 				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check<?=$i?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="package[]" value="<?=$key?>">
+					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
 				</div>
-				<?php if ($key == 'system'){ ?>
-					<div class="clearfix l-unit__stat-col--left wide truncate"><b><?=$key?></b></div>
-				<?php } else { ?>
-					<div class="clearfix l-unit__stat-col--left wide truncate">
-						<b><a href="/edit/package/?package=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Package") ?>: <?=$key?>"><?=$key?></a></b>
-					</div>
-				<?php } ?>
-				<!-- START QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left u-text-right compact-3">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<?php if (($key == 'system')) { ?>
-								<!-- Restrict editing system package -->
-							<?php } else {?>
-								<div class="actions-panel__col actions-panel__edit shortcut-enter" data-key-action="href"><a href="/edit/package/?package=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Package") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
-							<?php } ?>
-							<div class="actions-panel__col actions-panel__edit" data-key-action="href"><a href="/copy/package/?package=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Duplicate") ?>"><i class="fas fa-clone icon-teal icon-dim"></i></a></div>
-							<?php if ($key == 'system') { ?>
-								<!-- Restrict deleting system package -->
-							<?php } else {?>
-								<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-									<a
-										class="data-controls js-confirm-action"
-										href="/delete/package/?package=<?=$key?>&token=<?=$_SESSION['token']?>"
-										data-confirm-title="<?= _("Delete") ?>"
-										data-confirm-message="<?= sprintf(_('Are you sure you want to delete package %s?'), $key) ?>"
-									>
-										<i class="fas fa-trash icon-red icon-dim"></i>
-									</a>
-								</div>
-							<?php } ?>
-						</div>
+				<div class="clearfix l-unit__stat-col--left wide"><b><?= _("Package") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-3 u-text-right"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><i class="fas fa-terminal" title="<?= _("Shell") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b><i class="fas fa-hard-drive" title="<?= _("Quota") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b><i class="fas fa-right-left" title="<?= _("Bandwidth") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-earth-americas" title="<?= _("Web Domains") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-link" title="<?= _("Web Aliases") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-book-atlas" title="<?= _("DNS Zones") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-globe" title="<?= _("DNS Records") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-envelopes-bulk" title="<?= _("Mail Domains") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-inbox" title="<?= _("Mail Accounts") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-database" title="<?= _("Databases") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-clock" title="<?= _("Cron Jobs") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-file-zipper" title="<?= _("Backups") ?>"></i></b></div>
+			</div>
+		</div>
+
+		<!-- Begin package list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
+			?>
+			<div class="l-unit animate__animated animate__fadeIn js-unit"
+				data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
+				data-sort-name="<?=$key?>"
+				data-sort-bandwidth="<?=$data[$key]['BANDWIDTH']?>"
+				data-sort-disk="<?=$data[$key]['DISK_QUOTA']?>">
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check<?=$i?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="package[]" value="<?=$key?>">
 					</div>
-				</div>
-				<!-- END QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left u-text-center compact">
-					<?php if ($data[$key]["SHELL"] == "nologin") { ?>
-						<i class="fas fa-circle-minus icon-large" title="<?= _("SSH Access") ?>: <?= $data[$key]["SHELL"] ?>"> </i>
+					<?php if ($key == 'system'){ ?>
+						<div class="clearfix l-unit__stat-col--left wide truncate"><b><?=$key?></b></div>
 					<?php } else { ?>
-						<i class="fas fa-circle-check icon-green icon-large"></i>
+						<div class="clearfix l-unit__stat-col--left wide truncate">
+							<b><a href="/edit/package/?package=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Package") ?>: <?=$key?>"><?=$key?></a></b>
+						</div>
 					<?php } ?>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-2">
-					<span title="<?= _("Quota") ?>: <?= humanize_usage_size($data[$key]["DISK_QUOTA"]) ?> <?= humanize_usage_measure($data[$key]["DISK_QUOTA"]) ?>">
-						<?php if (preg_match("/[a-z]/i", $data[$key]["DISK_QUOTA"])): ?>
-							<b>&infin;</b>
-						<?php else: ?>
-							<b><?= humanize_usage_size($data[$key]["DISK_QUOTA"]) ?></b> <span class="u-text-small"><?= humanize_usage_measure($data[$key]["DISK_QUOTA"]) ?></span>
-						<?php endif; ?>
-					</span>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-2">
-					<span title="<?= _("Bandwidth") ?>: <?= humanize_usage_size($data[$key]["BANDWIDTH"]) ?> <?= humanize_usage_measure($data[$key]["BANDWIDTH"]) ?>">
-						<?php if ($data[$key]["BANDWIDTH"] == "unlimited") { ?>
-							<b>&infin;</b>
-						<?php } else { ?>
-							<b><?= humanize_usage_size($data[$key]["BANDWIDTH"]) ?></b> <span class="u-text-small"><?= humanize_usage_measure($data[$key]["BANDWIDTH"]) ?></span>
-						<?php } ?>
-					</span>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
-					<span class="badge" title="<?= _("Web Domains") ?>: <?= $data[$key]["WEB_DOMAINS"] ?>">
-						<?php if ($data[$key]["WEB_DOMAINS"] == "unlimited") { ?>
-							<b>&infin;</b>
-						<?php } else { ?>
-							<b><?= $data[$key]["WEB_DOMAINS"] ?></b>
-						<?php } ?>
-					</span>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
-					<span class="badge" title="<?= _("Web Aliases") ?>: <?= $data[$key]["WEB_ALIASES"] ?>">
-						<?php if ($data[$key]["WEB_ALIASES"] == "unlimited") { ?>
-							<b>&infin;</b>
-						<?php } else { ?>
-							<b><?= $data[$key]["WEB_ALIASES"] ?></b>
-						<?php } ?>
-					</span>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
-					<span class="badge" title="<?= _("DNS Zones") ?>: <?= $data[$key]["DNS_DOMAINS"] ?>">
-						<?php if ($data[$key]["DNS_DOMAINS"] == "unlimited") { ?>
-							<b>&infin;</b>
-						<?php } else { ?>
-							<b><?= $data[$key]["DNS_DOMAINS"] ?></b>
-						<?php } ?>
-					</span>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
-					<span class="badge" title="<?= _("DNS Records") ?>: <?= $data[$key]["DNS_RECORDS"] ?>">
-						<?php if ($data[$key]["DNS_RECORDS"] == "unlimited") { ?>
-							<b>&infin;</b>
-						<?php } else { ?>
-							<b><?= $data[$key]["DNS_RECORDS"] ?></b>
-						<?php } ?>
-					</span>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
-					<span class="badge" title="<?= _("Mail Domains") ?>: <?= $data[$key]["MAIL_DOMAINS"] ?>">
-						<?php if ($data[$key]["MAIL_DOMAINS"] == "unlimited") { ?>
-							<b>&infin;</b>
-						<?php } else { ?>
-							<b><?= $data[$key]["MAIL_DOMAINS"] ?></b>
-						<?php } ?>
-					</span>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
-					<span class="badge" title="<?= _("Mail Accounts") ?>: <?= $data[$key]["MAIL_ACCOUNTS"] ?>">
-						<?php if ($data[$key]["MAIL_ACCOUNTS"] == "unlimited") { ?>
-							<b>&infin;</b>
-						<?php } else { ?>
-							<b><?= $data[$key]["MAIL_ACCOUNTS"] ?></b>
-						<?php } ?>
-					</span>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
-					<span class="badge" title="<?= _("Databases") ?>: <?= $data[$key]["DATABASES"] ?>">
-						<?php if ($data[$key]["DATABASES"] == "unlimited") { ?>
-							<b>&infin;</b>
-						<?php } else { ?>
-							<b><?= $data[$key]["DATABASES"] ?></b>
-						<?php } ?>
-					</span>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
-					<span class="badge" title="<?= _("Cron Jobs") ?>: <?= $data[$key]["CRON_JOBS"] ?>">
-						<?php if ($data[$key]["CRON_JOBS"] == "unlimited") { ?>
-							<b>&infin;</b>
-						<?php } else { ?>
-							<b><?= $data[$key]["CRON_JOBS"] ?></b>
-						<?php } ?>
-					</span>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
-					<span class="badge" title="<?= _("Backups") ?>: <?= $data[$key]["BACKUPS"] ?>">
-						<?php if ($data[$key]["BACKUPS"] == "unlimited") { ?>
-							<b>&infin;</b>
+					<!-- START QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left u-text-right compact-3">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								<?php if (($key == 'system')) { ?>
+									<!-- Restrict editing system package -->
+								<?php } else {?>
+									<div class="actions-panel__col actions-panel__edit shortcut-enter" data-key-action="href"><a href="/edit/package/?package=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit Package") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
+								<?php } ?>
+								<div class="actions-panel__col actions-panel__edit" data-key-action="href"><a href="/copy/package/?package=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Duplicate") ?>"><i class="fas fa-clone icon-teal icon-dim"></i></a></div>
+								<?php if ($key == 'system') { ?>
+									<!-- Restrict deleting system package -->
+								<?php } else {?>
+									<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+										<a
+											class="data-controls js-confirm-action"
+											href="/delete/package/?package=<?=$key?>&token=<?=$_SESSION['token']?>"
+											data-confirm-title="<?= _("Delete") ?>"
+											data-confirm-message="<?= sprintf(_('Are you sure you want to delete package %s?'), $key) ?>"
+										>
+											<i class="fas fa-trash icon-red icon-dim"></i>
+										</a>
+									</div>
+								<?php } ?>
+							</div>
+						</div>
+					</div>
+					<!-- END QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left u-text-center compact">
+						<?php if ($data[$key]["SHELL"] == "nologin") { ?>
+							<i class="fas fa-circle-minus icon-large" title="<?= _("SSH Access") ?>: <?= $data[$key]["SHELL"] ?>"> </i>
 						<?php } else { ?>
-							<b><?= $data[$key]["BACKUPS"] ?></b>
+							<i class="fas fa-circle-check icon-green icon-large"></i>
 						<?php } ?>
-					</span>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-2">
+						<span title="<?= _("Quota") ?>: <?= humanize_usage_size($data[$key]["DISK_QUOTA"]) ?> <?= humanize_usage_measure($data[$key]["DISK_QUOTA"]) ?>">
+							<?php if (preg_match("/[a-z]/i", $data[$key]["DISK_QUOTA"])): ?>
+								<b>&infin;</b>
+							<?php else: ?>
+								<b><?= humanize_usage_size($data[$key]["DISK_QUOTA"]) ?></b> <span class="u-text-small"><?= humanize_usage_measure($data[$key]["DISK_QUOTA"]) ?></span>
+							<?php endif; ?>
+						</span>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-2">
+						<span title="<?= _("Bandwidth") ?>: <?= humanize_usage_size($data[$key]["BANDWIDTH"]) ?> <?= humanize_usage_measure($data[$key]["BANDWIDTH"]) ?>">
+							<?php if ($data[$key]["BANDWIDTH"] == "unlimited") { ?>
+								<b>&infin;</b>
+							<?php } else { ?>
+								<b><?= humanize_usage_size($data[$key]["BANDWIDTH"]) ?></b> <span class="u-text-small"><?= humanize_usage_measure($data[$key]["BANDWIDTH"]) ?></span>
+							<?php } ?>
+						</span>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
+						<span class="badge" title="<?= _("Web Domains") ?>: <?= $data[$key]["WEB_DOMAINS"] ?>">
+							<?php if ($data[$key]["WEB_DOMAINS"] == "unlimited") { ?>
+								<b>&infin;</b>
+							<?php } else { ?>
+								<b><?= $data[$key]["WEB_DOMAINS"] ?></b>
+							<?php } ?>
+						</span>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
+						<span class="badge" title="<?= _("Web Aliases") ?>: <?= $data[$key]["WEB_ALIASES"] ?>">
+							<?php if ($data[$key]["WEB_ALIASES"] == "unlimited") { ?>
+								<b>&infin;</b>
+							<?php } else { ?>
+								<b><?= $data[$key]["WEB_ALIASES"] ?></b>
+							<?php } ?>
+						</span>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
+						<span class="badge" title="<?= _("DNS Zones") ?>: <?= $data[$key]["DNS_DOMAINS"] ?>">
+							<?php if ($data[$key]["DNS_DOMAINS"] == "unlimited") { ?>
+								<b>&infin;</b>
+							<?php } else { ?>
+								<b><?= $data[$key]["DNS_DOMAINS"] ?></b>
+							<?php } ?>
+						</span>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
+						<span class="badge" title="<?= _("DNS Records") ?>: <?= $data[$key]["DNS_RECORDS"] ?>">
+							<?php if ($data[$key]["DNS_RECORDS"] == "unlimited") { ?>
+								<b>&infin;</b>
+							<?php } else { ?>
+								<b><?= $data[$key]["DNS_RECORDS"] ?></b>
+							<?php } ?>
+						</span>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
+						<span class="badge" title="<?= _("Mail Domains") ?>: <?= $data[$key]["MAIL_DOMAINS"] ?>">
+							<?php if ($data[$key]["MAIL_DOMAINS"] == "unlimited") { ?>
+								<b>&infin;</b>
+							<?php } else { ?>
+								<b><?= $data[$key]["MAIL_DOMAINS"] ?></b>
+							<?php } ?>
+						</span>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
+						<span class="badge" title="<?= _("Mail Accounts") ?>: <?= $data[$key]["MAIL_ACCOUNTS"] ?>">
+							<?php if ($data[$key]["MAIL_ACCOUNTS"] == "unlimited") { ?>
+								<b>&infin;</b>
+							<?php } else { ?>
+								<b><?= $data[$key]["MAIL_ACCOUNTS"] ?></b>
+							<?php } ?>
+						</span>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
+						<span class="badge" title="<?= _("Databases") ?>: <?= $data[$key]["DATABASES"] ?>">
+							<?php if ($data[$key]["DATABASES"] == "unlimited") { ?>
+								<b>&infin;</b>
+							<?php } else { ?>
+								<b><?= $data[$key]["DATABASES"] ?></b>
+							<?php } ?>
+						</span>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
+						<span class="badge" title="<?= _("Cron Jobs") ?>: <?= $data[$key]["CRON_JOBS"] ?>">
+							<?php if ($data[$key]["CRON_JOBS"] == "unlimited") { ?>
+								<b>&infin;</b>
+							<?php } else { ?>
+								<b><?= $data[$key]["CRON_JOBS"] ?></b>
+							<?php } ?>
+						</span>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact">
+						<span class="badge" title="<?= _("Backups") ?>: <?= $data[$key]["BACKUPS"] ?>">
+							<?php if ($data[$key]["BACKUPS"] == "unlimited") { ?>
+								<b>&infin;</b>
+							<?php } else { ?>
+								<b><?= $data[$key]["BACKUPS"] ?></b>
+							<?php } ?>
+						</span>
+					</div>
 				</div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 126 - 124
web/templates/pages/list_search.php

@@ -37,144 +37,146 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact">
-				&nbsp;
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left super-compact">
+					&nbsp;
+				</div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b><?= _("Status") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-5"><b><?= _("Search Results") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-3"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Date") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Owner") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Type") ?></b></div>
 			</div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-2"><b><?= _("Status") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide-5"><b><?= _("Search Results") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-3"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Date") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Owner") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Type") ?></b></div>
 		</div>
-	</div>
 
-	<!-- Begin search result item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
+		<!-- Begin search result item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
 
-			if ($value['SUSPENDED'] == 'yes') {
-				$status = 'suspended';
-				$spnd_action = 'unsuspend';
-			} else {
-				$status = 'active';
-				$spnd_action = 'suspend';
-			}
+				if ($value['SUSPENDED'] == 'yes') {
+					$status = 'suspended';
+					$spnd_action = 'unsuspend';
+				} else {
+					$status = 'active';
+					$spnd_action = 'suspend';
+				}
 
-			if ($value['TYPE'] == 'db') {
-				$object = 'database';
-			} else {
-				$object = strtolower($value['TYPE'] . ' ' . $value['KEY']);
-			}
+				if ($value['TYPE'] == 'db') {
+					$object = 'database';
+				} else {
+					$object = strtolower($value['TYPE'] . ' ' . $value['KEY']);
+				}
 
-			$uniq_id = $value['TYPE'] . '-';
-			if ($value['KEY'] == 'ACCOUNT'){
-				$uniq_id .= 'acc-';
-			}
-			$uniq_id .= sha1($value['RESULT']);
-		?>
-		<div class="l-unit <?php if($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
-			data-uniq-id="<?=$uniq_id?>"
-			data-sort-date="<?=strtotime($value['DATE'].' '.$value['TIME'])?>"
-			data-sort-name="<?=$value['RESULT']?>"
-			data-sort-type="<?=_($object)?>"
-			data-sort-owner="<?=$value['USER']?>"
-			data-sort-status="<?=$status?>"
-			style="<?php if (($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] === 'yes') && ($value['USER']) === 'admin') { echo 'display: none;';}?>">
+				$uniq_id = $value['TYPE'] . '-';
+				if ($value['KEY'] == 'ACCOUNT'){
+					$uniq_id .= 'acc-';
+				}
+				$uniq_id .= sha1($value['RESULT']);
+			?>
+			<div class="l-unit <?php if($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
+				data-uniq-id="<?=$uniq_id?>"
+				data-sort-date="<?=strtotime($value['DATE'].' '.$value['TIME'])?>"
+				data-sort-name="<?=$value['RESULT']?>"
+				data-sort-type="<?=_($object)?>"
+				data-sort-owner="<?=$value['USER']?>"
+				data-sort-status="<?=$status?>"
+				style="<?php if (($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] === 'yes') && ($value['USER']) === 'admin') { echo 'display: none;';}?>">
 
-			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left super-compact u-text-center">
-					<?php
-						if ($object === 'web domain') {
-								$icon = 'fa-earth-americas';
-						}
-						if ($object === 'mail domain') {
-								$icon = 'fa-envelopes-bulk';
-						}
-						if ($object === 'dns domain') {
-								$icon = 'fa-book-atlas';
-						}
-						if ($object === 'dns record') {
-								$icon = 'fa-book-atlas';
-						}
-						if ($object === 'database') {
-								$icon = 'fa-database';
-						}
-						if ($object === 'cron job') {
-								$icon = 'fa-clock';
-						}
-					?>
-					<i class="fa <?=$icon;?> icon-dim"></i>
-				</div>
-				<div class="clearfix l-unit__stat-col--left compact-2 u-text-center">
-					<b>
-						<?php if ($status === "active") { ?>
-							<i class="fas fa-circle-check icon-green"></i>
-						<?php } ?>
-						<?php if ($status === "suspended") { ?>
-							<i class="fas fa-triangle-exclamation icon-orange"></i>
-						<?php } ?>
-					</b>
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-5 truncate">
-					<?php
-						if ($value['KEY'] == 'RECORD') {
-							$edit_lnk = '/edit/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&record_id='.$value['LINK'].'&user='.$value['USER'];
-						}
-						if ($value['KEY'] == 'ACCOUNT') {
-							$edit_lnk = '/edit/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&account='.$value['LINK'].'&user='.$value['USER'];
-						}
-						if ($value['KEY'] == 'JOB') {
-							$edit_lnk = '/edit/'.$value['TYPE'].'/?job='.$value['LINK'].'&user='.$value['USER'];
-						}
-						if ($value['KEY'] == 'DATABASE') {
-							$edit_lnk = '/edit/'.$value['TYPE'].'/?database='.$value['RESULT'].'&user='.$value['USER'];
-						}
-						if (($value['KEY'] != 'RECORD') && ($value['KEY'] != 'ACCOUNT') && ($value['KEY'] != 'JOB') && ($value['KEY'] != 'DATABASE') ) {
-							$edit_lnk = '/edit/'.$value['TYPE'].'/?'.strtolower($value['KEY']).'='.$value['RESULT'].'&user='.$value['USER'];
-						}
-					?>
-					<b>
+				<div class="l-unit__col l-unit__col--right">
+					<div class="clearfix l-unit__stat-col--left super-compact u-text-center">
 						<?php
-							if (($_SESSION['userContext'] === 'admin') && ($_SESSION['user'] !== 'admin') && ($value['USER'] === 'admin') && ($_SESSION['POLICY_SYSTEM_PROTECTED_ADMIN'] === 'yes')) {
-								echo $value['RESULT'];
-							} else {
-								if ($value['USER'] == $_SESSION['user']) {
-									$href = $edit_lnk.'&token='.$_SESSION['token'];
-								} else {
-									$href = '/login/?loginas='.$value['USER'].'&token='.$_SESSION['token'].'&edit_link='.urlencode($edit_lnk);
-								}
-								echo '<a href="' . $href . '">' . $value['RESULT'] . '</a>';
+							if ($object === 'web domain') {
+									$icon = 'fa-earth-americas';
+							}
+							if ($object === 'mail domain') {
+									$icon = 'fa-envelopes-bulk';
+							}
+							if ($object === 'dns domain') {
+									$icon = 'fa-book-atlas';
+							}
+							if ($object === 'dns record') {
+									$icon = 'fa-book-atlas';
+							}
+							if ($object === 'database') {
+									$icon = 'fa-database';
+							}
+							if ($object === 'cron job') {
+									$icon = 'fa-clock';
 							}
 						?>
-					</b>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-right compact-3">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							&nbsp;
+						<i class="fa <?=$icon;?> icon-dim"></i>
+					</div>
+					<div class="clearfix l-unit__stat-col--left compact-2 u-text-center">
+						<b>
+							<?php if ($status === "active") { ?>
+								<i class="fas fa-circle-check icon-green"></i>
+							<?php } ?>
+							<?php if ($status === "suspended") { ?>
+								<i class="fas fa-triangle-exclamation icon-orange"></i>
+							<?php } ?>
+						</b>
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-5 truncate">
+						<?php
+							if ($value['KEY'] == 'RECORD') {
+								$edit_lnk = '/edit/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&record_id='.$value['LINK'].'&user='.$value['USER'];
+							}
+							if ($value['KEY'] == 'ACCOUNT') {
+								$edit_lnk = '/edit/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&account='.$value['LINK'].'&user='.$value['USER'];
+							}
+							if ($value['KEY'] == 'JOB') {
+								$edit_lnk = '/edit/'.$value['TYPE'].'/?job='.$value['LINK'].'&user='.$value['USER'];
+							}
+							if ($value['KEY'] == 'DATABASE') {
+								$edit_lnk = '/edit/'.$value['TYPE'].'/?database='.$value['RESULT'].'&user='.$value['USER'];
+							}
+							if (($value['KEY'] != 'RECORD') && ($value['KEY'] != 'ACCOUNT') && ($value['KEY'] != 'JOB') && ($value['KEY'] != 'DATABASE') ) {
+								$edit_lnk = '/edit/'.$value['TYPE'].'/?'.strtolower($value['KEY']).'='.$value['RESULT'].'&user='.$value['USER'];
+							}
+						?>
+						<b>
+							<?php
+								if (($_SESSION['userContext'] === 'admin') && ($_SESSION['user'] !== 'admin') && ($value['USER'] === 'admin') && ($_SESSION['POLICY_SYSTEM_PROTECTED_ADMIN'] === 'yes')) {
+									echo $value['RESULT'];
+								} else {
+									if ($value['USER'] == $_SESSION['user']) {
+										$href = $edit_lnk.'&token='.$_SESSION['token'];
+									} else {
+										$href = '/login/?loginas='.$value['USER'].'&token='.$_SESSION['token'].'&edit_link='.urlencode($edit_lnk);
+									}
+									echo '<a href="' . $href . '">' . $value['RESULT'] . '</a>';
+								}
+							?>
+						</b>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-right compact-3">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
+								&nbsp;
+							</div>
 						</div>
 					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><?= translate_date($value["DATE"]) ?></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center">
+						<b>
+							<a href="/search/?q=<?=htmlentities($_GET['q']); ?>&u=<?=$value['USER']; ?>&token=<?=$_SESSION['token']?>"><?=$value['USER']; ?></a>
+							<?php if (!($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] === 'yes' && $value['USER'] !== 'admin') && ($_SESSION['userContext'] === 'admin')) { ?>
+								<a href="/login/?loginas=<?=$value['USER']?>&token=<?=$_SESSION['token']?>" title="<?= _("Log in as") ?> <?=$value['USER']?>">
+									<i class="fas fa-right-to-bracket icon-green icon-dim"></i>
+								</a>
+							<?php } ?>
+						</b>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><?= _($object) ?></b></div>
 				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><?= translate_date($value["DATE"]) ?></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center">
-					<b>
-						<a href="/search/?q=<?=htmlentities($_GET['q']); ?>&u=<?=$value['USER']; ?>&token=<?=$_SESSION['token']?>"><?=$value['USER']; ?></a>
-						<?php if (!($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] === 'yes' && $value['USER'] !== 'admin') && ($_SESSION['userContext'] === 'admin')) { ?>
-							<a href="/login/?loginas=<?=$value['USER']?>&token=<?=$_SESSION['token']?>" title="<?= _("Log in as") ?> <?=$value['USER']?>">
-								<i class="fas fa-right-to-bracket icon-green icon-dim"></i>
-							</a>
-						<?php } ?>
-					</b>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><?= _($object) ?></b></div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 19 - 18
web/templates/pages/list_server_preview.php

@@ -10,29 +10,30 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact u-text-center">&nbsp;</div>
-			<div class="clearfix l-unit__stat-col--left"><b><?= _("Category") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide-6"><b><?= _("Name") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide-2"><b><?= _("Status") ?></b></div>
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left super-compact u-text-center">&nbsp;</div>
+				<div class="clearfix l-unit__stat-col--left"><b><?= _("Category") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-6"><b><?= _("Name") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-2"><b><?= _("Status") ?></b></div>
 
+			</div>
 		</div>
-	</div>
-	<!-- Start of item element-->
-	<div class="l-unit header animate__animated animate__fadeIn">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact u-text-center">
-				<i class="fas fa-gear icon-blue"></i>
+		<!-- Start of item element-->
+		<div class="l-unit header animate__animated animate__fadeIn">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left super-compact u-text-center">
+					<i class="fas fa-gear icon-blue"></i>
+				</div>
+				<div class="clearfix l-unit__stat-col--left"><b><?= _("System") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-6"><b><?= _("Policy") ?>: <?= _("Allow suspended users to log in with read-only access") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-2"><?= _("Partially implemented") ?></div>
 			</div>
-			<div class="clearfix l-unit__stat-col--left"><b><?= _("System") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide-6"><b><?= _("Policy") ?>: <?= _("Allow suspended users to log in with read-only access") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left wide-2"><?= _("Partially implemented") ?></div>
 		</div>
+		<!-- End of item element-->
 	</div>
-	<!-- End of item element-->
 </div>
 
 <footer class="app-footer">

+ 1 - 3
web/templates/pages/list_stats.php

@@ -45,8 +45,7 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-
+<div class="container">
 	<!-- Begin statistics list item loop -->
 	<div class="stats">
 		<?php foreach ($data as $key => $value) {
@@ -228,7 +227,6 @@
 			</div>
 		<?php } ?>
 	</div>
-
 </div>
 
 <footer class="app-footer">

+ 43 - 42
web/templates/pages/list_updates.php

@@ -24,58 +24,59 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div>
-				<div class="clearfix l-unit__stat-col--left super-compact center">
-					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
+<div class="container">
+	<div class="units">
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div>
+					<div class="clearfix l-unit__stat-col--left super-compact center">
+						<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
+					</div>
+					<!-- Not a typo, to differentiate from User "Package Name" -->
+					<div class="clearfix l-unit__stat-col--left wide"><b><?= _("Package Names") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left wide-5"><b><?= _("Description") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center wide"><b><?= _("Version") ?></b></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Status") ?></b></div>
 				</div>
-				<!-- Not a typo, to differentiate from User "Package Name" -->
-				<div class="clearfix l-unit__stat-col--left wide"><b><?= _("Package Names") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left wide-5"><b><?= _("Description") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center wide"><b><?= _("Version") ?></b></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Status") ?></b></div>
 			</div>
 		</div>
-	</div>
 
-	<!-- Begin update list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
+		<!-- Begin update list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
 
-			if ($data[$key]['UPDATED'] == 'yes') {
-				$status = 'active';
-				$upd_status = 'updated';
-			} else {
-				$status = 'suspended';
-				$upd_status = 'outdated';
-			}
-		?>
-		<div class="l-unit<?php if ($status == 'suspended') echo ' l-unit--outdated';?> animate__animated animate__fadeIn">
-			<div class="l-unit-toolbar clearfix">
-				<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+				if ($data[$key]['UPDATED'] == 'yes') {
+					$status = 'active';
+					$upd_status = 'updated';
+				} else {
+					$status = 'suspended';
+					$upd_status = 'outdated';
+				}
+			?>
+			<div class="l-unit<?php if ($status == 'suspended') echo ' l-unit--outdated';?> animate__animated animate__fadeIn">
+				<div class="l-unit-toolbar clearfix">
+					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+					</div>
 				</div>
-			</div>
 
-			<div class="l-unit__col l-unit__col--right">
-				<div>
-					<div class="clearfix l-unit__stat-col--left super-compact center">
-						<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="pkg[]" value="<?= $key ?>">
-					</div>
-					<div class="clearfix l-unit__stat-col--left wide"><b><?=$key?></b></div>
-					<div class="clearfix l-unit__stat-col--left wide-5"><?=_($data[$key]['DESCR'])?></div>
-					<div class="clearfix l-unit__stat-col--left u-text-center wide"><?=$data[$key]['VERSION'] ?> (<?=$data[$key]['ARCH']?>)</div>
-					<div class="clearfix l-unit__stat-col--left u-text-center">
-						<?php if ($data[$key]['UPDATED'] == 'no') { echo '<i class="fas fa-triangle-exclamation" style="color: orange;"></i>'; } ?>
-						<?php if ($data[$key]['UPDATED'] == 'yes') { echo '<i class="fas fa-circle-check icon-green"></i>'; } ?>
+				<div class="l-unit__col l-unit__col--right">
+					<div>
+						<div class="clearfix l-unit__stat-col--left super-compact center">
+							<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="pkg[]" value="<?= $key ?>">
+						</div>
+						<div class="clearfix l-unit__stat-col--left wide"><b><?=$key?></b></div>
+						<div class="clearfix l-unit__stat-col--left wide-5"><?=_($data[$key]['DESCR'])?></div>
+						<div class="clearfix l-unit__stat-col--left u-text-center wide"><?=$data[$key]['VERSION'] ?> (<?=$data[$key]['ARCH']?>)</div>
+						<div class="clearfix l-unit__stat-col--left u-text-center">
+							<?php if ($data[$key]['UPDATED'] == 'no') { echo '<i class="fas fa-triangle-exclamation" style="color: orange;"></i>'; } ?>
+							<?php if ($data[$key]['UPDATED'] == 'yes') { echo '<i class="fas fa-circle-check icon-green"></i>'; } ?>
+						</div>
 					</div>
 				</div>
 			</div>
-		</div>
-	<?php } ?>
-
+		<?php } ?>
+	</div>
 </div>
 
 <footer class="app-footer">

+ 117 - 115
web/templates/pages/list_user.php

@@ -67,132 +67,134 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-
-	<!-- Table header -->
-	<div class="units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact">
-				<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
+<div class="container">
+	<div class="units">
+		<!-- Table header -->
+		<div class="units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left super-compact">
+					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>">
+				</div>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Name") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-3"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center width"><b><?= _("Package") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><?= _("IPs") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-6"><b><i class="fas fa-hard-drive" title="<?= _("Disk") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact-6"><b><i class="fas fa-right-left" title="<?= _("Bandwidth") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-earth-americas" title="<?= _("Web Domains") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-book-atlas" title="<?= _("DNS Zones") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-envelopes-bulk" title="<?= _("Mail Domains") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-database" title="<?= _("Databases") ?>"></i></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-file-zipper" title="<?= _("Backups") ?>"></i></b></div>
 			</div>
-			<div class="clearfix l-unit__stat-col--left wide-3"><b><?= _("Name") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-3"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center width"><b><?= _("Package") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><?= _("IPs") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-6"><b><i class="fas fa-hard-drive" title="<?= _("Disk") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact-6"><b><i class="fas fa-right-left" title="<?= _("Bandwidth") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-earth-americas" title="<?= _("Web Domains") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-book-atlas" title="<?= _("DNS Zones") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-envelopes-bulk" title="<?= _("Mail Domains") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-database" title="<?= _("Databases") ?>"></i></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><b><i class="fas fa-file-zipper" title="<?= _("Backups") ?>"></i></b></div>
 		</div>
-	</div>
 
-	<!-- Begin user list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
-			++$i;
-			if ($data[$key]['SUSPENDED'] == 'yes') {
-				$status = 'suspended';
-				$spnd_action = 'unsuspend';
-				$spnd_action_title = _('Unsuspend');
-				$spnd_icon = 'fa-play';
-				$spnd_confirmation = _('Are you sure you want to unsuspend user %s?');
-			} else {
-				$status = 'active';
-				$spnd_action = 'suspend';
-				$spnd_action_title = _('Suspend');
-				$spnd_icon = 'fa-pause';
-				$spnd_confirmation = _('Are you sure you want to suspend user %s?');
-			}
-		?>
-		<div class="l-unit <?php if ($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
-			data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
-			data-sort-name="<?=strtolower($key)?>"
-			data-sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>"
-			data-sort-disk="<?=$data[$key]['U_DISK']?>">
-			<div class="l-unit__col l-unit__col--right" style="<?php if (($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] === 'yes') && ($_SESSION['user'] !== 'admin') && ($key === 'admin')) { echo 'display: none';} ?>">
-				<div class="clearfix l-unit__stat-col--left super-compact">
-					<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="user[]" value="<?= $key ?>">
-				</div>
-				<div class="clearfix l-unit__stat-col--left wide-3 userlist-username">
-					<?php if ($key == $user_plain) { ?>
-						<b><a href="/edit/user/?user=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit User") ?>"><?=$key?> <span style="font-weight: normal !important;">(<?=$data[$key]['NAME'];?>)</span></a></b>
-					<?php } else { ?>
-						<b><a href="/login/?loginas=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Log in as") ?> <?=$key?>"><?=$key?> <span style="font-weight: normal !important;">(<?=$data[$key]['NAME'];?>)</span></a></b>
-					<?php } ?>
-					<br>
-					<div class="userlist-email"><b><?= _("Email") ?>:</b> <?= $data[$key]["CONTACT"] ?></div>
-				</div>
-				<!-- START QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left u-text-right compact-3">
-					<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
-						<div class="actions-panel clearfix">
-							<?php if ($key == $user_plain) { ?>
-								<i class="fas fa-user-check icon-dim" title="<?= $key ?> (<?= $data[$key]["NAME"] ?>)"></i>
-							<?php } else { ?>
-								<a href="/login/?loginas=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Log in as") ?> <?= $key ?>"><i class="fas fa-right-to-bracket icon-green icon-dim"></i></a>
-							<?php } ?>
-							<?php if ($_SESSION["userContext"] === "admin" && $key == "admin" && $_SESSION["user"] != "admin") { ?>
-								<!-- Hide edit button from admin user when logged in with another admin user -->
-								&nbsp;
-							<?php } else { ?>
-								<div class="actions-panel__col actions-panel__edit shortcut-enter" data-key-action="href"><a href="/edit/user/?user=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit User") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
-							<?php } ?>
-							<?php if ($key == "admin") { ?>
-								<!-- Hide suspend and delete buttons in the user list for primary 'admin' account -->
-							<?php } else { ?>
+		<!-- Begin user list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
+				++$i;
+				if ($data[$key]['SUSPENDED'] == 'yes') {
+					$status = 'suspended';
+					$spnd_action = 'unsuspend';
+					$spnd_action_title = _('Unsuspend');
+					$spnd_icon = 'fa-play';
+					$spnd_confirmation = _('Are you sure you want to unsuspend user %s?');
+				} else {
+					$status = 'active';
+					$spnd_action = 'suspend';
+					$spnd_action_title = _('Suspend');
+					$spnd_icon = 'fa-pause';
+					$spnd_confirmation = _('Are you sure you want to suspend user %s?');
+				}
+			?>
+			<div class="l-unit <?php if ($status == 'suspended') echo 'l-unit--suspended'; ?> animate__animated animate__fadeIn js-unit"
+				data-sort-date="<?=strtotime($data[$key]['DATE'].' '.$data[$key]['TIME'])?>"
+				data-sort-name="<?=strtolower($key)?>"
+				data-sort-bandwidth="<?=$data[$key]['U_BANDWIDTH']?>"
+				data-sort-disk="<?=$data[$key]['U_DISK']?>">
+				<div class="l-unit__col l-unit__col--right" style="<?php if (($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] === 'yes') && ($_SESSION['user'] !== 'admin') && ($key === 'admin')) { echo 'display: none';} ?>">
+					<div class="clearfix l-unit__stat-col--left super-compact">
+						<input id="check<?= $i ?>" class="js-unit-checkbox" type="checkbox" title="<?= _("Select") ?>" name="user[]" value="<?= $key ?>">
+					</div>
+					<div class="clearfix l-unit__stat-col--left wide-3 userlist-username">
+						<?php if ($key == $user_plain) { ?>
+							<b><a href="/edit/user/?user=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit User") ?>"><?=$key?> <span style="font-weight: normal !important;">(<?=$data[$key]['NAME'];?>)</span></a></b>
+						<?php } else { ?>
+							<b><a href="/login/?loginas=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Log in as") ?> <?=$key?>"><?=$key?> <span style="font-weight: normal !important;">(<?=$data[$key]['NAME'];?>)</span></a></b>
+						<?php } ?>
+						<br>
+						<div class="userlist-email"><b><?= _("Email") ?>:</b> <?= $data[$key]["CONTACT"] ?></div>
+					</div>
+					<!-- START QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left u-text-right compact-3">
+						<div class="l-unit-toolbar__col l-unit-toolbar__col--right u-noselect">
+							<div class="actions-panel clearfix">
 								<?php if ($key == $user_plain) { ?>
-									<!-- Hide suspend and delete buttons in the user list for current user -->
+									<i class="fas fa-user-check icon-dim" title="<?= $key ?> (<?= $data[$key]["NAME"] ?>)"></i>
 								<?php } else { ?>
-								<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
-									<a
-										class="data-controls js-confirm-action"
-										href="/<?= $spnd_action ?>/user/?user=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
-										data-confirm-title="<?= $spnd_action_title ?>"
-										data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
-									>
-										<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
-									</a>
-								</div>
-								<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
-									<a
-										class="data-controls js-confirm-action"
-										href="/delete/user/?user=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
-										data-confirm-title="<?= _("Delete") ?>"
-										data-confirm-message="<?= sprintf(_('Are you sure you want to delete user %s?'), $key) ?>"
-									>
-										<i class="fas fa-trash icon-red icon-dim"></i>
-									</a>
-								</div>
+									<a href="/login/?loginas=<?= $key ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Log in as") ?> <?= $key ?>"><i class="fas fa-right-to-bracket icon-green icon-dim"></i></a>
 								<?php } ?>
-							<?php } ?>
+								<?php if ($_SESSION["userContext"] === "admin" && $key == "admin" && $_SESSION["user"] != "admin") { ?>
+									<!-- Hide edit button from admin user when logged in with another admin user -->
+									&nbsp;
+								<?php } else { ?>
+									<div class="actions-panel__col actions-panel__edit shortcut-enter" data-key-action="href"><a href="/edit/user/?user=<?=$key?>&token=<?=$_SESSION['token']?>" title="<?= _("Edit User") ?>"><i class="fas fa-pencil icon-orange icon-dim"></i></a></div>
+								<?php } ?>
+								<?php if ($key == "admin") { ?>
+									<!-- Hide suspend and delete buttons in the user list for primary 'admin' account -->
+								<?php } else { ?>
+									<?php if ($key == $user_plain) { ?>
+										<!-- Hide suspend and delete buttons in the user list for current user -->
+									<?php } else { ?>
+									<div class="actions-panel__col actions-panel__suspend shortcut-s" data-key-action="js">
+										<a
+											class="data-controls js-confirm-action"
+											href="/<?= $spnd_action ?>/user/?user=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
+											data-confirm-title="<?= $spnd_action_title ?>"
+											data-confirm-message="<?= sprintf($spnd_confirmation, $key) ?>"
+										>
+											<i class="fas <?= $spnd_icon ?> icon-highlight icon-dim"></i>
+										</a>
+									</div>
+									<div class="actions-panel__col actions-panel__delete shortcut-delete" data-key-action="js">
+										<a
+											class="data-controls js-confirm-action"
+											href="/delete/user/?user=<?= $key ?>&token=<?= $_SESSION["token"] ?>"
+											data-confirm-title="<?= _("Delete") ?>"
+											data-confirm-message="<?= sprintf(_('Are you sure you want to delete user %s?'), $key) ?>"
+										>
+											<i class="fas fa-trash icon-red icon-dim"></i>
+										</a>
+									</div>
+									<?php } ?>
+								<?php } ?>
+							</div>
 						</div>
 					</div>
+					<!-- END QUICK ACTION TOOLBAR AREA -->
+					<div class="clearfix l-unit__stat-col--left u-text-center width">
+						<b>
+							<?php if ($data[$key]["PACKAGE"] === "system") { ?>
+								<?= $data[$key]["PACKAGE"] ?>
+							<?php } else { ?>
+								<a href="/edit/package/?package=<?= $data[$key]["PACKAGE"] ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Edit Package") ?>"><?= $data[$key]["PACKAGE"] ?></a>
+							<?php } ?>
+						</b>
+					</div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><?= $data[$key]["IP_OWNED"] ?></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-6"><b><?= humanize_usage_size($data[$key]["U_DISK"],1) ?></b><span class="u-text-small"><?= humanize_usage_measure($data[$key]["U_DISK"]) ?></span> / <b><?= humanize_usage_size($data[$key]["DISK_QUOTA"],1) ?></b><span class="u-text-small"><?= humanize_usage_measure($data[$key]["DISK_QUOTA"]) ?></span></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center compact-6"><b><?= humanize_usage_size($data[$key]["U_BANDWIDTH"],1) ?></b><span class="u-text-small"><?= humanize_usage_measure($data[$key]["U_BANDWIDTH"]) ?></span> / <b><?= humanize_usage_size($data[$key]["BANDWIDTH"],1) ?></b><span class="u-text-small"><?= humanize_usage_measure($data[$key]["BANDWIDTH"]) ?></span></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact" title="<?= $data[$key]["U_WEB_DOMAINS"] ?> <?= _("Web Domains") ?>"><span class="badge"><b><?= $data[$key]["U_WEB_DOMAINS"] ?></b></span></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact" title="<?= $data[$key]["U_DNS_DOMAINS"] ?> <?= _("DNS Zones") ?>"><span class="badge"><b><?= $data[$key]["U_DNS_DOMAINS"] ?></b></span></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact" title="<?= $data[$key]["U_MAIL_DOMAINS"] ?> <?= _("Mail Domains") ?>"><span class="badge"><b><?= $data[$key]["U_MAIL_DOMAINS"] ?></b></span></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact" title="<?= $data[$key]["U_DATABASES"] ?> <?= _("Databases") ?>"><span class="badge"><b><?= $data[$key]["U_DATABASES"] ?></b></span></div>
+					<div class="clearfix l-unit__stat-col--left u-text-center super-compact" title="<?= $data[$key]["U_BACKUPS"] ?> <?= _("Backups") ?>"><span class="badge"><b><?= $data[$key]["U_BACKUPS"] ?></b></span></div>
 				</div>
-				<!-- END QUICK ACTION TOOLBAR AREA -->
-				<div class="clearfix l-unit__stat-col--left u-text-center width">
-					<b>
-						<?php if ($data[$key]["PACKAGE"] === "system") { ?>
-							<?= $data[$key]["PACKAGE"] ?>
-						<?php } else { ?>
-							<a href="/edit/package/?package=<?= $data[$key]["PACKAGE"] ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Edit Package") ?>"><?= $data[$key]["PACKAGE"] ?></a>
-						<?php } ?>
-					</b>
-				</div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact"><?= $data[$key]["IP_OWNED"] ?></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-6"><b><?= humanize_usage_size($data[$key]["U_DISK"],1) ?></b><span class="u-text-small"><?= humanize_usage_measure($data[$key]["U_DISK"]) ?></span> / <b><?= humanize_usage_size($data[$key]["DISK_QUOTA"],1) ?></b><span class="u-text-small"><?= humanize_usage_measure($data[$key]["DISK_QUOTA"]) ?></span></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center compact-6"><b><?= humanize_usage_size($data[$key]["U_BANDWIDTH"],1) ?></b><span class="u-text-small"><?= humanize_usage_measure($data[$key]["U_BANDWIDTH"]) ?></span> / <b><?= humanize_usage_size($data[$key]["BANDWIDTH"],1) ?></b><span class="u-text-small"><?= humanize_usage_measure($data[$key]["BANDWIDTH"]) ?></span></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact" title="<?= $data[$key]["U_WEB_DOMAINS"] ?> <?= _("Web Domains") ?>"><span class="badge"><b><?= $data[$key]["U_WEB_DOMAINS"] ?></b></span></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact" title="<?= $data[$key]["U_DNS_DOMAINS"] ?> <?= _("DNS Zones") ?>"><span class="badge"><b><?= $data[$key]["U_DNS_DOMAINS"] ?></b></span></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact" title="<?= $data[$key]["U_MAIL_DOMAINS"] ?> <?= _("Mail Domains") ?>"><span class="badge"><b><?= $data[$key]["U_MAIL_DOMAINS"] ?></b></span></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact" title="<?= $data[$key]["U_DATABASES"] ?> <?= _("Databases") ?>"><span class="badge"><b><?= $data[$key]["U_DATABASES"] ?></b></span></div>
-				<div class="clearfix l-unit__stat-col--left u-text-center super-compact" title="<?= $data[$key]["U_BACKUPS"] ?> <?= _("Backups") ?>"><span class="badge"><b><?= $data[$key]["U_BACKUPS"] ?></b></span></div>
 			</div>
-		</div>
-	<?php } ?>
+		<?php } ?>
+	</div>
 </div>
+
 <footer class="app-footer">
 	<div class="container app-footer-inner">
 		<p>

+ 18 - 18
web/templates/pages/list_web.php

@@ -66,27 +66,27 @@
 </div>
 <!-- End toolbar -->
 
-<div class="container units">
-
-	<!-- Table header -->
-	<div class="header units-header">
-		<div class="l-unit__col l-unit__col--right">
-			<div class="clearfix l-unit__stat-col--left super-compact">
-				<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
+<div class="container">
+	<div class="units">
+		<!-- Table header -->
+		<div class="header units-header">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left super-compact">
+					<input type="checkbox" class="js-toggle-all-checkbox" title="<?= _("Select all") ?>" <?= $display_mode ?>>
+				</div>
+				<div class="clearfix l-unit__stat-col--left wide-4"><b><?= _("Name") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left compact-4 u-text-right"><b>&nbsp;</b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("IP Address") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Disk") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= _("Bandwidth") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("SSL") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= _("Statistics") ?></b></div>
 			</div>
-			<div class="clearfix l-unit__stat-col--left wide-4"><b><?= _("Name") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left compact-4 u-text-right"><b>&nbsp;</b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("IP Address") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("Disk") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= _("Bandwidth") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center"><b><?= _("SSL") ?></b></div>
-			<div class="clearfix l-unit__stat-col--left u-text-center compact"><b><?= _("Statistics") ?></b></div>
 		</div>
-	</div>
 
-	<!-- Begin web domain list item loop -->
-	<?php
-		foreach ($data as $key => $value) {
+		<!-- Begin web domain list item loop -->
+		<?php
+			foreach ($data as $key => $value) {
 				++$i;
 				if ($data[$key]['SUSPENDED'] == 'yes') {
 						$status = 'suspended';