gitoriaLog in with ident

calendar

All repositories: gitoria

ReadmeCodePull requestsReleasesTicketsSettings
Branchmain2881119fcalendar mission 001 (4/4): code order — README layout + same-output test, STATUS, LOG, report; tests/letcount.py (sub-folders), tests/realdata-baseline.mjs, tests/realdata-compare.pymremain/lib/settings.hl

1.3 KB

  1. // lib/settings.hl — THE CALENDAR'S SETTINGS (ticket calendar#4): the default reminders every event without its own gets
  2. // (`$reminders` of the WorldAPI Calendar). One hl:mpackdb table, storage/mpackdb/settings.db, pk @id, unique index owner:
  3. // { owner (users @id), reminders (the stored `$reminders` list) }. Every write to it is here.
  4. import { MPackDB } from 'hl:mpackdb'
  5. import { storageDir, firstOf } from './util.hl'
  6. import { toReminders, toRows, defaultRows } from '../components/month-view/reminders.hl'
  7. static settingsTable = new MPackDB(file = storageDir + '/settings.db', primaryKey = '@id', indexes = ['!owner'])
  8. static settingsOf = (userId) => { return firstOf(settingsTable.find('owner', userId)) }
  9. // the rows of the owner's defaults (1 hour before, the day before at 20:00 until they change them)
  10. static defaultsOf = (userId) => {
  11. s = settingsOf(userId)
  12. if (s == null || s.reminders == null) { return defaultRows }
  13. return toRows(s.reminders)
  14. }
  15. static saveDefaults = (userId, rows) => {
  16. rem = toReminders(rows)
  17. if (rem.error != null) { return rem }
  18. s = settingsOf(userId)
  19. r = { owner = userId reminders = rem.reminders }
  20. if (s == null) {
  21. if (settingsTable.put(r) == null) { return { error = 'could not store the settings: ' + settingsTable.lastError() } }
  22. } else {
  23. r.id = s.id
  24. settingsTable.update(s.id, r)
  25. }
  26. return { ok = true }
  27. }

Branches

  • mainmain branch

Latest commits

  • 2881119fcalendar mission 001 (4/4): code order — README layout + same-output test, STATUS, LOG, report; tests/letcount.py (sub-folders), tests/realdata-baseline.mjs, tests/realdata-compare.pymre
  • 3b2a4cd0calendar mission 001 (3/4): code order — let only where reassigned (147 dropped incl. components/month-view; 110 left: 67 reassigned, 43 loop-bound); gates 78/0 (3 of 4 runs; 1 known 'next month' flake) + 18/0, live-data run = step 2mre
  • f5ce6b1dcalendar mission 001 (2/4): code order — topics, map, thin faces: lib/util.hl, lib/events(-helpers).hl (+calendarView/settingsView/soonOf), lib/settings.hl, lib/users.hl (+userOfLoginCode, tagOf), lib/api(-helpers).hl; project.hl = map; login route takes &req/&sessions (failed-login reason now kept); gates 78/0 + 18/0mre
  • c6fbd011calendar mission 001 (1/4): code order — files moved: lib/events.hl, lib/users.hl, components/styles.hl (imports only); gates 78/0 + 18/0, live-data run identicalmre
  • d6c59290calendar: Hybriel master 06617221 (plugin allocators 3a781359 + 413f60e4, mpackdb 2cb7ae5e, http1 773de63e); gates 78/0 + 18/0mre
  • 7bd0337ccalendar: Hybriel master 190aa11d (fc838894 GC correctness, #126 closure scopes, #127); gates 78/0 + 18/0mre
  • ff41310ccalendar: Hybriel master 8efba065 (#126 memory, #48 lambda copy; audit: no & needed)mre
  • 14ba08c7antcolony#40: mission references point to the moved missionsmre
  • 99c73346antcolony#40: history (LOG.md), worker briefs (missions/) and reports moved here from antcolony, numbered per project; old numbers in antcolony docs/mission-map.mdmre
  • 76edaa62calendar: Hybriel master ff51cf46 (re-vendor round, static workaround removed)mre
  • 90a3fc2cdeploy.sh: back up live storage/.sessions/.env before every deploy (newest 5 kept)mre
  • 6722b72ddeploy.sh: never send .git or .gitignore to Byrodinmre
  • be099807State of 2026-09-27, before the move to gitoriamre