Place padlock icon left to text. Standardize padlock tooltip.

This commit is contained in:
bergware
2017-10-29 01:19:55 +02:00
parent 0eea338b9b
commit 5a34babfff
10 changed files with 73 additions and 58 deletions

View File

@@ -54,11 +54,11 @@ foreach ($file as $row) {
foreach ($rows as $row) $show |= strpos($disks[$tag.str_replace($tag,'',$row)]['fsType'],'luks:')!==false;
if ($show) foreach ($rows as $row) {
switch ($disks[$tag.str_replace($tag,'',$row)]['luksState']) {
case 0: $luks .= "<i class='padlock grey-text fa fa-unlock' title='Not encrypted'></i>"; break;
case 1: $luks .= "<i class='padlock green-text fa fa-unlock-alt' title='Encrypted and unlocked'></i>"; break;
case 2: $luks .= "<i class='padlock red-text fa fa-lock' title='Locked: missing encryption key'></i>"; break;
case 3: $luks .= "<i class='padlock red-text fa fa-lock' title='Locked: wrong encryption key'></i>"; break;
default: $luks .= "<i class='padlock red-text fa fa-lock' title='Locked: unknown error'></i>"; break;}
case 0: $luks = "<a class='info' onclick='return false'><i class='lock fa fa-unlock grey-text'></i><span>Not encrypted</span></a>"; break;
case 1: $luks = "<a class='info' onclick='return false'><i class='lock fa fa-unlock-alt green-text'></i><span>Encrypted and unlocked</span></a>"; break;
case 2: $luks = "<a class='info' onclick='return false'><i class='lock fa fa-lock red-text'></i><span>Locked: missing encryption key</span></a>"; break;
case 3: $luks = "<a class='info' onclick='return false'><i class='lock fa fa-lock red-text'></i><span>Locked: wrong encryption key</span></a>"; break;
default: $luks = "<a class='info' onclick='return false'><i class='lock fa fa-lock red-text'></i><span>Locked: unknown error</span></a>"; break;}
}
$list[] = [
'type' => $attr[0],

View File

@@ -97,10 +97,10 @@ case 'disk':
if (isset($disk['luksState'])) {
switch ($disk['luksState']) {
case 0: $luks = ""; break;
case 1: $luks = "<i class='green-text fa fa-unlock-alt'></i>"; break;
case 2: $luks = "<i class='red-text fa fa-lock'></i>"; break;
case 3: $luks = "<i class='red-text fa fa-lock'></i>"; break;
default: $luks = "<i class='red-text fa fa-lock'></i>"; break;
case 1: $luks = "<i class='fa fa-unlock-alt green-text'></i>"; break;
case 2: $luks = "<i class='fa fa-lock red-text'></i>"; break;
case 3: $luks = "<i class='fa fa-lock red-text'></i>"; break;
default: $luks = "<i class='fa fa-lock red-text'></i>"; break;
}
} else $luks = "";
my_insert($row1[$n],$luks);

View File

@@ -35,7 +35,7 @@ function in_parity_log($log,$timestamp) {
return !empty($line);
}
function device_info(&$disk,$online) {
global $path, $var;
global $path, $var, $show;
$name = $disk['name'];
$fancyname = $disk['type']=='New' ? $name : my_disk($name);
$type = $disk['type']=='Flash' || $disk['type']=='New' ? $disk['type'] : 'Device';
@@ -58,14 +58,14 @@ function device_info(&$disk,$online) {
}
$status = "$ctrl<a class='info nohand' onclick='return false'><img src='/webGui/images/{$disk['color']}.png' class='icon'><span>$help</span></a>";
$link = (strcmp($disk['status'], 'DISK_NP')!=0 || $disk['name']=="cache") ? "<a href=\"".htmlspecialchars("$path/$type?name=$name")."\">".$fancyname."</a>" : $fancyname;
switch ($disk['luksState']) {
case 0: $luks = ""; break;
case 1: $luks = "<i ".($online?"class='padlock fa fa-unlock-alt green-text' title='Encrypted and unlocked'":"class='padlock fa fa-lock grey-text' title='Encrypted and locked'")."></i>"; break;
case 2: $luks = "<i class='padlock fa fa-lock red-text' title='Locked: missing encryption key'></i>"; break;
case 3: $luks = "<i class='padlock fa fa-lock red-text' title='Locked: wrong encryption key'></i>"; break;
default: $luks = "<i class='padlock fa fa-lock red-text' title='Locked: unknown error'></i>"; break;
}
return $status.$link.$luks;
if ($show && $online) switch ($disk['luksState']) {
case 0: $luks = "<i class='nolock fa fa-lock'></i>"; break;
case 1: $luks = "<a class='info' onclick='return false'><i class='padlock fa fa-unlock-alt green-text'></i><span>Encrypted and unlocked</span></a>"; break;
case 2: $luks = "<a class='info' onclick='return false'><i class='padlock fa fa-lock red-text'></i><span>Locked: missing encryption key</span></a>"; break;
case 3: $luks = "<a class='info' onclick='return false'><i class='padlock fa fa-lock red-text'></i><span>Locked: wrong encryption key</span></a>"; break;
default: $luks = "<a class='info' onclick='return false'><i class='padlock fa fa-lock red-text'></i><span>Locked: unknown error</span></a>"; break;
} else $luks = '';
return $status.$luks.$link;
}
function device_browse(&$disk) {
global $path;
@@ -302,8 +302,10 @@ function cache_slots() {
$out .= "</select></form>";
return $out;
}
$show = false;
switch ($_POST['device']) {
case 'array':
foreach ($disks as $disk) if ($disk['type']=='Data') $show |= strpos($disk['fsType'],'luks:')!==false;
if ($var['fsState']=='Stopped') {
foreach ($disks as $disk) {if ($disk['type']=='Parity') array_offline($disk);}
echo "<tr class='tr_last'><td style='height:12px' colspan='11'></td></tr>";
@@ -330,6 +332,7 @@ case 'flash':
echo "</tr>";
break;
case 'cache':
foreach ($disks as $disk) if ($disk['type']=='Cache') $show |= strpos($disk['fsType'],'luks:')!==false;
if ($var['fsState']=='Stopped') {
foreach ($disks as $disk) {if ($disk['type']=='Cache') array_offline($disk);}
echo "<tr class='tr_last'><td><img src='/webGui/images/sum.png' class='icon'>Slots:</td><td colspan='9'>".cache_slots()."</td><td></td></tr>";

View File

@@ -46,8 +46,12 @@ function shareInclude($name) {
return !$include || substr($name,0,4)!='disk' || strpos("$include,", "$name,")!==false;
}
// Compute all disk shares
if ($compute=='yes') foreach ($disks as $name => $disk) if ($disk['exportable']=='yes') exec("webGui/scripts/disk_size ".escapeshellarg($name)." ssz2");
// Compute all disk shares & check encryption
$show = false;
foreach ($disks as $name => $disk) {
if ($compute=='yes' && $disk['exportable']=='yes') exec("webGui/scripts/disk_size ".escapeshellarg($name)." ssz2");
if (strstr('Data,Cache',$disk['type'])) $show |= strpos($disk['fsType'],'luks:')!==false;
}
// global shares include/exclude
$myDisks = array_filter(array_diff(array_keys($disks), explode(',',$var['shareUserExclude'])), 'globalInclude');
@@ -62,23 +66,21 @@ else
// Build table
$row = 0;
foreach ($disks as $name => $disk) {
if ($disk['type']=='Flash') continue;
if ($disk['fsColor']=='grey-off') continue;
if ($disk['exportable']=='no') continue;
if (!strstr('Data,Cache',$disk['type']) || $disk['fsColor']=='grey-off' || $disk['exportable']=='no') continue;
$row++;
$ball = "/webGui/images/{$disk['fsColor']}.png";
switch ($disk['fsColor']) {
case 'green-on': $help = 'All files protected'; break;
case 'yellow-on': $help = 'All files unprotected'; break;
}
switch ($disk['luksState']) {
case 0: $luks = ""; break;
case 1: $luks = "<i class='padlock green-text fa fa-unlock-alt' title='All files in share encrypted'></i>"; break;
case 2: $luks = "<i class='padlock orange-text fa fa-unlock-alt' title='Some files in share unencrypted'></i>"; break;
default: $luks = ""; break;
}
if ($show) switch ($disk['luksState']) {
case 0: $luks = "<i class='nolock fa fa-lock'></i>"; break;
case 1: $luks = "<a class='info' onclick='return false'><i class='padlock fa fa-unlock-alt green-text'></i><span>All files encrypted</span></a>"; break;
case 2: $luks = "<a class='info' onclick='return false'><i class='padlock fa fa-unlock-alt orange-text'></i><span>Some or all files unencrypted</span></a>"; break;
default: $luks = "<a class='info' onclick='return false'><i class='padlock fa fa-lock red-text'></i><span>Unknown encryption state'</span></a>"; break;
} else $luks = "";
echo "<tr>";
echo "<td><a class='info nohand' onclick='return false'><img src='$ball' class='icon'><span style='left:18px'>$help</span></a><a href='$path/Disk?name=$name' onclick=\"$.cookie('one','tab1',{path:'/'})\">$name</a>$luks</td>";
echo "<td><a class='info nohand' onclick='return false'><img src='$ball' class='icon'><span style='left:18px'>$help</span></a>$luks<a href='$path/Disk?name=$name' onclick=\"$.cookie('one','tab1',{path:'/'})\">$name</a></td>";
echo "<td>{$disk['comment']}</td>";
echo "<td>".disk_share_settings($var['shareSMBEnabled'], $sec[$name])."</td>";
echo "<td>".disk_share_settings($var['shareNFSEnabled'], $sec_nfs[$name])."</td>";

View File

@@ -53,8 +53,12 @@ function shareInclude($name) {
return !$include || substr($name,0,4)!='disk' || strpos("$include,", "$name,")!==false;
}
// Compute all user shares
if ($compute=='yes') foreach ($shares as $name => $share) exec("webGui/scripts/share_size ".escapeshellarg($name)." ssz1");
// Compute all user shares & check encryption
$show = false;
foreach ($shares as $name => $share) {
if ($compute=='yes') exec("webGui/scripts/share_size ".escapeshellarg($name)." ssz1");
$show |= $share['luksStatus']>0;
}
// global shares include/exclude
$myDisks = array_filter(array_diff(array_keys($disks), explode(',',$var['shareUserExclude'])), 'globalInclude');
@@ -75,14 +79,14 @@ foreach ($shares as $name => $share) {
case 'green-on': $help = 'All files protected'; break;
case 'yellow-on': $help = 'Some or all files unprotected'; break;
}
switch ($share['luksStatus']) {
case 0: $luks = ""; break;
case 1: $luks = "<i class='padlock green-text fa fa-unlock-alt' title='All files in share encrypted'></i>"; break;
case 2: $luks = "<i class='padlock orange-text fa fa-unlock-alt' title='Some files in share unencrypted'></i>"; break;
default: $luks = ""; break;
}
if ($show) switch ($share['luksStatus']) {
case 0: $luks = "<i class='nolock fa fa-lock'></i>"; break;
case 1: $luks = "<a class='info' onclick='return false'><i class='padlock fa fa-unlock-alt green-text'></i><span>All files encrypted</span></a>"; break;
case 2: $luks = "<a class='info' onclick='return false'><i class='padlock fa fa-unlock-alt orange-text'></i><span>Some or all files unencrypted</span></a>"; break;
default: $luks = "<a class='info' onclick='return false'><i class='padlock fa fa-lock red-text'></i><span>Unknown encryption state'</span></a>"; break;
} else $luks = "";
echo "<tr>";
echo "<td><a class='info nohand' onclick='return false'><img src='$ball' class='icon'><span style='left:18px'>$help</span></a><a href='$path/Share?name=".urlencode($name)."' onclick=\"$.cookie('one','tab1',{path:'/'})\">$name</a>$luks</td>";
echo "<td><a class='info nohand' onclick='return false'><img src='$ball' class='icon'><span style='left:18px'>$help</span></a>$luks<a href='$path/Share?name=".urlencode($name)."' onclick=\"$.cookie('one','tab1',{path:'/'})\">$name</a></td>";
echo "<td>{$share['comment']}</td>";
echo "<td>".user_share_settings($var['shareSMBEnabled'], $sec[$name])."</td>";
echo "<td>".user_share_settings($var['shareNFSEnabled'], $sec_nfs[$name])."</td>";

File diff suppressed because one or more lines are too long

View File

@@ -9,9 +9,9 @@ a:hover{text-decoration:underline}
a{color:#486DBA;text-decoration:none}
a.none{color:#606E7F}
a.img{text-decoration:none;border:none}
a.info{position:relative;z-index:1}
a.info span{display:none}
a.info:hover span{display:block;white-space:nowrap;font-variant:small-caps;position:absolute;left:8px;color:#4F4F4F;font-size:13px;line-height:20px;padding:5px 8px;border:1px solid #42453E;border-radius:3px;background-color:#EDEAEF}
a.info{position:relative}
a.info span{display:none;white-space:nowrap;font-variant:small-caps;position:absolute;top:16px;left:12px;color:#4F4F4F;font-size:13px;line-height:20px;padding:5px 8px;border:1px solid #42453E;border-radius:3px;background-color:#EDEAEF}
a.info:hover span{display:block;z-index:1}
a.nohand{cursor:default}
i.spacing{margin-left:0;margin-right:10px}
i.icon{margin-right:4px}
@@ -223,7 +223,9 @@ span.three{margin-left:-20px}
span.tub{margin-right:8px;font-size:24px;cursor:pointer}
span.score{font-size:11px;color:#FFFFFF;position:absolute}
span#dropbox{background:none;line-height:60px;margin-right:20px}
i.padlock{margin-left:8px;cursor:help}
i.padlock{margin-right:8px;cursor:default}
i.nolock{visibility:hidden;margin-right:8px}
i.lock{margin-left:8px;cursor:default}
img.icon{margin:-3px 4px 0 0}
img.list{width:auto;max-width:48px;height:48px}
div.content{position:absolute;top:0;left:0;width:100%;padding-bottom:30px;z-index:-1;clear:both}

View File

@@ -9,10 +9,9 @@ a:hover{text-decoration:underline}
a{color:#486DBA;text-decoration:none}
a.none{color:#808080}
a.img{text-decoration:none;border:none}
a.info{position:relative;z-index:1}
a.info span{display:none}
a.info:hover span{display:block;white-space:nowrap;font-variant:small-caps;position:absolute;left:8px;font-size:11px;line-height:20px;color:#FFFFFF;padding:5px 8px;border:1px solid rgba(255,255,255,0.25);border-radius:3px;background-color:rgba(25,25,25,0.95);box-shadow:0 0 3px #505050}
a.info:hover span.left{left:-182px}
a.info{position:relative}
a.info span{display:none;white-space:nowrap;font-variant:small-caps;position:absolute;top:16px;left:12px;font-size:12px;line-height:20px;color:#FFFFFF;padding:5px 8px;border:1px solid rgba(255,255,255,0.25);border-radius:3px;background-color:rgba(25,25,25,0.95);box-shadow:0 0 3px #505050}
a.info:hover span{display:block;z-index:1}
a.nohand{cursor:default}
i.spacing{margin-left:-6px}
i.icon{margin-right:4px}
@@ -201,7 +200,9 @@ span.two{margin-left:-17px}
span.three{margin-left:-20px}
span.tub{margin-right:8px;font-size:24px;cursor:pointer}
span.score{font-size:11px;color:#F0F0F0;position:absolute}
i.padlock{margin-left:8px;cursor:help}
i.padlock{margin-right:8px;cursor:default}
i.nolock{visibility:hidden;margin-right:8px}
i.lock{margin-left:8px;cursor:default}
img.icon{margin:-3px 4px 0 0}
img.list{width:auto;max-width:48px;height:48px}
div.content{position:absolute;top:45px;left:0;width:100%;padding-bottom:30px;z-index:-1;clear:both}

View File

@@ -9,9 +9,9 @@ a:hover{text-decoration:underline}
a{color:#486DBA;text-decoration:none}
a.none{color:#606E7F}
a.img{text-decoration:none;border:none}
a.info{position:relative;z-index:1}
a.info span{display:none}
a.info:hover span{display:block;white-space:nowrap;font-variant:small-caps;position:absolute;left:8px;color:#B0B0B0;font-size:13px;line-height:20px;padding:5px 8px;border:1px solid #42453E;border-radius:3px;background-color:#121510}
a.info{position:relative}
a.info span{display:none;white-space:nowrap;font-variant:small-caps;position:absolute;top:16px;left:10px;color:#B0B0B0;font-size:13px;line-height:20px;padding:5px 8px;border:1px solid #42453E;border-radius:3px;background-color:#121510}
a.info:hover span{display:block;z-index:1}
a.nohand{cursor:default}
i.spacing{margin-left:0;margin-right:10px}
i.icon{margin-right:4px}
@@ -223,7 +223,9 @@ span.three{margin-left:-20px}
span.tub{margin-right:8px;font-size:24px;cursor:pointer}
span.score{font-size:11px;color:#FFFFFF;position:absolute}
span#dropbox{background:none;line-height:60px;margin-right:20px}
i.padlock{margin-left:8px;cursor:help}
i.padlock{margin-right:8px;cursor:default}
i.nolock{visibility:hidden;margin-right:8px}
i.lock{margin-left:8px;cursor:default}
img.icon{margin:-3px 4px 0 0}
img.list{width:auto;max-width:48px;height:48px}
div.content{position:absolute;top:0;left:0;width:100%;padding-bottom:30px;z-index:-1;clear:both}

View File

@@ -9,10 +9,9 @@ a:hover{text-decoration:underline}
a{color:#00529B;text-decoration:none}
a.none{color:#303030}
a.img{text-decoration:none;border:none}
a.info{position:relative;z-index:1}
a.info span{display:none}
a.info:hover span{display:block;white-space:nowrap;font-variant:small-caps;position:absolute;left:8px;font-size:11px;line-height:20px;color:#FFFFFF;padding:5px 8px;border:1px solid rgba(255,255,255,0.25);border-radius:3px;background-color:rgba(25,25,25,0.95);box-shadow:0 0 3px #303030}
a.info:hover span.left{left:-182px}
a.info{position:relative}
a.info span{display:none;white-space:nowrap;font-variant:small-caps;position:absolute;top:16px;left:12px;font-size:12px;line-height:20px;color:#FFFFFF;padding:5px 8px;border:1px solid rgba(255,255,255,0.25);border-radius:3px;background-color:rgba(25,25,25,0.95);box-shadow:0 0 3px #303030}
a.info:hover span{display:block;z-index:1}
a.nohand{cursor:default}
i.spacing{margin-left:-6px}
i.icon{margin-right:4px}
@@ -201,7 +200,9 @@ span.two{margin-left:-17px}
span.three{margin-left:-20px}
span.tub{margin-right:8px;font-size:24px;cursor:pointer}
span.score{font-size:11px;color:#F0F0F0;position:absolute}
i.padlock{margin-left:8px;cursor:help}
i.padlock{margin-right:8px;cursor:default}
i.nolock{visibility:hidden;margin-right:8px}
i.lock{margin-left:8px;cursor:default}
img.icon{margin:-3px 4px 0 0}
img.list{width:auto;max-width:48px;height:48px}
div.content{position:absolute;top:45px;left:0;width:100%;padding-bottom:30px;z-index:-1;clear:both}