0.10.2-4 Layout

This commit is contained in:
2026-03-16 07:25:07 +00:00
parent fbd439f318
commit 30b066ece8
8 changed files with 33 additions and 35 deletions

View File

@@ -1,12 +1,12 @@
{ {
"name": "ripster-backend", "name": "ripster-backend",
"version": "0.10.2-3", "version": "0.10.2-4",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ripster-backend", "name": "ripster-backend",
"version": "0.10.2-3", "version": "0.10.2-4",
"dependencies": { "dependencies": {
"archiver": "^7.0.1", "archiver": "^7.0.1",
"cors": "^2.8.5", "cors": "^2.8.5",

View File

@@ -1,6 +1,6 @@
{ {
"name": "ripster-backend", "name": "ripster-backend",
"version": "0.10.2-3", "version": "0.10.2-4",
"private": true, "private": true,
"type": "commonjs", "type": "commonjs",
"scripts": { "scripts": {

View File

@@ -1,12 +1,12 @@
{ {
"name": "ripster-frontend", "name": "ripster-frontend",
"version": "0.10.2-3", "version": "0.10.2-4",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ripster-frontend", "name": "ripster-frontend",
"version": "0.10.2-3", "version": "0.10.2-4",
"dependencies": { "dependencies": {
"primeicons": "^7.0.0", "primeicons": "^7.0.0",
"primereact": "^10.9.2", "primereact": "^10.9.2",

View File

@@ -1,6 +1,6 @@
{ {
"name": "ripster-frontend", "name": "ripster-frontend",
"version": "0.10.2-3", "version": "0.10.2-4",
"private": true, "private": true,
"type": "module", "type": "module",
"scripts": { "scripts": {

View File

@@ -2177,7 +2177,7 @@ export default function DashboardPage({
</section> </section>
<section className="hardware-monitor-block"> <section className="hardware-monitor-block">
<h4>Freier Speicher in Pfaden</h4> <h4>Freier Speicher</h4>
<div className="hardware-storage-list"> <div className="hardware-storage-list">
{storageGroups.map((group) => { {storageGroups.map((group) => {
const rep = group.representative; const rep = group.representative;
@@ -2188,24 +2188,24 @@ export default function DashboardPage({
: 0; : 0;
const hasError = group.entries.every((e) => e?.error); const hasError = group.entries.every((e) => e?.error);
const groupKey = group.mountPoint || group.entries.map((e) => e?.key).join('-'); const groupKey = group.mountPoint || group.entries.map((e) => e?.key).join('-');
const labels = group.entries.map((e) => e?.label || e?.key || 'Pfad').join(' · ');
return ( return (
<div <div
key={`storage-group-${groupKey}`} key={`storage-group-${groupKey}`}
className={`hardware-storage-item compact${hasError ? ' has-error' : ''}`} className={`hardware-storage-item compact${hasError ? ' has-error' : ''}`}
> >
<div className="hardware-storage-head"> <small className="hardware-storage-group-label">{labels}</small>
<strong>{group.entries.map((e) => e?.label || e?.key || 'Pfad').join(' · ')}</strong>
<span className={`hardware-storage-percent tone-${tone}`}>
{hasError ? 'Fehler' : formatPercent(rep?.usagePercent)}
</span>
</div>
{hasError ? ( {hasError ? (
<small className="error-text">{rep?.error}</small> <small className="error-text">{rep?.error}</small>
) : ( ) : (
<> <>
<div className={`hardware-storage-bar tone-${tone}`}> <div className="hardware-storage-bar-row">
<ProgressBar value={barValue} showValue={false} /> <div className={`hardware-storage-bar tone-${tone}`}>
<ProgressBar value={barValue} showValue={false} />
</div>
<span className={`hardware-storage-percent tone-${tone}`}>
{formatPercent(rep?.usagePercent)}
</span>
</div> </div>
<div className="hardware-storage-summary"> <div className="hardware-storage-summary">
<small>Frei: {formatBytes(rep?.freeBytes)}</small> <small>Frei: {formatBytes(rep?.freeBytes)}</small>
@@ -2213,21 +2213,6 @@ export default function DashboardPage({
</div> </div>
</> </>
)} )}
{group.entries.map((entry) => (
<div key={entry?.key} className="hardware-storage-paths">
<small className="hardware-storage-label-tag">{entry?.label || entry?.key}:</small>
<small className="hardware-storage-path" title={entry?.path || '-'}>
{entry?.path || '-'}
</small>
{entry?.queryPath && entry.queryPath !== entry.path ? (
<small className="hardware-storage-path" title={entry.queryPath}>
(Parent: {entry.queryPath})
</small>
) : null}
{entry?.note ? <small className="hardware-storage-path">{entry.note}</small> : null}
</div>
))}
</div> </div>
); );
})} })}

View File

@@ -392,7 +392,7 @@ body {
.hardware-monitor-grid { .hardware-monitor-grid {
display: grid; display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-columns: minmax(0, 1fr);
gap: 0.75rem; gap: 0.75rem;
align-items: stretch; align-items: stretch;
} }
@@ -554,6 +554,19 @@ body {
gap: 0.3rem; gap: 0.3rem;
} }
.hardware-storage-group-label {
color: var(--rip-muted);
font-size: 0.75rem;
line-height: 1.3;
}
.hardware-storage-bar-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 0.5rem;
}
.hardware-storage-head { .hardware-storage-head {
display: grid; display: grid;
grid-template-columns: minmax(0, 1fr) auto; grid-template-columns: minmax(0, 1fr) auto;

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "ripster", "name": "ripster",
"version": "0.10.2-3", "version": "0.10.2-4",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ripster", "name": "ripster",
"version": "0.10.2-3", "version": "0.10.2-4",
"devDependencies": { "devDependencies": {
"concurrently": "^9.1.2" "concurrently": "^9.1.2"
} }

View File

@@ -1,7 +1,7 @@
{ {
"name": "ripster", "name": "ripster",
"private": true, "private": true,
"version": "0.10.2-3", "version": "0.10.2-4",
"scripts": { "scripts": {
"dev": "concurrently \"npm run dev --prefix backend\" \"npm run dev --prefix frontend\"", "dev": "concurrently \"npm run dev --prefix backend\" \"npm run dev --prefix frontend\"",
"dev:backend": "npm run dev --prefix backend", "dev:backend": "npm run dev --prefix backend",