99f1655d04
CI / unit (8.2) (push) Has been cancelled
CI / unit (8.3) (push) Has been cancelled
CI / unit (8.4) (push) Has been cancelled
CI / psalm (push) Has been cancelled
CI / frontend (push) Has been cancelled
CI / integration (mariadb, 32) (push) Has been cancelled
CI / integration (mariadb, 33) (push) Has been cancelled
CI / integration (mariadb, 34) (push) Has been cancelled
CI / integration (mariadb, 35) (push) Has been cancelled
CI / integration (pgsql, 32) (push) Has been cancelled
CI / integration (pgsql, 33) (push) Has been cancelled
CI / integration (pgsql, 34) (push) Has been cancelled
CI / integration (pgsql, 35) (push) Has been cancelled
CI / integration (sqlite, 32) (push) Has been cancelled
CI / integration (sqlite, 33) (push) Has been cancelled
CI / integration (sqlite, 34) (push) Has been cancelled
CI / integration (sqlite, 35) (push) Has been cancelled
CI / integration-targets (push) Has been cancelled
CI / integration-user (32) (push) Has been cancelled
CI / integration-user (33) (push) Has been cancelled
CI / integration-user (34) (push) Has been cancelled
CI / integration-user (35) (push) Has been cancelled
CI / integration-full-restore (push) Has been cancelled
- A location that a passphrase change could not reach gets it at its next backup - A key from before 1.1.0 is never replaced as an unused one - An unreadable settings file on a location is told apart from a missing one - A schedule is shown and saved in the zone it was saved in - Saving an unchanged schedule keeps its moment; --timezone needs a schedule - Schedule coverage uses the time the backup began reading its data - Tests: catch-up scenario, upgrade test restores the new file, autumn clock change
29 lines
1006 B
JavaScript
29 lines
1006 B
JavaScript
// SPDX-FileCopyrightText: 2026 Dillard Blom
|
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
import { getCanonicalLocale } from '@nextcloud/l10n'
|
|
|
|
// The locale of the user's Nextcloud settings (Personal info > Locale), not the browser's:
|
|
// a browser set to English would otherwise show 4:00 PM to someone with a 24-hour locale.
|
|
const locale = getCanonicalLocale()
|
|
|
|
// A number is a unix timestamp in seconds, a string an ISO 8601 date (snapshot times).
|
|
const toDate = (value) => typeof value === 'number' ? new Date(value * 1000) : new Date(value)
|
|
|
|
export const formatDateTime = (value) => toDate(value).toLocaleString(locale)
|
|
|
|
export const formatDate = (value) => toDate(value).toLocaleDateString(locale)
|
|
|
|
export function formatSize(bytes) {
|
|
if (bytes === null || bytes === undefined) {
|
|
return ''
|
|
}
|
|
const units = ['B', 'KiB', 'MiB', 'GiB', 'TiB']
|
|
let i = 0
|
|
let b = bytes
|
|
while (b >= 1024 && i < units.length - 1) {
|
|
b /= 1024
|
|
i++
|
|
}
|
|
return i === 0 ? `${b} B` : `${b.toFixed(1)} ${units[i]}`
|
|
}
|