0.10.2-19 Frontend

This commit is contained in:
2026-03-17 11:58:04 +00:00
parent 7796587f16
commit 46bd235afc
13 changed files with 227 additions and 100 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "ripster-backend",
"version": "0.10.2-18",
"version": "0.10.2-19",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "ripster-backend",
"version": "0.10.2-18",
"version": "0.10.2-19",
"dependencies": {
"archiver": "^7.0.1",
"cors": "^2.8.5",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "ripster-backend",
"version": "0.10.2-18",
"version": "0.10.2-19",
"private": true,
"type": "commonjs",
"scripts": {
+8
View File
@@ -967,6 +967,14 @@ async function migrateSettingsSchemaMetadata(db) {
VALUES ('auto_eject_after_rip', 'Laufwerk', 'Laufwerk nach Rip auswerfen', 'boolean', 1, 'Wenn aktiv, wird das Laufwerk nach erfolgreichem Abschluss eines Rip-Vorgangs automatisch ausgeworfen (eject).', 'false', '[]', '{}', 45)`
);
await db.run(`INSERT OR IGNORE INTO settings_values (key, value) VALUES ('auto_eject_after_rip', 'false')`);
await db.run(`
CREATE TABLE IF NOT EXISTS user_prefs (
key TEXT PRIMARY KEY,
value TEXT,
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
)
`);
}
async function getDb() {
+28
View File
@@ -11,6 +11,8 @@ const userPresetService = require('../services/userPresetService');
const activationBytesService = require('../services/activationBytesService');
const logger = require('../services/logger').child('SETTINGS_ROUTE');
const { getDb } = require('../db/database');
const router = express.Router();
function isSensitiveSettingKey(key) {
@@ -400,4 +402,30 @@ router.post(
})
);
// User preferences (UI state, persisted per-installation)
router.get(
'/prefs/:key',
asyncHandler(async (req, res) => {
const { key } = req.params;
const db = await getDb();
const row = await db.get('SELECT value FROM user_prefs WHERE key = ?', [key]);
res.json({ key, value: row ? row.value : null });
})
);
router.put(
'/prefs/:key',
asyncHandler(async (req, res) => {
const { key } = req.params;
const { value } = req.body || {};
const db = await getDb();
await db.run(
`INSERT INTO user_prefs (key, value, updated_at) VALUES (?, ?, CURRENT_TIMESTAMP)
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = excluded.updated_at`,
[key, value ?? null]
);
res.json({ key, value: value ?? null });
})
);
module.exports = router;