openvibers/openvibe.network Commits

The icon style follows the account: display 'icons' (auto, line or solid) (#476)

OP OpenVibers committed 12 days ago · a0a9120f8d · 2 files, +8 −1

openvibe-shared 4.71.0 adds the person's icon preference (plan L56; the owner, 2026-11-01: 'a setting to prefer a
certain icon type… configurable for users'). The display allow-list keeps it, so it is the same on every site.

Changes

ddiff --git a/server/themes/routes.js b/server/themes/routes.js
iindex cd76e556..824cae8d 100644
---- a/server/themes/routes.js
++++ b/server/themes/routes.js
@@@ -178,7 +178,9 @@ router.get('/me/active', (req, res, next) => {
// font: use the readable typeface across sites.
// colors: choose colors designed to be safe for color blindness.
// oled: use pure black backgrounds on OLED displays.
--const DISPLAY = { motion: ['auto', 'reduced'], text: ['100', '112', '125'], seasonal: ['on', 'off'], scheme: ['manual', 'auto'], contrast: ['normal', 'more'], font: ['default', 'readable'], colors: ['default', 'cb-safe'], oled: ['off', 'on'] };
++// icons: the person's icon style (openvibe-shared 4.71.0, plan L56): auto (line; solid when small or for the tab you are
++// on), line or solid, on every OpenVibe site.
++const DISPLAY = { motion: ['auto', 'reduced'], text: ['100', '112', '125'], seasonal: ['on', 'off'], scheme: ['manual', 'auto'], contrast: ['normal', 'more'], font: ['default', 'readable'], colors: ['default', 'cb-safe'], oled: ['off', 'on'], icons: ['auto', 'line', 'solid'] };
function cleanDisplay(d) {
if (!d || typeof d !== 'object') return null;
const out = {};
ddiff --git a/test/themes-review.test.js b/test/themes-review.test.js
iindex f44c7ee3..b2dd68ae 100644
---- a/test/themes-review.test.js
++++ b/test/themes-review.test.js
@@@ -114,6 +114,11 @@ const token = async (id) => signToken(await db.prepare('SELECT * FROM users WHER
r = await call('PUT', '/api/themes/me/display', { as: 2, body: { scheme: 'auto' } });
assert.strictEqual(r.body.display.scheme, 'auto', 'Auto (light or dark by the device) follows the account');
assert.strictEqual((await call('PUT', '/api/themes/me/display', { as: 2, body: { scheme: 'sepia' } })).body.display.scheme, undefined, 'only manual or auto');
++ // Icons (openvibe-shared 4.71.0, plan L56): auto, line or solid follows the account.
++ r = await call('PUT', '/api/themes/me/display', { as: 2, body: { icons: 'solid' } });
++ assert.strictEqual(r.body.display.icons, 'solid', 'a person who prefers solid icons keeps that on every site');
++ assert.strictEqual((await call('GET', '/api/themes/me/active', { as: 2 })).body.display.icons, 'solid');
++ assert.strictEqual((await call('PUT', '/api/themes/me/display', { as: 2, body: { icons: 'outline' } })).body.display.icons, undefined, 'only auto, line or solid');
// ── The site switcher's pinned and recent sites follow the account (migration 0029) ──
r = await call('GET', '/api/themes/me/sites', { as: 2 });