284c5ff079
- New Settings editor: rename categories (emoji/color too), rename metrics, change unit and type, add/remove metrics, set step + record tracking, archive/unarchive, and permanently delete categories. - Settings now lists archived categories so they can be restored/deleted. - Backend: add DELETE /api/categories/:id (cascades metrics, entries, entry_values, plans, goals). - Bump StartOS package to 0.1.6:0; service worker cache to v6.
29 lines
1.7 KiB
TypeScript
29 lines
1.7 KiB
TypeScript
import { IMPOSSIBLE, utils, VersionInfo } from '@start9labs/start-sdk'
|
|
import { store } from '../fileModels/store'
|
|
|
|
export const current = VersionInfo.of({
|
|
version: '0.1.6:0',
|
|
releaseNotes: {
|
|
en_US: 'Full category management in Settings: rename categories and metrics, change units & type, add or remove metrics, and archive or permanently delete categories.',
|
|
es_ES: 'Gestión completa de categorías en Ajustes: renombra categorías y métricas, cambia unidades y tipo, añade o elimina métricas, y archiva o elimina categorías permanentemente.',
|
|
de_DE: 'Vollständige Kategorienverwaltung in den Einstellungen: Kategorien und Metriken umbenennen, Einheiten & Typ ändern, Metriken hinzufügen/entfernen sowie Kategorien archivieren oder endgültig löschen.',
|
|
pl_PL: 'Pełne zarządzanie kategoriami w Ustawieniach: zmiana nazw kategorii i metryk, zmiana jednostek i typu, dodawanie/usuwanie metryk oraz archiwizacja lub trwałe usuwanie kategorii.',
|
|
fr_FR: "Gestion complète des catégories dans les Réglages : renommer catégories et métriques, changer unités et type, ajouter ou supprimer des métriques, et archiver ou supprimer définitivement des catégories.",
|
|
},
|
|
migrations: {
|
|
up: async ({ effects }) => {
|
|
// Generate a random login password on first install so the app is never
|
|
// left on a known default. The user can change it via "Set Login Password".
|
|
const existing = await store.read().once()
|
|
if (!existing) {
|
|
const password = utils.getDefaultString({
|
|
charset: 'a-z,A-Z,2-9',
|
|
len: 16,
|
|
})
|
|
await store.write(effects, { password })
|
|
}
|
|
},
|
|
down: IMPOSSIBLE,
|
|
},
|
|
})
|