Implement webpush for push notifications #4031
No reviewers
Labels
No labels
Security
TeX
auto-update
board
done
board
ready
board
todo
check
delete-eslint-rc-js
check
update-builddeps-package-json
check
update-eslint-rc-js
check
update-gitignore
check
update-merge-request-template
check
update-prettier-ignore
check
update-pyproject-toml
check
update-renovate-json
check
update-tox-ini
part
backend
part
ci
part
docs
part
frontend
part
i18n
part
non-technical
part
packaging
prio
1
prio
2
prio
3
release-mr-5.x
size
large
size
medium
size
small
source
customer
source
customer::fsmw
source
customer::fss
source
customer::teckids
source
downstream
type
breaking
type
bug
type
feature
type
refactoring
workflow
blocked
workflow
confirmed
workflow
current-todo
workflow
discussing
workflow
new-app
workflow
wontfix
source::aleksolotl
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
aleksis/AlekSIS-Core!4031
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/webpush"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Information and screenshots
Closes #1102
Closes #168
Checklist
tox -e reformat,lintusedapps.pyandREADME.rstup-to-dateBackend checklist
Frontend checklist (mandatory with ~"part::frontend")
@ -0,0 +23,4 @@function getBrowser() {const ua = navigator.userAgent;if (ua.includes("Edg/")) return "Edge";I would suggest using an object to store this mapping and then a find.
@ -738,2 +739,4 @@name: "core.oauth.deleteAuthorizedToken",},{path: "/o/push_notifications/web_push_device/",/o/core/webpushdevice@ -740,0 +741,4 @@{path: "/o/push_notifications/web_push_device/",component: () => import("./components/webpush/WebPushDevices.vue"),name: "core.WebpushDevices",core.webpushDevices@ -0,0 +19,4 @@const getNotificationOptions = function (message, message_tag) {return {body: message,// TODO: Figure out how to access the icon from the Django static filesTODO? Drop or solve
@ -0,0 +31,4 @@});self.addEventListener("push", async function (event) {console.log("PUSH RECEIVED", event);Better logging or no logging, please
@ -66,0 +83,4 @@# - Boolean `active`, which indicates whether the channel is enabled by an administrator# - Boolean `selectable`, which indicates this channel is an option in the user preferences# - Function to send notification through the channelChannel = namedtuple("Channel", ["name", "active", "selectable", "send"])If you already rewrite this, please use a
RegistryObjectwith the notification method being part of the classes.4752af509e5039e493dc