mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-02-18 00:17:39 +01:00
- Fix Docker update button staying disabled when settings API fails (#1114) - Remove AI banner warning on every page load when AI is intentionally disabled (#1134) - Use auto-precision for formatBytes in Proxmox tab display (#1116)
This commit is contained in:
@@ -708,6 +708,8 @@ function App() {
|
||||
layoutStore.loadFromServer();
|
||||
} catch (error) {
|
||||
logger.error('Failed to load theme from server', error);
|
||||
// Ensure settings are marked as loaded so UI doesn't stay in loading state
|
||||
markSystemSettingsLoadedWithDefaults();
|
||||
}
|
||||
} else {
|
||||
// We have a local preference, just mark that we've checked the server
|
||||
|
||||
@@ -194,7 +194,8 @@ export const AIChat: Component<AIChatProps> = (props) => {
|
||||
try {
|
||||
const status = await AIChatAPI.getStatus();
|
||||
if (!status.running) {
|
||||
notificationStore.warning('AI is not running');
|
||||
// AI not running - silently return, don't show warning on every page load
|
||||
// Users who intentionally disabled AI don't need a notification about it
|
||||
return;
|
||||
}
|
||||
const sessionList = await AIChatAPI.listSessions();
|
||||
|
||||
@@ -200,12 +200,12 @@ export const NodeSummaryTable: Component<NodeSummaryTableProps> = (props) => {
|
||||
if (isPVE(item)) {
|
||||
const node = item;
|
||||
if (!node.disk) return undefined;
|
||||
return `${formatBytes(node.disk.used, 0)}/${formatBytes(node.disk.total, 0)}`;
|
||||
return `${formatBytes(node.disk.used)}/${formatBytes(node.disk.total)}`;
|
||||
}
|
||||
const pbs = item;
|
||||
if (!pbs.datastores || pbs.datastores.length === 0) return undefined;
|
||||
const totals = getPbsTotals(pbs);
|
||||
return `${formatBytes(totals.used, 0)}/${formatBytes(totals.total, 0)}`;
|
||||
return `${formatBytes(totals.used)}/${formatBytes(totals.total)}`;
|
||||
};
|
||||
|
||||
const getTemperatureValue = (item: TableItem) => {
|
||||
@@ -548,8 +548,8 @@ export const NodeSummaryTable: Component<NodeSummaryTableProps> = (props) => {
|
||||
<Show when={isPVEItem && online && node!.pendingUpdates !== undefined && node!.pendingUpdates > 0}>
|
||||
<span
|
||||
class={`text-[9px] px-1 py-0 rounded font-medium whitespace-nowrap ${(node!.pendingUpdates ?? 0) >= 10
|
||||
? 'bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400'
|
||||
: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400'
|
||||
? 'bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400'
|
||||
: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400'
|
||||
}`}
|
||||
title={`${node!.pendingUpdates} pending apt update${node!.pendingUpdates !== 1 ? 's' : ''}`}
|
||||
>
|
||||
@@ -609,7 +609,7 @@ export const NodeSummaryTable: Component<NodeSummaryTableProps> = (props) => {
|
||||
value={memoryPercentValue}
|
||||
type="memory"
|
||||
resourceId={metricsKey}
|
||||
sublabel={pbs!.memoryTotal ? `${formatBytes(pbs!.memoryUsed, 0)}/${formatBytes(pbs!.memoryTotal, 0)}` : undefined}
|
||||
sublabel={pbs!.memoryTotal ? `${formatBytes(pbs!.memoryUsed)}/${formatBytes(pbs!.memoryTotal)}` : undefined}
|
||||
isRunning={online}
|
||||
showMobile={false}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user