Skip to content

User Preferences

Cesivi persists per-user UI preferences server-side, so your choices survive page reloads, browser restarts, and switching devices. This matches SharePoint Classic's per-user persistence model and is part of Cesivi's v1.0 functional parity with SP-Classic. This guide is for end-users and administrators. For developers integrating with the user-prefs layer, see _docs_dev/USER-PREFERENCES-DEV.md.

What is persisted

The following preferences are stored per authenticated user, globally (not per-site-collection):

Preference Default Where to change
Density comfortable Sidebar density toggle or My Settings → Display Preferences
Language Derived from Accept-Language on first use Topbar → Translate icon (🌐)
Date Format Derived from Language My Settings → Display Preferences
Time Format Derived from Language My Settings → Display Preferences
Default List View (empty — no per-list override) Auto-recorded when you switch views in any list or library

Anonymous users always get defaults; nothing is stored for them.

Default-derivation rules

When Language is set, the Date and Time formats default as follows (unless you have explicitly overridden them):

Language Date Format default Time Format default
en-US US short (12/31/2025) 12-hour (2:30 PM)
de-DE European (31.12.2025) 24-hour (14:30)
Any other ISO (2025-12-31) 24-hour (14:30)

How to change each preference

Density

Via the sidebar toggle (fastest):

  1. Open any modern page.
  2. Find the density button group at the bottom of the left sidebar (three horizontal-bar icons in increasing size).
  3. Click Compact, Comfortable, or Spacious.

The change persists immediately — a reload or new tab shows the same density.

Via My Settings:

  1. Click your avatar/name in the top-right corner.
  2. Click My settings (URL: /_layouts/15/mysetng.aspx).
  3. Scroll to Display Preferences.
  4. Change the Density drop-down. The change saves immediately via the client-side API — there is no Save button for this section.

Language

  1. Click the translate icon (🌐) in the top bar. It appears for signed-in users only.
  2. A popover shows the available languages: English (en-US) and German (de-DE) for v1.0.
  3. Click a language. The page reloads immediately with the selected language applied to all server-rendered chrome.

The selected language is now persisted. Every subsequent page load uses it without prompting.

Date Format

  1. Open My Settings (/_layouts/15/mysetng.aspx).
  2. Scroll to Display Preferences.
  3. Change the Date Format drop-down:
  4. ISO (2025-12-31) — year-month-day, unambiguous across locales
  5. US (12/31/2025) — month/day/year
  6. European (31.12.2025) — day.month.year
  7. Long (December 31, 2025) — fully spelled-out localized form
  8. The selection saves immediately. List views re-render date columns on the next page load (or immediately if the cesivi:userprefs:dateformat-changed event fires in the current page).

Time Format

  1. Open My Settings (/_layouts/15/mysetng.aspx).
  2. Scroll to Display Preferences.
  3. Change the Time Format drop-down:
  4. 12-hour (2:30 PM) — AM/PM style
  5. 24-hour (14:30) — military / continental style
  6. The selection saves immediately.

Default List View

This preference is automatic. When you switch to a named view in any list or library (using the view-switcher drop-down in the modern list grid), that view name is silently recorded for that list. The next time you navigate to the same list, Cesivi automatically opens the persisted view instead of the system default.

To revert a list to its system default: switch back to the default view (usually called All Items or All Documents), which clears the persisted choice for that list.

How to reset all preferences to defaults

There is no reset button in the UI for v1.0. To reset all preferences at once, call the REST endpoint directly:

# Reset to defaults (requires an authenticated session cookie or Bearer token)
curl -X DELETE https://<your-cesivi-host>/api/modernprefs \
  -H "X-XSRF-TOKEN: <antiforgery-token>"

After the DELETE, the next page load re-derives defaults from your browser's Accept-Language header. All stored preferences are erased.

From browser JavaScript (e.g. in browser DevTools):

import('/js/modern/userprefs.mjs').then(m => m.reset());
// Triggers DELETE /api/modernprefs, then reloads the page.

What happens for anonymous users

Anonymous users receive default preferences on every page load. The data island (window.__cesiviUserPrefs) is still emitted with server defaults, so client-side code behaves consistently, but nothing is persisted. Reloading the page re-derives defaults from the Accept-Language header each time.

Out of scope (v1.0)

The following are intentionally deferred to a future version:

  • Theme toggle (light / dark / high-contrast) — deferred to v2.0. Light mode is the v1.0 default. See BACKLOG #20.
  • Timezone preference — deferred to v2.0. Dates are stored in UTC and converted using browser locale on the client side.
  • Date/time format in Calendar, Gantt, and info-panels — only the modern list-view grid (ml-renderer.js) respects DateFormat/TimeFormat in v1.0. Other views use browser locale as a fallback.

For developers integrating with the user-prefs surface, see _docs_dev/USER-PREFERENCES-DEV.md.