From bafca6bd37a9e4c2d2bb89522637248fcefbf9dd Mon Sep 17 00:00:00 2001 From: Arjun Komath Date: Fri, 11 Oct 2024 09:19:58 +1100 Subject: [PATCH] feat: support sound and title in `TechulusPush` (#5178) --- .../notification-providers/techulus-push.js | 19 ++++-- src/components/notifications/TechulusPush.vue | 61 +++++++++++++++++++ src/lang/en.json | 22 ++++++- 3 files changed, 97 insertions(+), 5 deletions(-) diff --git a/server/notification-providers/techulus-push.js b/server/notification-providers/techulus-push.js index 230897f3ca..bf688b194d 100644 --- a/server/notification-providers/techulus-push.js +++ b/server/notification-providers/techulus-push.js @@ -10,11 +10,22 @@ class TechulusPush extends NotificationProvider { async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { const okMsg = "Sent Successfully."; + let data = { + "title": notification?.pushTitle?.length ? notification.pushTitle : "Uptime-Kuma", + "body": msg, + "timeSensitive": notification.pushTimeSensitive ?? true, + }; + + if (notification.pushChannel) { + data.channel = notification.pushChannel; + } + + if (notification.pushSound) { + data.sound = notification.pushSound; + } + try { - await axios.post(`https://push.techulus.com/api/v1/notify/${notification.pushAPIKey}`, { - "title": "Uptime-Kuma", - "body": msg, - }); + await axios.post(`https://push.techulus.com/api/v1/notify/${notification.pushAPIKey}`, data); return okMsg; } catch (error) { this.throwGeneralAxiosError(error); diff --git a/src/components/notifications/TechulusPush.vue b/src/components/notifications/TechulusPush.vue index bece17e273..bb2c27ad85 100644 --- a/src/components/notifications/TechulusPush.vue +++ b/src/components/notifications/TechulusPush.vue @@ -4,6 +4,53 @@ +
+ + +
+ +
+ + +
+ {{ $t("Alphanumerical string and hyphens only") }} +
+
+ +
+ + +
+ {{ $t("Custom sound to override default notification sound") }} +
+
+ +
+
+ + +
+
+ {{ $t("Time sensitive notifications will be delivered immediately, even if the device is in do not disturb mode.") }} +
+
+ https://docs.push.techulus.com @@ -16,5 +63,19 @@ export default { components: { HiddenInput, }, + mounted() { + if (typeof this.$parent.notification.pushTitle === "undefined") { + this.$parent.notification.pushTitle = "Uptime-Kuma"; + } + if (typeof this.$parent.notification.pushChannel === "undefined") { + this.$parent.notification.pushChannel = "uptime-kuma"; + } + if (typeof this.$parent.notification.pushSound === "undefined") { + this.$parent.notification.pushSound = "default"; + } + if (typeof this.$parent.notification.pushTimeSensitive === "undefined") { + this.$parent.notification.pushTimeSensitive = true; + } + }, }; diff --git a/src/lang/en.json b/src/lang/en.json index 968a3d9f89..cf0836d985 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -1027,5 +1027,25 @@ "greater than": "greater than", "less than or equal to": "less than or equal to", "greater than or equal to": "greater than or equal to", - "record": "record" + "record": "record", + "Notification Channel": "Notification Channel", + "Sound": "Sound", + "Alphanumerical string and hyphens only": "Alphanumerical string and hyphens only", + "Arcade": "Arcade", + "Correct": "Correct", + "Fail":"Fail", + "Harp":"Harp", + "Reveal":"Reveal", + "Bubble":"Bubble", + "Doorbell":"Doorbell", + "Flute":"Flute", + "Money":"Money", + "Scifi":"Scifi", + "Clear":"Clear", + "Elevator":"Elevator", + "Guitar":"Guitar", + "Pop":"Pop", + "Custom sound to override default notification sound": "Custom sound to override default notification sound", + "Time Sensitive (iOS Only)": "Time Sensitive (iOS Only)", + "Time sensitive notifications will be delivered immediately, even if the device is in do not disturb mode.": "Time sensitive notifications will be delivered immediately, even if the device is in do not disturb mode." }