Skip to content

Commit 1a1d535

Browse files
Merge pull request #43 from move-elevator/feat/disk-space-status-icon
feat: show disk space as a status icon with hover details
2 parents 81bab84 + c86b12d commit 1a1d535

2 files changed

Lines changed: 33 additions & 7 deletions

File tree

deployer/feature/dist/index/assets/css/style.css

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,25 @@ progress {
7272
height: .125rem;
7373
}
7474
.disk-space {
75-
padding: .25rem 1rem 0;
75+
position: fixed;
76+
top: .75rem;
77+
left: .75rem;
78+
z-index: 10;
79+
}
80+
.disk-space-icon {
81+
display: flex;
82+
align-items: center;
83+
justify-content: center;
84+
width: 2rem;
85+
height: 2rem;
86+
padding: 0;
87+
margin: 0;
88+
border: 0;
89+
border-radius: 50%;
90+
cursor: pointer;
7691
}
77-
.disk-space small {
78-
display: block;
79-
color: var(--muted-color, #666);
92+
.disk-space-icon svg {
93+
pointer-events: none;
8094
}
8195
h3 {
8296
width: max-content;

deployer/feature/dist/index/src/Service/TemplateService.php

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,26 @@ public function renderEntries(array $entries): string
4343
public function renderDiskSpace(IOService $ioService): string
4444
{
4545
$status = $ioService->getDiskSpaceStatus();
46-
$warning = $status !== 'green' ? " <span class='status $status' data-tooltip='Disk usage is above " . $ioService->getDiskSpaceThreshold() . "%'>Low disk space</span>" : '';
46+
$info = $ioService->getDiskFullSpacePercent() . "% used (" . $ioService->getDiskTotalFree() . " GB free of " . $ioService->getDiskTotalSpace() . " GB)";
47+
if ($status !== 'green') {
48+
$info .= ". Low disk space, above " . $ioService->getDiskSpaceThreshold() . "%";
49+
}
50+
$info = htmlspecialchars($info, ENT_QUOTES);
4751

4852
return "<div class='disk-space'>" .
49-
"<progress style='color:" . $ioService->getDiskSpaceColor() . "' value='" . $ioService->getDiskFullSpacePercent() . "' max='100'></progress>" .
50-
"<small>" . $ioService->getDiskFullSpacePercent() . "% used (" . $ioService->getDiskTotalFree() . " GB free of " . $ioService->getDiskTotalSpace() . " GB)$warning</small>" .
53+
"<button type='button' class='disk-space-icon' style='background-color:" . $ioService->getDiskSpaceColor() . "' data-tooltip='$info' aria-label='Disk space: $info'>" .
54+
$this->getDiskIcon() .
55+
"</button>" .
5156
"</div>";
5257
}
5358

59+
private function getDiskIcon(): string
60+
{
61+
return "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16'>" .
62+
"<path fill='#fff' d='M12,3C7.58,3,4,4.79,4,7v10c0,2.21,3.58,4,8,4s8-1.79,8-4V7C20,4.79,16.42,3,12,3z M12,5c3.87,0,6,1.5,6,2c0,0.5-2.13,2-6,2S6,7.5,6,7C6,6.5,8.13,5,12,5z M18,17c0,0.5-2.13,2-6,2s-6-1.5-6-2v-2.35C7.61,15.5,9.72,16,12,16s4.39-0.5,6-1.35V17z M18,12c0,0.5-2.13,2-6,2s-6-1.5-6-2V9.65C7.61,10.5,9.72,11,12,11s4.39-0.5,6-1.35V12z'/>" .
63+
"</svg>";
64+
}
65+
5466
/**
5567
* @param string $links
5668
* @return string

0 commit comments

Comments
 (0)