Dashboard: make items moveable between columns

This PR also introduces a system to completely hide items and a content manager function to unhide them
This commit is contained in:
bergware
2023-01-02 22:13:58 +01:00
parent f3523bf1fa
commit e9bd58b3b7
7 changed files with 537 additions and 704 deletions
File diff suppressed because it is too large Load Diff
+7 -8
View File
@@ -1,7 +1,7 @@
<?PHP
/* Copyright 2005-2020, Lime Technology
* Copyright 2014-2020, Guilherme Jardim, Eric Schultz, Jon Panozzo.
* Copyright 2012-2020, Bergware International.
/* Copyright 2005-2022, Lime Technology
* Copyright 2014-2022, Guilherme Jardim, Eric Schultz, Jon Panozzo.
* Copyright 2012-2022, Bergware International.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version 2,
@@ -16,7 +16,6 @@ $docroot = $docroot ?? $_SERVER['DOCUMENT_ROOT'] ?: '/usr/local/emhttp';
// add translations
$_SERVER['REQUEST_URI'] = 'dashboard';
require_once "$docroot/webGui/include/Translations.php";
require_once "$docroot/plugins/dynamix.docker.manager/include/DockerClient.php";
require_once "$docroot/plugins/dynamix.vm.manager/include/libvirt_helpers.php";
require_once "$docroot/webGui/include/Helpers.php";
@@ -27,14 +26,14 @@ if ($_POST['docker'] && ($display=='icons' || $display=='docker')) {
$user_prefs = $dockerManPaths['user-prefs'];
$DockerClient = new DockerClient();
$DockerTemplates = new DockerTemplates();
$containers = $DockerClient->getDockerContainers();
$containers = $DockerClient->getDockerContainers() ?: [];
$allInfo = $DockerTemplates->getAllInfo();
if (file_exists($user_prefs)) {
$prefs = parse_ini_file($user_prefs); $sort = [];
foreach ($containers as $ct) $sort[] = array_search($ct['Name'],$prefs) ?? 999;
array_multisort($sort,SORT_NUMERIC,$containers);
}
echo "<tr><td></td><td colspan='4'>";
echo "<tr class='updated'><td></td><td>";
foreach ($containers as $ct) {
$name = $ct['Name'];
$id = $ct['Id'];
@@ -67,7 +66,7 @@ if ($_POST['docker'] && ($display=='icons' || $display=='docker')) {
echo "\0";
if ($_POST['vms'] && ($display=='icons' || $display=='vms')) {
$user_prefs = '/boot/config/plugins/dynamix.vm.manager/userprefs.cfg';
$vms = $lv->get_domains();
$vms = $lv->get_domains() ?: [];
if (file_exists($user_prefs)) {
$prefs = parse_ini_file($user_prefs); $sort = [];
foreach ($vms as $vm) $sort[] = array_search($vm,$prefs) ?? 999;
@@ -75,7 +74,7 @@ if ($_POST['vms'] && ($display=='icons' || $display=='vms')) {
} else {
natcasesort($vms);
}
echo "<tr><td></td><td colspan='4'>";
echo "<tr class='updated'><td></td><td>";
foreach ($vms as $vm) {
$res = $lv->get_domain_by_name($vm);
$uuid = libvirt_domain_get_uuid_string($res);
+15 -15
View File
@@ -135,7 +135,7 @@ function device_name(&$disk) {
$name = my_disk($disk['name']);
[$p1,$p2] = explode(' ',$name);
$name = _($p1).($p2?" $p2":"");
return "<i class='icon-$type'></i> <a href=\"".htmlspecialchars("/Dashboard/Main/Settings/Device?name={$disk['name']}")."\" title=\"$name settings\">$name</a>";
return "<i class='icon-$type' style='font-size:1.4rem'></i> <a href=\"".htmlspecialchars("/Dashboard/Main/Settings/Device?name={$disk['name']}")."\" title=\"$name settings\">$name</a>";
}
function device_status(&$disk, &$error, &$warning) {
global $var;
@@ -225,13 +225,13 @@ function array_group($type,$pool=false) {
global $disks,$error,$warning,$red,$orange,$fail,$smart,$full,$high;
$echo = [];
foreach ($disks as $disk) if ($disk['type']==$type && strpos($disk['status'],'DISK_NP')===false && (!$pool||$pool==prefix($disk['name']))) {
$echo[] = "<tr><td></td>";
$echo[] = "<td>".device_name($disk)."</td>";
$echo[] = "<td>".device_status($disk,$error,$warning)."</td>";
$echo[] = "<td>".device_temp($disk,$red,$orange)."</td>";
$echo[] = "<td>".device_smart($disk,$fail,$smart)."</td>";
$echo[] = "<td>".device_usage($disk,$full,$high)."</td>";
$echo[] = "<td></td></tr>";
$echo[] = "<tr class='updated'><td></td><td>";
$echo[] = "<span class='w26'>".device_name($disk)."</span>";
$echo[] = "<span class='w18'>".device_status($disk,$error,$warning)."</span>";
$echo[] = "<span class='w18'>".device_temp($disk,$red,$orange)."</span>";
$echo[] = "<span class='w18'>".device_smart($disk,$fail,$smart)."</span>";
$echo[] = "<span class='w18'>".device_usage($disk,$full,$high)."</span>";
$echo[] = "</td><td></td></tr>";
}
return implode('',$echo);
}
@@ -242,13 +242,13 @@ function extra_group() {
$name = $disk['name'];
$disk['type'] = "Extra";
$disk['color'] = $disk['spundown']=="0" ? 'blue-on' : 'blue-blink';
$echo[] = "<tr><td></td>";
$echo[] = "<td>".device_name($disk)."</td>";
$echo[] = "<td>".device_status($disk,$error,$warning)."</td>";
$echo[] = "<td>".device_temp($disk,$red,$orange)."</td>";
$echo[] = "<td>".device_smart($disk,$fail,$smart)."</td>";
$echo[] = "<td>".device_usage($disk,$full,$high)."</td>";
$echo[] = "<td></td></tr>";
$echo[] = "<tr class='updated'><td></td><td>";
$echo[] = "<span class='w26'>".device_name($disk)."</span>";
$echo[] = "<span class='w18'>".device_status($disk,$error,$warning)."</span>";
$echo[] = "<span class='w18'>".device_temp($disk,$red,$orange)."</span>";
$echo[] = "<span class='w18'>".device_smart($disk,$fail,$smart)."</span>";
$echo[] = "<span class='w18'>".device_usage($disk,$full,$high)."</span>";
$echo[] = "</td><td></td></tr>";
}
return implode('',$echo);
}
+13 -73
View File
@@ -159,84 +159,24 @@ table.share_status tbody tr.warn{color:#e68a00}
table.share_status.fixed tr>td+td{min-width:39px;font-size:1.1rem;text-align:center;padding:0}
table.share_status.table{margin-top:36px}
table.share_status.table tr>td{width:50%}
table.share_status.dashboard{float:left;margin:6px 10px 14px 10px;border:1px solid #606e7f}
table.share_status.dashboard thead tr:first-child>td{line-height:5rem;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;border:none;padding-top:10px}
table.share_status.dashboard tbody tr>td{line-height:normal;padding-top:3px;padding-bottom:3px}
table.share_status.dashboard tbody tr{border-bottom:none}
table.share_status.dashboard tbody tr:last-child td{border-bottom:none}
table.share_status.dashboard tbody tr>td{border-top:1px solid #f3f0f4}
table.share_status.dashboard tbody tr>td:first-child{border-top:none}
table.share_status.dashboard tbody tr>td:last-child{border-top:none}
table.share_status.dashboard tr>td:first-child{width:3.5%}
table.share_status.dashboard tr>td:last-child{width:3.5%}
table.share_status.dashboard tr>td{padding-left:4px}
table.share_status.dashboard tr>td.next{border-top:1px solid #606e7f!important}
table.share_status.dashboard td.top{vertical-align:middle}
table.share_status.dashboard{margin:0;border:1px solid #606e7f}
table.share_status.dashboard tbody{border:1px solid #606e7f}
table.share_status.dashboard tr:first-child>td{height:3.6rem;padding-top:12px;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:top}
table.share_status.dashboard tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tr.last>td{padding-bottom:20px}
table.share_status.dashboard tr{border:none}
table.share_status.dashboard tr>td{line-height:normal;padding-top:3px;padding-bottom:3px}
table.share_status.dashboard tr td:first-child{width:2%}
table.share_status.dashboard tr td:nth-child(2){width:97%}
table.share_status.dashboard tr td:last-child{width:1%}
table.share_status.dashboard td.vpn{font-size:1.1rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td.left{font-size:1.1rem;padding-left:24px}
table.share_status.dashboard td.right{font-size:1.1rem;text-align:right;padding-right:10px}
table.share_status.dashboard td i[class^="icon-"]{font-size:1.6rem;margin-right:8px}
table.share_status.dashboard td i[class^="icon-u-"]{font-size:inherit}
table.share_status.dashboard td i.vpn{font-size:inherit!important;cursor:pointer}
table.share_status.dashboard td span[class^="fa "]{font-size:1.6rem;margin-right:8px}
table.share_status.dashboard td i#mycase[class^="case-"]{font-size:128px}
table.share_status.dashboard td i#mycase[class^="fa "]{font-size:96px}
table.share_status.dashboard td img#mycase{width:auto;max-width:128px;height:auto;max-height:128px}
table.share_status.dashboard td i.chevron{float:right;font-size:1.2rem!important;margin-top:0;margin-right:2px;cursor:pointer;color:#606e7f}
table.share_status.dashboard td i.chevron.mt0{margin-top:18px}
table.share_status.dashboard td div.section{display:inline-block;vertical-align:top;margin-left:4px;font-size:1.2rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td div.section span{font-weight:normal;text-transform:none;letter-spacing:0;white-space:normal}
table.share_status.dashboard td span.info{float:right;margin-right:20px;font-size:1.2rem;font-weight:normal;text-transform:none;letter-spacing:0}
table.share_status.dashboard td span.info.title{font-weight:bold}
table.share_status.dashboard td span.load{display:inline-block;width:38px;text-align:right;margin-top:7px}
table.share_status.dashboard td span.load{display:inline-block;width:38px;text-align:right}
table.share_status.dashboard td span.finish{float:right;margin-right:24px}
table.share_status.dashboard.box1{table-layout:fixed}
table.share_status.dashboard.box1 tbody tr:first-child>td{padding-top:20px}
table.share_status.dashboard.box1 tbody tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard.box1 tr td:nth-child(2){min-width:31%}
table.share_status.dashboard.box1 tr td:nth-child(3){min-width:31%}
table.share_status.dashboard.box1 tr td:nth-child(4){min-width:31%}
table.share_status.dashboard.box1 tr td[colspan="2"]{min-width:62%}
table.share_status.dashboard.box1 tr td[colspan="3"]{min-width:93%}
table.share_status.dashboard.box1 tr.last>td{padding-bottom:20px}
table.share_status.dashboard.box1 td i[class^="icon-"]{font-size:32px;vertical-align:top}
table.share_status.dashboard.box1 td i[class^="fa "]{font-size:1rem;vertical-align:super}
table.share_status.dashboard.box1 td span.header{font-size:1.1rem!important;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard.box1 td span.text{white-space:normal}
table.share_status.dashboard.box2 thead tr:first-child td{border-bottom:1px solid #606e7f}
table.share_status.dashboard.box2 thead tr:first-child td:first-child{border-bottom:none}
table.share_status.dashboard.box2 thead tr:first-child td:last-child{border-bottom:none}
table.share_status.dashboard.box2 thead tr:nth-child(3)>td{font-size:1.1rem;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #606e7f}
table.share_status.dashboard.box2 thead tr:nth-child(3)>td:first-child{border-bottom:none}
table.share_status.dashboard.box2 thead tr:nth-child(3)>td:last-child{border-bottom:none}
table.share_status.dashboard.box2 tr td:nth-child(2){min-width:20%}
table.share_status.dashboard.box2 tr td:nth-child(3){min-width:18%}
table.share_status.dashboard.box2 tr td:nth-child(4){min-width:18%}
table.share_status.dashboard.box2 tr td:nth-child(5){min-width:18%}
table.share_status.dashboard.box2 tr td:nth-child(6){min-width:19%}
table.share_status.dashboard.box2 tr td[colspan="5"]{min-width:93%}
table.share_status.dashboard.box3 thead tr:first-child td{border-bottom:1px solid #606e7f}
table.share_status.dashboard.box3 thead tr:first-child td:first-child{border-bottom:none}
table.share_status.dashboard.box3 thead tr:first-child td:last-child{border-bottom:none}
table.share_status.dashboard.box3 thead tr:nth-child(2)>td{font-size:1.1rem;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #606e7f}
table.share_status.dashboard.box3 thead tr:nth-child(2)>td:first-child{border-bottom:none}
table.share_status.dashboard.box3 thead tr:nth-child(2)>td:last-child{border-bottom:none}
table.share_status.dashboard.box3 tbody tr>td{padding-top:10px;padding-bottom:10px}
table.share_status.dashboard.box3 tr td:nth-child(2){min-width:28%}
table.share_status.dashboard.box3 tr td:nth-child(3){min-width:43%}
table.share_status.dashboard.box3 tr td:nth-child(4){min-width:11%}
table.share_status.dashboard.box3 tr td:nth-child(5){min-width:11%}
table.share_status.dashboard.box3 tr td[colspan="4"]{min-width:93%}
@media (max-width:1680px){
table.share_status.dashboard.box1{width:45.4%;margin-left:0;margin-right:0;float:left}
table.share_status.dashboard.box2{width:53.4%;margin-left:0;margin-right:0;float:right}
table.share_status.dashboard.box3{width:53.4%;margin-left:0;margin-right:0;float:right}
}
@media (min-width:1681px){
table.share_status.dashboard.box1{width:28.6%;margin-left:0;margin-right:0;float:left}
table.share_status.dashboard.box2{width:34.6%;margin-left:0;margin-right:0;float:right}
table.share_status.dashboard.box3{width:34.6%;margin-left:20px;margin-right:0}
}
table.share_status.dashboard i.control{float:right;font-size:1.4rem!important;margin:0 3px 0 0;cursor:pointer;background-color:rgba(0,0,0,0.1);padding:2px}
tr.alert{color:#f0000c;background-color:#ff9e9e}
tr.warn{color:#e68a00;background-color:#feefb3}
tr.past{color:#d63301;background-color:#ffddd1}
@@ -278,7 +218,7 @@ i.padlock{margin-right:8px;cursor:default;vertical-align:middle}
i.nolock{visibility:hidden;margin-right:8px;vertical-align:middle}
i.lock{margin-left:8px;cursor:default;vertical-align:middle}
i.orb{font-size:1.1rem;margin:0 8px 0 3px}
i.mm{display:block;margin-left:45px;margin-bottom:-7px}
i.mm{display:block;margin-left:45px}
img.img,i.img{width:32px;height:32px;margin-right:10px}
img.icon{margin:-3px 4px 0 0}
img.list{width:auto;max-width:32px;height:32px}
+12 -63
View File
@@ -155,76 +155,25 @@ table.share_status tbody tr.warn{color:#e68a00}
table.share_status.fixed tr>td+td{min-width:39px;font-size:1.1rem;text-align:center;padding:0}
table.share_status.table{margin-top:36px}
table.share_status.table tr>td{width:50%}
table.share_status.dashboard{float:left;margin:6px 10px 14px 10px;border:1px solid #2b2b2b}
table.share_status.dashboard thead tr:last-child{border-bottom:none}
table.share_status.dashboard thead tr:first-child>td{background-color:transparent;height:4rem;line-height:4rem;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:middle}
table.share_status.dashboard tbody tr:nth-child(even){background-color:transparent}
table.share_status.dashboard tbody td{padding-top:5px;padding-bottom:5px}
table.share_status.dashboard tbody.parity_view tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tbody.array_view tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tbody.cache_view tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tbody.extra_view tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tbody.smb tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tbody.nfs tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tr>td:first-child{width:3.5%}
table.share_status.dashboard tr>td:last-child{width:3.5%}
table.share_status.dashboard tr>td{padding-left:4px}
table.share_status.dashboard tr>td.next{border-top:1px solid #2b2b2b}
table.share_status.dashboard td.top{vertical-align:top}
table.share_status.dashboard{margin:0;border:1px solid #2b2b2b}
table.share_status.dashboard tbody{border:1px solid #2b2b2b}
table.share_status.dashboard tr:first-child>td{height:3.6rem;padding-top:12px;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:top}
table.share_status.dashboard tr:nth-child(even){background-color:transparent}
table.share_status.dashboard tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tr.last>td{padding-bottom:20px}
table.share_status.dashboard tr td:first-child{width:2%}
table.share_status.dashboard tr td:nth-child(2){width:97%}
table.share_status.dashboard tr td:last-child{width:1%}
table.share_status.dashboard td{padding:3px 0}
table.share_status.dashboard td.vpn{font-size:1.1rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td.left{font-size:1.1rem;padding-left:24px}
table.share_status.dashboard td.right{font-size:1.1rem;text-align:right;padding-right:10px}
table.share_status.dashboard td i[class^="icon-"]{font-size:1.6rem;margin-right:8px}
table.share_status.dashboard td i[class^="icon-u-"]{font-size:inherit}
table.share_status.dashboard td i.vpn{font-size:inherit!important;cursor:pointer}
table.share_status.dashboard td span[class^="fa "]{font-size:1.6rem;margin-right:8px}
table.share_status.dashboard td i#mycase[class^="case-"]{font-size:128px}
table.share_status.dashboard td i#mycase[class^="fa "]{font-size:96px}
table.share_status.dashboard td img#mycase{width:auto;max-width:128px;height:auto;max-height:128px}
table.share_status.dashboard td i.chevron{float:right;font-size:1.2rem!important;margin-top:0;margin-right:2px;cursor:pointer;color:#f2f2f2}
table.share_status.dashboard td i.chevron.mt0{margin-top:14px}
table.share_status.dashboard td div.section{display:inline-block;vertical-align:top;margin-left:4px;font-size:1.2rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td div.section span{font-weight:normal;text-transform:none;letter-spacing:0;white-space:normal}
table.share_status.dashboard td span.info{float:right;margin-right:20px;font-size:1.2rem;font-weight:normal;text-transform:none;letter-spacing:0}
table.share_status.dashboard td span.info.title{font-weight:bold}
table.share_status.dashboard td span.load{display:inline-block;width:38px;text-align:right}
table.share_status.dashboard td span.finish{float:right;margin-right:24px}
table.share_status.dashboard.box1{table-layout:fixed}
table.share_status.dashboard.box1 tbody tr:first-child>td{padding-top:20px}
table.share_status.dashboard.box1 tbody tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard.box1 tr td:nth-child(2){min-width:31%}
table.share_status.dashboard.box1 tr td:nth-child(3){min-width:31%}
table.share_status.dashboard.box1 tr td:nth-child(4){min-width:31%}
table.share_status.dashboard.box1 tr td[colspan="2"]{min-width:62}
table.share_status.dashboard.box1 tr td[colspan="3"]{min-width:93%}
table.share_status.dashboard.box1 tr.last>td{padding-bottom:20px}
table.share_status.dashboard.box1 td i[class^="icon-"]{font-size:32px;vertical-align:top}
table.share_status.dashboard.box1 td i[class^="fa "]{font-size:1rem;vertical-align:super}
table.share_status.dashboard.box1 td span.header{font-size:1.1rem!important;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard.box1 td span.text{white-space:normal}
table.share_status.dashboard.box2 thead tr:nth-child(3)>td{font-size:1.1rem;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard.box2 tr td:nth-child(2){min-width:20%}
table.share_status.dashboard.box2 tr td:nth-child(3){min-width:18%}
table.share_status.dashboard.box2 tr td:nth-child(4){min-width:18%}
table.share_status.dashboard.box2 tr td:nth-child(5){min-width:18%}
table.share_status.dashboard.box2 tr td:nth-child(6){min-width:19%}
table.share_status.dashboard.box2 tr td[colspan="5"]{min-width:93%}
table.share_status.dashboard.box3 thead tr:nth-child(2)>td{font-size:1.1rem;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard.box3 tr td:nth-child(2){min-width:28%}
table.share_status.dashboard.box3 tr td:nth-child(3){min-width:43%}
table.share_status.dashboard.box3 tr td:nth-child(4){min-width:11%}
table.share_status.dashboard.box3 tr td:nth-child(5){min-width:11%}
table.share_status.dashboard.box3 tr td[colspan="4"]{min-width:93%}
@media (max-width:1680px){
table.share_status.dashboard.box1{width:45.4%;margin-left:0;margin-right:0;float:left}
table.share_status.dashboard.box2{width:53.4%;margin-left:0;margin-right:0;float:right}
table.share_status.dashboard.box3{width:53.4%;margin-left:0;margin-right:0;float:right}
}
@media (min-width:1681px){
table.share_status.dashboard.box1{width:28.6%;margin-left:0;margin-right:0;float:left}
table.share_status.dashboard.box2{width:34.6%;margin-left:0;margin-right:0;float:right}
table.share_status.dashboard.box3{width:34.6%;margin-left:22px;margin-right:0}
}
table.share_status.dashboard i.control{float:right;font-size:1.4rem!important;margin:0 3px 0 0;cursor:pointer;background-color:rgba(255,255,255,0.1);padding:2px}
[name=arrayOps]{margin-top:12px}
span.error{color:#f0000c;background-color:#ff9e9e;display:block;width:100%}
span.warn{color:#e68a00;background-color:#feefb3;display:block;width:100%}
+13 -73
View File
@@ -159,84 +159,24 @@ table.share_status tbody tr.warn{color:#e68a00}
table.share_status.fixed tr>td+td{min-width:39px;font-size:1.1rem;text-align:center;padding:0}
table.share_status.table{margin-top:36px}
table.share_status.table tr>td{width:50%}
table.share_status.dashboard{float:left;margin:6px 10px 14px 10px;border:1px solid #606e7f}
table.share_status.dashboard thead tr:first-child>td{line-height:5rem;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;border:none;padding-top:10px}
table.share_status.dashboard tbody tr>td{line-height:normal;padding-top:3px;padding-bottom:3px}
table.share_status.dashboard tbody tr{border-bottom:none}
table.share_status.dashboard tbody tr:last-child td{border-bottom:none}
table.share_status.dashboard tbody tr>td{border-top:1px solid #0c0f0b}
table.share_status.dashboard tbody tr>td:first-child{border-top:none}
table.share_status.dashboard tbody tr>td:last-child{border-top:none}
table.share_status.dashboard tr>td:first-child{width:3.5%}
table.share_status.dashboard tr>td:last-child{width:3.5%}
table.share_status.dashboard tr>td{padding-left:4px}
table.share_status.dashboard tr>td.next{border-top:1px solid #606e7f!important}
table.share_status.dashboard td.top{vertical-align:middle}
table.share_status.dashboard{margin:0;border:1px solid #606e7f}
table.share_status.dashboard tbody{border:1px solid #606e7f}
table.share_status.dashboard tr:first-child>td{height:3.6rem;padding-top:12px;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:top}
table.share_status.dashboard tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tr.last>td{padding-bottom:20px}
table.share_status.dashboard tr{border:none}
table.share_status.dashboard tr>td{line-height:normal;padding-top:3px;padding-bottom:3px}
table.share_status.dashboard tr td:first-child{width:2%}
table.share_status.dashboard tr td:nth-child(2){width:97%}
table.share_status.dashboard tr td:last-child{width:1%}
table.share_status.dashboard td.vpn{font-size:1.1rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td.left{font-size:1.1rem;padding-left:24px}
table.share_status.dashboard td.right{font-size:1.1rem;text-align:right;padding-right:10px}
table.share_status.dashboard td i[class^="icon-"]{font-size:1.6rem;margin-right:8px}
table.share_status.dashboard td i[class^="icon-u-"]{font-size:inherit}
table.share_status.dashboard td i.vpn{font-size:inherit!important;cursor:pointer}
table.share_status.dashboard td span[class^="fa "]{font-size:1.6rem;margin-right:8px}
table.share_status.dashboard td i#mycase[class^="case-"]{font-size:128px}
table.share_status.dashboard td i#mycase[class^="fa "]{font-size:96px}
table.share_status.dashboard td img#mycase{width:auto;max-width:128px;height:auto;max-height:128px}
table.share_status.dashboard td i.chevron{float:right;font-size:1.2rem!important;margin-top:0;margin-right:2px;cursor:pointer;color:#606e7f}
table.share_status.dashboard td i.chevron.mt0{margin-top:18px}
table.share_status.dashboard td div.section{display:inline-block;vertical-align:top;margin-left:4px;font-size:1.2rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td div.section span{font-weight:normal;text-transform:none;letter-spacing:0;white-space:normal}
table.share_status.dashboard td span.info{float:right;margin-right:20px;font-size:1.2rem;font-weight:normal;text-transform:none;letter-spacing:0}
table.share_status.dashboard td span.info.title{font-weight:bold}
table.share_status.dashboard td span.load{display:inline-block;width:38px;text-align:right;margin-top:7px}
table.share_status.dashboard td span.load{display:inline-block;width:38px;text-align:right}
table.share_status.dashboard td span.finish{float:right;margin-right:24px}
table.share_status.dashboard.box1{table-layout:fixed}
table.share_status.dashboard.box1 tbody tr:first-child>td{padding-top:20px}
table.share_status.dashboard.box1 tbody tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard.box1 tr td:nth-child(2){min-width:31%}
table.share_status.dashboard.box1 tr td:nth-child(3){min-width:31%}
table.share_status.dashboard.box1 tr td:nth-child(4){min-width:31%}
table.share_status.dashboard.box1 tr td[colspan="2"]{min-width:62%}
table.share_status.dashboard.box1 tr td[colspan="3"]{min-width:93%}
table.share_status.dashboard.box1 tr.last>td{padding-bottom:20px}
table.share_status.dashboard.box1 td i[class^="icon-"]{font-size:32px;vertical-align:top}
table.share_status.dashboard.box1 td i[class^="fa "]{font-size:1rem;vertical-align:super}
table.share_status.dashboard.box1 td span.header{font-size:1.1rem!important;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard.box1 td span.text{white-space:normal}
table.share_status.dashboard.box2 thead tr:first-child td{border-bottom:1px solid #606e7f}
table.share_status.dashboard.box2 thead tr:first-child td:first-child{border-bottom:none}
table.share_status.dashboard.box2 thead tr:first-child td:last-child{border-bottom:none}
table.share_status.dashboard.box2 thead tr:nth-child(3)>td{font-size:1.1rem;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #606e7f}
table.share_status.dashboard.box2 thead tr:nth-child(3)>td:first-child{border-bottom:none}
table.share_status.dashboard.box2 thead tr:nth-child(3)>td:last-child{border-bottom:none}
table.share_status.dashboard.box2 tr td:nth-child(2){min-width:20%}
table.share_status.dashboard.box2 tr td:nth-child(3){min-width:18%}
table.share_status.dashboard.box2 tr td:nth-child(4){min-width:18%}
table.share_status.dashboard.box2 tr td:nth-child(5){min-width:18%}
table.share_status.dashboard.box2 tr td:nth-child(6){min-width:19%}
table.share_status.dashboard.box2 tr td[colspan="5"]{min-width:93%}
table.share_status.dashboard.box3 thead tr:first-child td{border-bottom:1px solid #606e7f}
table.share_status.dashboard.box3 thead tr:first-child td:first-child{border-bottom:none}
table.share_status.dashboard.box3 thead tr:first-child td:last-child{border-bottom:none}
table.share_status.dashboard.box3 thead tr:nth-child(2)>td{font-size:1.1rem;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #606e7f}
table.share_status.dashboard.box3 thead tr:nth-child(2)>td:first-child{border-bottom:none}
table.share_status.dashboard.box3 thead tr:nth-child(2)>td:last-child{border-bottom:none}
table.share_status.dashboard.box3 tbody tr>td{padding-top:10px;padding-bottom:10px}
table.share_status.dashboard.box3 tr td:nth-child(2){min-width:28%}
table.share_status.dashboard.box3 tr td:nth-child(3){min-width:43%}
table.share_status.dashboard.box3 tr td:nth-child(4){min-width:11%}
table.share_status.dashboard.box3 tr td:nth-child(5){min-width:11%}
table.share_status.dashboard.box3 tr td[colspan="4"]{min-width:93%}
@media (max-width:1680px){
table.share_status.dashboard.box1{width:45.4%;margin-left:0;margin-right:0;float:left}
table.share_status.dashboard.box2{width:53.4%;margin-left:0;margin-right:0;float:right}
table.share_status.dashboard.box3{width:53.4%;margin-left:0;margin-right:0;float:right}
}
@media (min-width:1681px){
table.share_status.dashboard.box1{width:28.6%;margin-left:0;margin-right:0;float:left}
table.share_status.dashboard.box2{width:34.6%;margin-left:0;margin-right:0;float:right}
table.share_status.dashboard.box3{width:34.6%;margin-left:20px;margin-right:0}
}
table.share_status.dashboard i.control{float:right;font-size:1.4rem!important;margin:0 3px 0 0;cursor:pointer;background-color:rgba(255,255,255,0.1);padding:2px}
tr.alert{color:#f0000c;background-color:#ff9e9e}
tr.warn{color:#e68a00;background-color:#feefb3}
tr.past{color:#d63301;background-color:#ffddd1}
@@ -278,7 +218,7 @@ i.padlock{margin-right:8px;cursor:default;vertical-align:middle}
i.nolock{visibility:hidden;margin-right:8px;vertical-align:middle}
i.lock{margin-left:8px;cursor:default;vertical-align:middle}
i.orb{font-size:1.1rem;margin:0 8px 0 3px}
i.mm{display:block;margin-left:45px;margin-bottom:-7px}
i.mm{display:block;margin-left:45px}
img.img,i.img{width:32px;height:32px;margin-right:10px}
img.icon{margin:-3px 4px 0 0}
img.list{width:auto;max-width:32px;height:32px}
+11 -63
View File
@@ -155,76 +155,24 @@ table.share_status tbody tr.warn{color:#e68a00}
table.share_status.fixed tr>td+td{min-width:39px;font-size:1.1rem;text-align:center;padding:0}
table.share_status.table{margin-top:36px}
table.share_status.table tr>td{width:50%}
table.share_status.dashboard{float:left;margin:6px 10px 14px 10px;border:1px solid #e3e3e3}
table.share_status.dashboard thead tr:last-child{border-bottom:none}
table.share_status.dashboard thead tr:first-child>td{background-color:transparent;height:4rem;line-height:4rem;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:middle}
table.share_status.dashboard tbody tr:nth-child(even){background-color:transparent}
table.share_status.dashboard tbody td{padding-top:5px;padding-bottom:5px}
table.share_status.dashboard tbody.parity_view tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tbody.array_view tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tbody.cache_view tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tbody.extra_view tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tbody.smb tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tbody.nfs tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tr>td:first-child{width:3.5%}
table.share_status.dashboard tr>td:last-child{width:3.5%}
table.share_status.dashboard tr>td{padding-left:4px}
table.share_status.dashboard tr>td.next{border-top:1px solid #e3e3e3}
table.share_status.dashboard td.top{vertical-align:top}
table.share_status.dashboard{margin:0;border:1px solid #e3e3e3}
table.share_status.dashboard tbody{border:1px solid #e3e3e3}
table.share_status.dashboard tr:first-child>td{height:3.6rem;padding-top:12px;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:top}
table.share_status.dashboard tr:nth-child(even){background-color:transparent}
table.share_status.dashboard tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tr.last>td{padding-bottom:20px}
table.share_status.dashboard tr td:first-child{width:2%}
table.share_status.dashboard tr td:nth-child(2){width:97%}
table.share_status.dashboard tr td:last-child{width:1%}
table.share_status.dashboard td{padding:3px 0}
table.share_status.dashboard td.vpn{font-size:1.1rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td.left{font-size:1.1rem;padding-left:24px}
table.share_status.dashboard td.right{font-size:1.1rem;text-align:right;padding-right:10px}
table.share_status.dashboard td i[class^="icon-"]{font-size:1.6rem;margin-right:8px}
table.share_status.dashboard td i[class^="icon-u-"]{font-size:inherit}
table.share_status.dashboard td i.vpn{font-size:inherit!important;cursor:pointer}
table.share_status.dashboard td span[class^="fa "]{font-size:1.6rem;margin-right:8px}
table.share_status.dashboard td i#mycase[class^="case-"]{font-size:128px}
table.share_status.dashboard td i#mycase[class^="fa "]{font-size:96px}
table.share_status.dashboard td img#mycase{width:auto;max-width:128px;height:auto;max-height:128px}
table.share_status.dashboard td i.chevron{float:right;font-size:1.2rem!important;margin-top:0;margin-right:2px;cursor:pointer;color:#1c1b1b}
table.share_status.dashboard td i.chevron.mt0{margin-top:14px}
table.share_status.dashboard td div.section{display:inline-block;vertical-align:top;margin-left:4px;font-size:1.2rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td div.section span{font-weight:normal;text-transform:none;letter-spacing:0;white-space:normal}
table.share_status.dashboard td span.info{float:right;margin-right:20px;font-size:1.2rem;font-weight:normal;text-transform:none;letter-spacing:0}
table.share_status.dashboard td span.info.title{font-weight:bold}
table.share_status.dashboard td span.load{display:inline-block;width:38px;text-align:right}
table.share_status.dashboard td span.finish{float:right;margin-right:24px}
table.share_status.dashboard.box1{table-layout:fixed}
table.share_status.dashboard.box1 tbody tr:first-child>td{padding-top:20px}
table.share_status.dashboard.box1 tbody tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard.box1 tr td:nth-child(2){min-width:31%}
table.share_status.dashboard.box1 tr td:nth-child(3){min-width:31%}
table.share_status.dashboard.box1 tr td:nth-child(4){min-width:31%}
table.share_status.dashboard.box1 tr td[colspan="2"]{min-width:62%}
table.share_status.dashboard.box1 tr td[colspan="3"]{min-width:93%}
table.share_status.dashboard.box1 tr.last>td{padding-bottom:20px}
table.share_status.dashboard.box1 td i[class^="icon-"]{font-size:32px;vertical-align:top}
table.share_status.dashboard.box1 td i[class^="fa "]{font-size:1rem;vertical-align:super}
table.share_status.dashboard.box1 td span.header{font-size:1.1rem!important;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard.box1 td span.text{white-space:normal}
table.share_status.dashboard.box2 thead tr:nth-child(3)>td{font-size:1.1rem;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard.box2 tr td:nth-child(2){min-width:20%}
table.share_status.dashboard.box2 tr td:nth-child(3){min-width:18%}
table.share_status.dashboard.box2 tr td:nth-child(4){min-width:18%}
table.share_status.dashboard.box2 tr td:nth-child(5){min-width:18%}
table.share_status.dashboard.box2 tr td:nth-child(6){min-width:19%}
table.share_status.dashboard.box2 tr td[colspan="5"]{min-width:93%}
table.share_status.dashboard.box3 thead tr:nth-child(2)>td{font-size:1.1rem;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard.box3 tr td:nth-child(2){min-width:28%}
table.share_status.dashboard.box3 tr td:nth-child(3){min-width:43%}
table.share_status.dashboard.box3 tr td:nth-child(4){min-width:11%}
table.share_status.dashboard.box3 tr td:nth-child(5){min-width:11%}
table.share_status.dashboard.box3 tr td[colspan="4"]{min-width:93%}
@media (max-width:1680px){
table.share_status.dashboard.box1{width:45.4%;margin-left:0;margin-right:0;float:left}
table.share_status.dashboard.box2{width:53.4%;margin-left:0;margin-right:0;float:right}
table.share_status.dashboard.box3{width:53.4%;margin-left:0;margin-right:0;float:right}
}
@media (min-width:1681px){
table.share_status.dashboard.box1{width:28.6%;margin-left:0;margin-right:0;float:left}
table.share_status.dashboard.box2{width:34.6%;margin-left:0;margin-right:0;float:right}
table.share_status.dashboard.box3{width:34.6%;margin-left:22px;margin-right:0}
}
table.share_status.dashboard i.control{float:right;font-size:1.4rem!important;margin:0 3px 0 0;cursor:pointer;background-color:rgba(0,0,0,0.1);padding:2px}
[name=arrayOps]{margin-top:12px}
span.error{color:#f0000c;background-color:#ff9e9e;display:block;width:100%}
span.warn{color:#e68a00;background-color:#feefb3;display:block;width:100%}