binwiederhier
ff7e894e4c
Add more tests, change endpoint
2023-06-17 14:44:55 -04:00
binwiederhier
341e84f643
Limit number of webpush subscriptions per subscriber IP
2023-06-16 21:59:07 -04:00
binwiederhier
c43a1166e2
Docs, mostly
2023-06-16 16:55:42 -04:00
binwiederhier
6e95d62726
Cosmetic changess
2023-06-15 22:25:05 -04:00
binwiederhier
2d0c043dfd
Derp
2023-06-12 21:03:49 -04:00
binwiederhier
a8def0aed2
Make allowed endpoints a list of patterns
2023-06-12 21:01:43 -04:00
binwiederhier
58992fc795
Make DELETE endpoint, add different UI description
2023-06-10 21:09:01 -04:00
binwiederhier
1abcc88fce
Add subscription_topic table, change updated_at type to INT, split expire function
2023-06-09 23:17:48 -04:00
nimbleghost
4704b2a0e4
Set default TTL for web push to the cache duration
2023-06-09 11:32:44 +02:00
binwiederhier
966ffe1669
More refactor
2023-06-08 23:09:38 -04:00
binwiederhier
9d38aeb863
Docs in server.yml, schemaVersion table, refactoring
2023-06-08 21:45:52 -04:00
binwiederhier
d3ac976d05
Remove web-push-(enabled|duration*), change endpoint, other cosmetic changes
2023-06-08 14:30:19 -04:00
binwiederhier
75a4b5bd88
Small refactor
2023-06-08 12:20:12 -04:00
nimbleghost
46f34ca1e3
Add push service allowlist and topic limit
2023-06-07 21:09:13 +02:00
nimbleghost
0f0074cbab
Implement push subscription expiry
2023-06-07 21:09:13 +02:00
nimbleghost
47ad024ec7
Simplify web push UX and updates
...
- Use a single endpoint
- Use a declarative web push sync hook. This thus handles all edge cases
that had to be manually handled before: logout, login, account sync,
etc.
- Simplify UX: browser notifications are always enabled (unless denied),
web push toggle only shows up if permissions are already granted.
2023-06-07 20:38:21 +02:00
nimbleghost
0c25425346
Use readJSONWithLimit for web push sub/unsub
2023-06-07 20:38:21 +02:00
nimbleghost
4648f83669
Format emojis in the service worker directly
2023-06-07 20:38:21 +02:00
nimbleghost
44913c1668
Replace if err-nil-Fatal check with require.Nil
2023-06-07 20:38:21 +02:00
binwiederhier
20c7650e51
server.yml update
2023-06-07 20:38:21 +02:00
binwiederhier
e8139ad655
Move web-push-config endpoint to config.js
2023-06-07 20:38:21 +02:00
binwiederhier
9e0687e142
Random tiny changes
2023-06-07 20:38:21 +02:00
binwiederhier
7f3e4b5f47
Move stuff to server_web_push.go
2023-06-07 20:38:21 +02:00
binwiederhier
7b23158e0a
Cosmetic changes
2023-06-07 20:38:21 +02:00
nimbleghost
a9fef387fa
Add web push tests
2023-06-07 20:38:21 +02:00
nimbleghost
ff5c854192
Add PWA, service worker and Web Push
...
- Use new notification request/opt-in flow for push
- Implement unsubscribing
- Implement muting
- Implement emojis in title
- Add iOS specific PWA warning
- Don’t use websockets when web push is enabled
- Fix duplicate notifications
- Implement default web push setting
- Implement changing subscription type
- Implement web push subscription refresh
- Implement web push notification click
2023-06-07 20:38:20 +02:00
binwiederhier
d084a415f3
Do not forward UP messages to upstream
2023-05-31 15:36:02 -04:00
nimbleghost
e21327cec5
Add vite
...
Changes according to Vite defaults:
- Move index.html to root
- Replace `%PUBLIC_URL%` with plain `/`
2023-05-24 22:16:10 +02:00
binwiederhier
f8a00dd411
Fix test
2023-05-23 14:24:11 -04:00
binwiederhier
da06ae4485
Clarify error message for poll requests
2023-05-23 13:20:43 -04:00
binwiederhier
168ad8bf1b
Support encoding any header as RFC 2047
2023-05-21 20:56:56 -04:00
binwiederhier
3b3e6ac2cd
Rename twilio-from-number to twilio-phone-number
2023-05-18 13:32:27 -04:00
binwiederhier
25d3a66f91
Upstream access token
2023-05-18 13:08:10 -04:00
binwiederhier
fc1087a42b
The last one
2023-05-17 11:19:48 -04:00
binwiederhier
92c384374a
More self-review
2023-05-17 10:58:28 -04:00
binwiederhier
ac029c389e
Self-review
2023-05-17 10:39:15 -04:00
binwiederhier
2c81773d01
Add call verification
2023-05-16 22:27:48 -04:00
binwiederhier
496d6e74b0
Staticcheck
2023-05-16 15:12:18 -04:00
binwiederhier
7c574d73de
Cont'd Twilio stuff
2023-05-16 14:15:58 -04:00
binwiederhier
deb4f24856
Cont'd, getting there
2023-05-15 22:06:43 -04:00
binwiederhier
4b9e0c5c38
Phone number verification in publishing
2023-05-15 20:42:43 -04:00
binwiederhier
69b01bc468
Merge branch 'main' into twilio
2023-05-15 20:02:51 -04:00
binwiederhier
f14f0aaa26
Add tests for users, slightly change API a bit
2023-05-15 10:42:24 -04:00
binwiederhier
4f4165f46f
Merge branch 'main' into access-api
2023-05-14 20:43:07 -04:00
Philipp C. Heckel
8f87e9008b
Merge pull request #728 from wunter8/attachment-filename
...
set attachment filename when download through browser
2023-05-14 14:15:31 -04:00
Hunter Kehoe
4fa0655438
set attachment filename when download through browser
2023-05-14 11:19:49 -06:00
binwiederhier
97fc287b78
User endpoint
2023-05-13 22:07:54 -04:00
binwiederhier
625b13280f
WIP: Access API
2023-05-13 14:39:31 -04:00
binwiederhier
539ba43cd1
WIP twilio
2023-05-13 12:26:14 -04:00
Michael Manganiello
49bd6129ff
Convert mailer_emoji JSON file to map
...
This fixes a pending TODO comment regarding inefficient tags to emojis
mapping, by requiring a full scan over emoji aliases to determine
matches.
Instead, now the JSON file is a map, with aliases as keys, and emojis as
values. The script to convert the file with Python was:
```python
import json
with open("./mailer_emoji.json", "r", encoding="utf-8") as f:
content = json.load(f)
emoji_map = {}
for emoji in content:
for alias in emoji["aliases"]:
if alias in emoji_map:
print("WARNING: Duplicate alias:", alias)
continue
emoji_map[alias] = str(emoji["emoji"])
sorted_emoji_map = {k: emoji_map[k] for k in sorted(emoji_map)}
with open("./mailer_emoji_map.json", "w", encoding="utf-8") as f:
json.dump(sorted_emoji_map, f, indent=4, ensure_ascii=False)
```
2023-05-13 11:43:47 -03:00