Commit Graph

54 Commits

Author SHA1 Message Date
l5y 7eb36a5a3d remove duplication 2025-09-15 21:35:59 +02:00
l5y 0768b4d91a Improve mobile layout (#68)
* Improve mobile layout

* styling tweaks
2025-09-15 21:32:56 +02:00
l5y be1306c9c0 Normalize message sender IDs using node numbers (#67) 2025-09-15 21:04:29 +02:00
l5y 7904717597 style: simplify node table (#65) 2025-09-15 18:16:36 +02:00
l5y e2c19e1611 Add debug logging for missing from_id (#64) 2025-09-15 18:15:46 +02:00
l5y 31727e35bb add placeholder for default frequency 2025-09-15 14:48:12 +02:00
l5y 580a588df7 Run schema initialization only when database or tables are missing (#61) 2025-09-15 14:05:01 +02:00
l5y b39b83fb51 Send mesh data to Potatomesh API (#60)
* feat: post mesh data to API

* Serialize node objects before posting

* don't put raw json in api/db
2025-09-15 14:00:48 +02:00
l5y 6d948603c9 Convert boolean flags to integers for SQLite (#59) 2025-09-15 13:37:30 +02:00
l5y 648bcc9b92 Use packet id as message primary key (#58)
* Use packet id as message primary key

* fix query

* fix query
2025-09-15 13:34:59 +02:00
l5y 4dc1227be7 Add POST /api/messages and enforce API token (#56) 2025-09-15 13:13:47 +02:00
l5y da2e5fbde1 feat: parameterize community info (#55)
* feat: parameterize community info

* chore: restore test data and document env defaults

* also make default channel configurable
2025-09-15 12:15:51 +02:00
l5y 003db7c36a feat: add dark mode toggle (#54)
* feat: add dark mode toggle

* fix chat colors in dark mode
2025-09-15 11:53:49 +02:00
l5y 29dba74038 run linter 2025-09-15 08:04:07 +02:00
l5y aa6a53a1a4 remove monthly stats 2025-09-15 07:45:34 +02:00
l5y a3e625565e Show daily node count in title and header (#49) 2025-09-15 07:03:54 +02:00
l5y 96a7b936f1 Add daily date separators to chat log (#47)
* Add daily divider to chat log

* improve date and time stamps
2025-09-14 23:59:30 +02:00
l5y 737d2016e6 feat: make frontend responsive for mobile (#46) 2025-09-14 23:50:42 +02:00
l5y 547518a105 Harden mesh utilities (#45) 2025-09-14 22:02:06 +02:00
l5y 7773bfc331 minor style tweaks 2025-09-14 21:30:11 +02:00
l5y 9dbca51118 filter map nodes beyond Berlin radius (#43) 2025-09-14 21:24:25 +02:00
l5y 6c454e860e Show active node counts in refresh info (#44) 2025-09-14 21:23:36 +02:00
l5y 27d4ed39db Limit chat log and highlight short names by role (#42)
* Limit chat log size and style short names

* Escape short names in HTML rendering
2025-09-14 21:22:19 +02:00
l5y 7008804ae2 Cast SQLite timestamps to integers (#40) 2025-09-14 21:07:17 +02:00
l5y b9c5d88cb9 Escape chat message and node entries (#39) 2025-09-14 20:23:38 +02:00
l5y 66c0d74776 Sort chat entries by timestamp (#38)
* Sort chat entries by timestamp

* Add nodes only when rendered to avoid skipping on message fetch errors
2025-09-14 20:23:21 +02:00
l5y 3d8c1582bd feat: append messages to chat log (#36)
* feat: append messages to chat

* append some chat styling
2025-09-14 19:54:19 +02:00
l5y 6c6e040e21 Validate future times for nodes (#35) 2025-09-14 19:38:52 +02:00
l5y 334e21d674 Optimize web frontend and Ruby app (#32)
* Optimize web app and cleanup

* Refine node rendering and front-end timing
2025-09-14 19:31:28 +02:00
l5y a1cabec150 Add messages API endpoint with node details (#33)
* Add messages API endpoint with node details

* Preserve message SNR when joining nodes
2025-09-14 19:29:44 +02:00
l5y 6094609a86 Ensure last_heard never precedes position time (#31) 2025-09-14 17:53:37 +02:00
l5y 72a0150006 data: enable serial collection of messages on channel 0 (#25)
* data: enable serial collection of messages on channel 0

* remove tests
2025-09-14 11:37:56 +02:00
l5y bcaa9dc1a9 sort chat nodes by first seen field in database 2025-09-14 09:20:38 +02:00
l5y a09197b398 update map info 2025-09-14 09:16:14 +02:00
l5y 62b096c601 Add first_heard timestamp (#23) 2025-09-14 09:12:57 +02:00
l5y c67b18c657 web: extend the table view to display more records 2025-09-14 09:00:14 +02:00
l5y 625357f136 leftpad short names in chat window 2025-09-13 19:13:45 +02:00
l5y f9cf90e210 Add persistent footer with contact information (#22)
* Add persistent footer with contact information

* add github link
2025-09-13 18:49:29 +02:00
l5y 52d3430edb Sort initial chat entries by last-heard (#20) 2025-09-13 18:02:47 +02:00
l5y 1118804873 some css and chat formatting 2025-09-13 17:25:51 +02:00
l5y 6e5ca3cf26 move nodes to index 2025-09-13 17:03:57 +02:00
l5y cdfc4c9610 Display position time in relative 'time ago' format (#19) 2025-09-13 16:49:40 +02:00
l5y 1dbd677f96 Adjust map marker sizing and tile opacity (#18) 2025-09-13 15:27:23 +02:00
l5y 77ded7624b Add chat box for new node notifications (#17) 2025-09-13 15:04:40 +02:00
l5y f7582d062d Color markers by role with grayscale map (#16)
* Color markers by device role and grayscale map

* add working background tile layer
2025-09-13 14:56:23 +02:00
l5y da1296b320 Default missing node role to client (#15) 2025-09-13 14:44:50 +02:00
l5y 6d302b69b3 Show live node count in nodes page titles (#14)
* Display live node count in titles

* change website title
2025-09-13 14:33:43 +02:00
l5y 847167d614 Filter old nodes and add live search (#13) 2025-09-13 14:25:42 +02:00
l5y 94171b779c Remove raw node json column (#12) 2025-09-13 14:21:31 +02:00
l5y aeaa2eb1a7 Add authenticated POST endpoint for node updates (#11) 2025-09-13 14:13:52 +02:00