aeaf45fa2b
Add privacy page for Nidus
2026-01-22 18:37:00 +00:00
5d8649ffe5
Send down h3 cell with API response
...
I broke this at some point while doing a refactor and didn't notice
until now.
2026-01-22 17:53:10 +00:00
1aa19ce707
More fixes to tegola URLs
2026-01-22 05:12:48 +00:00
964ef49a78
Fix tegola URL harder
2026-01-22 05:04:46 +00:00
d478f39800
fix tegola URL passthrough after my config changes
2026-01-22 04:50:37 +00:00
56e1e51279
fix up instructions on district import
...
After doing it in prod.
2026-01-22 04:50:20 +00:00
f38381eaf0
Fix embedded email templates
2026-01-22 04:32:21 +00:00
b7eb79d4f7
Remove old Voip.ms text integration
...
It's all Twilio now.
2026-01-22 03:57:50 +00:00
3573127bf1
Update vendor hash for building on Nix
2026-01-22 03:41:08 +00:00
480aaf0d0c
Update arcgis-go version
2026-01-22 03:39:31 +00:00
ad7ddf285c
go mod tidy, update arcgis-go
2026-01-22 03:29:19 +00:00
61d8d14fc2
Bunch of work around assigning reports to districts
...
I added some DB schema to track logos and to relate reports to
organizations. I reworked how GPS data comes from EXIF data on images
because it wasn't working for JPEGs. I might have broken PNGs in the
process. Also made the config options for domain names more
standardized.
2026-01-22 03:27:32 +00:00
486a2d98c2
Show location markers for images too
2026-01-21 21:10:21 +00:00
b94d09696e
Initial working marker display in shadow dom
2026-01-21 21:07:08 +00:00
bea7c28af2
Add image lookup on status page
2026-01-21 18:26:48 +00:00
c2c4d52026
Add tool to clean out test database on public reports
2026-01-21 17:55:04 +00:00
13cbf71c0f
WIP filling out report status page
2026-01-21 17:51:18 +00:00
aa3d7ab6b7
Clean up some aspects of WIP map-locator component
...
I was working on this and then left it for the day, so it was in sorry
shape.
2026-01-21 17:50:43 +00:00
a4afa057e3
Create version of timeSince that handles non-pointers
...
Useful for structs where we know we must have a value
2026-01-21 17:50:16 +00:00
2da6bba041
Render report results from the map
2026-01-21 15:59:16 +00:00
9d2253a4a2
Get search map overlay working again.
2026-01-21 15:15:52 +00:00
f4a88623af
Overhaul system for handling text messaging
...
Move away from "SMS" as the operative word - we're going RCS.
Move all comms processing to a separate goroutine
Rename the DB tables
2026-01-21 03:30:03 +00:00
842e6cff43
Move comms work to background goroutine
...
This is a sort of random checkpoint of work
* add schema for tracking messages sent to DB
* add terms of service and privacy policy for RCS compliance
* standardize some things about background workers
* update some missing stuff from generated DB code
2026-01-20 17:10:22 +00:00
8f44e57c72
Add basic robots.txt
...
So we get indexed.
2026-01-19 21:33:54 +00:00
98372d924d
Use proper config values in email templates
2026-01-19 21:24:34 +00:00
42caa77b3e
Use the same code paths to render the browser version of emails
2026-01-19 21:21:02 +00:00
1232a7c0ec
Show pretty report ID in email subject
2026-01-19 18:19:02 +00:00
4ab3c355c5
Parse email send response, log the email ID.
2026-01-19 18:10:17 +00:00
2c880568dd
Initial work on email templates
...
At this point I got a nice-looking formatted message in my mail client.
2026-01-19 17:58:30 +00:00
087f29d491
Add support for simple MMS
...
Tested and works, though it is a bit ugly.
2026-01-19 14:58:28 +00:00
4e294699d3
Initial test email works.
2026-01-18 03:00:48 +00:00
7abaebe496
Add support for sending SMS
2026-01-17 01:13:27 +00:00
8ab0b78e6e
Make sure they consent to get notifications in the UI.
2026-01-16 21:16:59 +00:00
079d20c086
Extract EXIF data from images
...
This required a schema change and actually dumps all existing photo data
from the public reports page. That's probably fine since it's not
deployed to any customers so all data is currently test data.
2026-01-16 20:16:58 +00:00
b95a3275ff
Set address to empty in quick report upload
...
Fixes a null value error
2026-01-16 14:51:50 +00:00
684c424131
Move imported districts to its own schema, add ref from organization
...
This will make it possible to assign reports to an organization
2026-01-16 14:43:26 +00:00
9b5140f0c2
Show full district details on location search
2026-01-15 23:19:31 +00:00
f6b5a1e580
Add API to query district by GPS location
2026-01-15 22:56:32 +00:00
0bb055b391
Allow clicks on cells without sources
2026-01-15 22:15:29 +00:00
e2549f0317
Make trap page that shows collection information
2026-01-15 22:12:52 +00:00
885b58a0ab
Add traps to cell details page
2026-01-15 21:00:42 +00:00
0bd1a10753
Fix click interface on aggregate map going to cell detail
2026-01-15 20:39:20 +00:00
948f967a16
Add aggregation map for traps
...
This also makes the first time I've done a Mapbox map within a web
component. It's not officially supported according to:
https://github.com/mapbox/mapbox-gl-js/issues/12796
but I found a codepen that had a working example:
https://codepen.io/keichan34/pen/ZEKqeEj?editors=1111
2026-01-15 20:25:00 +00:00
08c6a7f884
Make layer colors match card colors on dash
2026-01-15 19:35:13 +00:00
beb98813d9
Show icons on dashboard cards, swap colors
...
The color swap is so I can make the colors match in the map overlay.
2026-01-15 19:33:02 +00:00
f50f3892f2
Switch to trap counts instead of inspections on the dash
...
Because we can show those on a map.
2026-01-15 19:32:42 +00:00
06140a9062
Remove bob submodule, add arcgis.user
...
I had to remove the submodule because of the go bug at
https://github.com/golang/go/issues/77196
I found the bug because of a bug in bob itself
https://github.com/stephenafamo/bob/issues/610
This was because I'm trying to save data about the Arcgis user for use
in determining if I can set up hooks to avoid the polling for data
changes.
2026-01-15 19:20:39 +00:00
f94b89381f
Actually delete the organization in delete-org.sql
2026-01-15 04:11:19 +00:00
d46d988b4d
Make aggregate layers clean up, add service request aggregate
2026-01-15 04:10:54 +00:00
248cffd323
Rework arcgis oauth flow logic
...
This is several changes after the demo with Ben
* When a user adds their oauth and they get an arcgis ID for an
organization that exits they are added to that organization. The
previous org isn't removed
* All layer processing is done in a single large pool. This makes it
much faster in aggregate
* Some queries are done more directly instead of through custom sql
2026-01-15 01:05:21 +00:00