Browse Source
Merge remote-tracking branch 'jacr13/dev'
# Conflicts:
# server/notification.js
remotes/philippdormann/feature/gotify
Philipp Dormann
4 years ago
No known key found for this signature in database
GPG Key ID: 3BB9ADD52DCA4314
2 changed files with
88 additions and
36 deletions
-
server/notification.js
-
src/components/NotificationDialog.vue
|
|
@ -52,6 +52,22 @@ class Notification { |
|
|
|
} else if (notification.type === "smtp") { |
|
|
|
return await Notification.smtp(notification, msg) |
|
|
|
|
|
|
|
} else if (notification.type === "signal") { |
|
|
|
try { |
|
|
|
let data = { |
|
|
|
"message": msg, |
|
|
|
"number": notification.signalNumber, |
|
|
|
"recipients": notification.signalRecipients.replace(/\s/g, '').split(",") |
|
|
|
}; |
|
|
|
let config = {}; |
|
|
|
|
|
|
|
let res = await axios.post(notification.signalURL, data, config) |
|
|
|
return true; |
|
|
|
} catch (error) { |
|
|
|
console.log(error) |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
} else if (notification.type === "discord") { |
|
|
|
try { |
|
|
|
// If heartbeatJSON is null, assume we're testing.
|
|
|
|
|
|
@ -17,6 +17,7 @@ |
|
|
|
<option value="webhook">Webhook</option> |
|
|
|
<option value="smtp">Email (SMTP)</option> |
|
|
|
<option value="discord">Discord</option> |
|
|
|
<option value="signal">Signal</option> |
|
|
|
</select> |
|
|
|
</div> |
|
|
|
|
|
|
@ -133,6 +134,41 @@ |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
<template v-if="notification.type === 'signal'"> |
|
|
|
<div class="mb-3"> |
|
|
|
<label for="signal-url" class="form-label">Post URL</label> |
|
|
|
<input type="url" pattern="https?://.+" class="form-control" id="signal-url" required v-model="notification.signalURL"> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="mb-3"> |
|
|
|
<label for="signal-number" class="form-label">Number</label> |
|
|
|
<input type="text" class="form-control" id="signal-number" required v-model="notification.signalNumber"> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="mb-3"> |
|
|
|
<label for="signal-recipients" class="form-label">Recipients</label> |
|
|
|
<input type="text" class="form-control" id="signal-recipients" required v-model="notification.signalRecipients"> |
|
|
|
|
|
|
|
<div class="form-text"> |
|
|
|
You need to have a signal client with REST API. |
|
|
|
|
|
|
|
<p style="margin-top: 8px;"> |
|
|
|
You can check this url to view how to setup one: |
|
|
|
</p> |
|
|
|
|
|
|
|
<p style="margin-top: 8px;"> |
|
|
|
<a href="https://github.com/bbernhard/signal-cli-rest-api" target="_blank">https://github.com/bbernhard/signal-cli-rest-api</a> |
|
|
|
</p> |
|
|
|
|
|
|
|
<p style="margin-top: 8px;"> |
|
|
|
IMPORTANT: You cannot mix groups and numbers in recipients! |
|
|
|
</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
</div> |
|
|
|
<div class="modal-footer"> |
|
|
|
<button type="button" class="btn btn-danger" @click="deleteConfirm" :disabled="processing" v-if="id">Delete</button> |
|
|
|