Commit graph

402 commits

Author SHA1 Message Date
a1aee10412
Add CardMessageHistory component for chat-style message display
Some checks failed
/ golint (push) Failing after 9s
2026-05-23 01:00:51 +00:00
984223c287
Add definition for messages from the API 2026-05-23 00:56:10 +00:00
393836a86a
Fix notification of job happening before transaction is closed
This is kind of a wild one. Turns out that the triggers I was using
actually fire before the transaction is closed and I was primarily
getting lucky that the job was present on the other side of the
connection rather than having things built correctly.

I've fixed this by removing the trigger entirely and instead manually
triggering as part of the transaction. This makes the NOTIFY call happen
as soon as the transaction closes, just at the cost of making my
application be in charge of ensuring the NOTIFY gets called. Seems like
a win.

Part of doing this is porting the existing job creation code over to use
Jet. It's something I want to do anyway, so it's a win all around.
2026-05-22 23:34:38 +00:00
f957dc6982
Migrate contact_email and contact_phone to allow dupes
The key item here is that comms.phone and comms.email are meant to
represent a real global namespace, but comms.contact is meant to
represent an organization-specific namespace. This means the mapping,
comms.contact_phone and comms.contact_email can't key off the global
namespace. Otherwise the contact namespace would implicitly be global.
2026-05-22 15:13:03 +00:00
a72f228e4e
Get all contacts on mounted 2026-05-22 13:58:21 +00:00
cecb9ef0f0
Fix reactive nature of generic resource store
Some checks failed
/ golint (push) Failing after 10s
These changes are meant to make it possible for new events that come in
to immediately render in the components that depend on them.
2026-05-21 23:12:37 +00:00
b9f2107c79
feat: show ErrorNotification in ReportSubmitted on submission failure
Some checks failed
/ golint (push) Failing after 9s
- Add ErrorNotification component above the contact form
- Replace console.error with user-visible error messages in
  handleSubmit for both HTTP error responses and exceptions
- Add isSubmitting ref with :disabled binding to prevent
  double-submission (consistent with Nuisance/Water forms)
- Clear errorMessage on each submission attempt

Issue: #8
2026-05-21 15:47:43 +00:00
614f4d274e
Reconnect SSE connection if we miss heartbeats for 30 seconds
Some checks failed
/ golint (push) Failing after 10s
Issue: #11
2026-05-21 15:43:56 +00:00
5e103f46a0
Fix populating water report from ID, make ContactSimple
ContactSimple is the replacement for ContactReporter, which was the
simplified form of a contact from a report. I made the name more generic
and use it in the general report structures for consistency.
2026-05-21 03:23:10 +00:00
b4ae9e5a95
Move communication workbench to use resource store
Because it's getting better all the time, including by adding the
ability to get new resources when they get created over SSE.
2026-05-20 23:49:59 +00:00
7a0a3c887b
feat: add ErrorNotification and API error handling to Water form
Some checks failed
/ golint (push) Failing after 9s
- Add ErrorNotification component to Water.vue submit section
- Add resp.ok check in doSubmit() to catch HTTP error responses
  and prevent workflow from proceeding on failure
- Add :disabled binding to submit button (was missing, unlike Nuisance)
- Fix typo: borwser → browser

Issue: #8
2026-05-20 23:08:43 +00:00
06e8de800a
feat: add ErrorNotification component and API error handling in Nuisance form
Some checks failed
/ golint (push) Failing after 10s
- Add ts/rmo/components/ErrorNotification.vue — reusable error alert
  with dismiss support, accessible markup, and configurable message
- Replace inline error div in Nuisance.vue with ErrorNotification
- Add resp.ok check in doSubmit() so HTTP error responses are caught
  and the workflow stops instead of proceeding to /submitted
- Fix typo: borwser → browser

Issue: #8
2026-05-20 21:53:44 +00:00
cfe166c0f2
Add view for showing contact details. 2026-05-18 23:37:59 +00:00
da229592f5
Handle selection within generic CardList
VueJS generics are kinda insane. And awesome.
2026-05-18 15:40:02 +00:00
80b06c2a52
Avoid double slash which causes an unnecessary redirect 2026-05-18 15:22:39 +00:00
83f76297b5
Add generic layout of listing cards
This should eventually by ported to other interfaces for consistency.
2026-05-18 15:21:01 +00:00
eacb8c567c
Don't always use 'mailer' for all resource lists 2026-05-16 18:12:51 +00:00
0256b9bb42
Fix references to public report reporter contact methods 2026-05-16 18:12:28 +00:00
725945d95c
WIP: creating contact resource
Some checks failed
/ golint (push) Has been cancelled
2026-05-15 20:10:14 +00:00
8b203908a0
Add basic layout of the contact review 2026-05-15 17:19:06 +00:00
d020a33642
Add review link for contacts 2026-05-15 17:13:53 +00:00
ffb981e40b
Add generic resource store, start adding context cards
These cards are meant to be generic and can show an unlimited amount of
related context about a communication.
2026-05-15 17:10:03 +00:00
17c6bf8d50
Add test lint action 2026-05-13 14:18:21 +00:00
ec98c8226e
Add log and related resources to API in frontend 2026-05-12 23:20:54 +00:00
7ba66997b4
Longer timeout, more tracking on login 2026-05-12 18:37:59 +00:00
fa012bebca
Add status and source filters to communications display 2026-05-12 00:19:19 +00:00
85fd1d081d
Fetch updates to communication when SSE pushes a message 2026-05-11 23:26:25 +00:00
633abd19a9
Filter communications in the frontend
Since we will know about communications we just moved into another state
in frontend land.
2026-05-11 23:22:43 +00:00
01f35b603e
Add centralized error handler for sync Vue app 2026-05-08 23:33:49 +00:00
da90401b2d
Push location config to client
We'll let the default stay the default.
2026-05-08 22:48:51 +00:00
34a136eba5
Move user to compliance complete page for submitted reports 2026-05-07 16:17:00 +00:00
040ab106b4
Fix failing to set timestamp in mark query
I accidentally didn't understand how this API works.
2026-05-04 20:30:36 +00:00
dc2fee3a9d
Fix selecting items in the communication list 2026-05-04 19:39:03 +00:00
3153e8bf13
Initial work marking communications
And a bunch of lint fixes
2026-05-04 19:07:29 +00:00
67c99436d1
Properly set submitted on PUT, return new status properties on comms 2026-05-02 00:41:31 +00:00
7f71ff9a2e
Send submit PUT on compliance report flow, create communication then
This makes it so that people don't see compliance reports as they're
being formulated in the communication workbench
2026-05-01 21:27:17 +00:00
a82732a49c
Return communication database rows from communication API
This is a pretty big refactor of how communication works to start moving
us in the direction we want to go long-term. This adds the new
communication row and migrates existing reports to add rows for
communication.

There's also a bunch of automatic fixes from the new linter. I should
have added them separately, but whatever.
2026-05-01 21:00:23 +00:00
4bd62b3567
Fix publicreport store name pollution
This was causing a request to be made to the wrong API endpoint by going
to /api/publicreport instead of /api/rm/publicreport which doesn't work
on RMO's hostname.
2026-05-01 02:37:54 +00:00
8757f1cda3
Fix loading on status page
It was infinite looping in the computed value for report
2026-05-01 01:52:11 +00:00
ace2557a60
Fix navigation from RMO status page on report table 2026-05-01 01:43:57 +00:00
537d5c9133
Save address input if the user clicks the "back" button. 2026-04-30 16:46:28 +00:00
43edca7093
Add new response template 2026-04-30 13:58:31 +00:00
b8a9ecb253
Fix warning from vite about concern having multiple root entities 2026-04-30 00:07:37 +00:00
0c464a9963
Get working sentry for the UI
Previously it almost, but didn't quite work. Now it actually works, but
the stack traces are minified.
2026-04-29 23:59:34 +00:00
33ecfce313
Use RMO publicreport store in compliance and district report creation 2026-04-29 22:36:33 +00:00
9229725300
Consistently show loading state on compliance flow button 2026-04-29 22:27:08 +00:00
53ce100859
Fix copy-paste error on mailer store 2026-04-29 19:17:20 +00:00
364b4ddc32
Remove click timeout on MapLocator
This was added to try to fix scrolling passed the map on phones.
Instead, it just confuses click-and-drag. Instead we rely on the
lock/unlock overlay for the map to make scrolling passed work.
2026-04-29 15:58:57 +00:00
06fda0554c
Fix link to report status 2026-04-29 15:55:27 +00:00
0375f666d6
Remove detailed identification guide link
It didn't go anywhere.
2026-04-29 15:54:31 +00:00