feat: refine mobile dashboard experience

This commit is contained in:
ajnart committed 2026-08-13 19:55:11 +02:00
1 parent 2e3dca3e87
commit 84db2f9d49
68 files changed
+1425 -1311

No files matched your search

+44 -90
View File
@@ -2338,12 +2338,6 @@
"noProjectSelected": "No project selected",
"runnerStatus": "Runner: {status}",
"updatedAt": "Updated {date}",
"projectId": "Project: {id}",
"sessionReceived": "Session received: {value}",
"sessionSent": "Session sent: {value}",
"sessionId": "Session: {id}",
"startedAt": "Started {date}",
"emptyItems": "No active or recent jobs in this snapshot",
"metric": {
"running": "Running",
"completed": "Done",
@@ -2745,7 +2739,6 @@
},
"advanced": {
"entityId": "Entity ID: {id}",
"lastChanged": "Changed {date}",
"lastUpdated": "Updated {date}",
"attribute": {
"unit": "Unit",
@@ -2774,9 +2767,7 @@
},
"advanced": {
"lastExecuted": "Last run at {time}",
"automationId": "Automation ID: {id}",
"ready": "Ready to run",
"noPermission": "No permission to run this automation"
"automationId": "Automation ID: {id}"
},
"status": {
"running": "Running automation",
@@ -2789,14 +2780,6 @@
"stockPrice": {
"name": "Stock Price",
"description": "Displays the current stock price of a company",
"advanced": {
"currentPrice": "Current price",
"previousClose": "Previous close",
"change": "Change",
"changePercentage": "Change (%)",
"minimum": "Minimum",
"maximum": "Maximum"
},
"option": {
"stock": {
"label": "Stock symbol"
@@ -2985,11 +2968,6 @@
},
"title": "Indexer manager",
"testAll": "Test all",
"status": {
"healthy": "Healthy",
"unhealthy": "Unhealthy",
"disabled": "Disabled"
},
"error": {
"internalServerError": "Failed to fetch indexers status"
}
@@ -3047,10 +3025,7 @@
"minutes": "{count} minutes",
"used": "Used",
"available": "Available",
"lastSeen": "Last status update: {lastSeen}",
"updatesAvailable": "{count, plural, one {# update available} other {# updates available}}",
"rebootRequired": "Reboot required",
"rebootNotRequired": "No reboot required"
"lastSeen": "Last status update: {lastSeen}"
},
"memory": {},
"error": {
@@ -3169,13 +3144,7 @@
},
"server": {
"buildServer": "Build",
"resourceCounts": "{applications, plural, one {# app} other {# apps}} / {services, plural, one {# service} other {# services}}",
"reachability": "Reachability",
"usability": "Usability"
},
"source": {
"url": "Source: {url}",
"unavailable": "{source}: unavailable"
"resourceCounts": "{applications, plural, one {# app} other {# apps}} / {services, plural, one {# service} other {# services}}"
},
"instances": {
"title": "Instances"
@@ -3194,11 +3163,7 @@
"restarting": "Restarting",
"unknown": "Unknown",
"online": "Online",
"offline": "Offline",
"reachable": "Reachable",
"unreachable": "Unreachable",
"usable": "Usable",
"unusable": "Unusable"
"offline": "Offline"
}
},
"vpn": {
@@ -3734,9 +3699,6 @@
"movies": "Missing Movies",
"providers": "Provider Issues",
"status": "Health Issues",
"sonarrSignalr": "Sonarr SignalR",
"radarrSignalr": "Radarr SignalR",
"announcements": "Announcements",
"option": {
"showMissingEpisodes": {
"label": "Show missing episodes",
@@ -4335,16 +4297,6 @@
},
"networkControllerSummary": {
"option": {},
"advanced": {
"updated": "Updated",
"metric": {
"latency": "Latency",
"ping": "Ping",
"uptime": "Uptime",
"users": "Users",
"guests": "Guests"
}
},
"card": {
"vpn": {
"countConnected": "{count, plural, one {# connected} other {# connected}}",
@@ -4363,9 +4315,6 @@
"description": "Displays the summary of a Network Controller (like UniFi Controller)"
},
"networkControllerStatus": {
"advanced": {
"updatedAt": "Updated {date}"
},
"card": {
"variants": {
"wired": {
@@ -4497,8 +4446,7 @@
"range": {
"twelveHours": "12h",
"oneDay": "24h",
"all": "All",
"lastThirty": "Last 30"
"all": "All"
}
},
"uptimeKuma": {
@@ -4713,9 +4661,7 @@
}
},
"status": {
"unhealthy": "Unhealthy",
"smart": "SMART",
"free": "{percentage}% free"
"unhealthy": "Unhealthy"
}
},
"customApi": {
@@ -4836,12 +4782,6 @@
},
"column": {
"system": "System",
"source": "Source",
"hostname": "Hostname",
"os": "OS",
"cpuModel": "CPU model",
"cores": "Cores",
"memoryTotal": "Memory total",
"cpu": "CPU",
"memory": "Memory",
"disk": "Disk",
@@ -4902,14 +4842,6 @@
"empty": {
"noSystems": "No systems found"
},
"metadata": {
"hostname": "Hostname",
"os": "OS",
"cpuModel": "CPU model",
"cores": "Cores",
"memoryTotal": "Memory total",
"source": "Source"
},
"metric": {
"cpu": "CPU",
"memory": "Memory",
@@ -5061,18 +4993,6 @@
}
},
"board": {
"mobile": {
"actions": "Widget actions",
"details": "Open widget details",
"empty": {
"title": "This board is empty",
"description": "Add and arrange items from a desktop or larger screen. Mobile boards use the desktop order automatically."
},
"more": "More",
"profile": "Profile and account",
"sections": "Jump to section",
"currentBoard": "Current board"
},
"action": {
"addContent": "Add board content",
"settings": "Board settings",
@@ -5312,12 +5232,46 @@
},
"layout": {
"title": "Layout",
"desktop": {
"title": "Desktop layout",
"description": "Configure the layout used on desktop and larger screens."
"responsive": {
"title": "Responsive layouts",
"description": "Each layout keeps its own widget positions and sizes. Mobile and Base are always available; add custom layouts for widths in between.",
"action": {
"add": "Add layout"
}
},
"role": {
"mobile": "Mobile",
"base": "Base",
"custom": "Custom"
},
"custom": {
"defaultName": "Custom layout"
},
"mobile": {
"description": "On mobile, items are automatically arranged in two columns and cannot be moved or resized. Named categories and dynamic sections appear as headings, never as layout containers."
"breakpointDescription": "Mobile is always used from 0px until the next layout breakpoint."
},
"preview": {
"columns": "columns",
"empty": "This layout is empty",
"dynamicSection": "Dynamic section",
"editorWidthLabel": "{layoutName} · {width}px"
},
"reset": {
"action": "Reset from Base",
"confirm": {
"title": "Reset {layoutName}?",
"message": "This replaces every saved position and size in this layout with a new layout generated from Base. This cannot be undone."
}
},
"edit": {
"action": "Edit layout",
"saveAndEdit": "Save and edit",
"save": "Save layout",
"cancel": {
"action": "Cancel layout editing",
"title": "Discard layout changes?",
"message": "Your unsaved changes to this layout will be discarded."
}
}
},
"background": {