feat(gotify): added priority input for gotify (#1410)

* feat(gotify notification): added priority input for gotify

Added priority field for gotify messages on the gotify settings page

issue 562

* feat(gotify notification): added requested changes

fixed json end of file new line, removed unused code, added default priority for previous
configurations

* feat(gotify notifcation): fixed cypress/config/settings.cypress.json

fixed cypress/config/settings.cypress.json

* Update cypress/config/settings.cypress.json

Removed extra line from settings.cypress.json

Co-authored-by: Gauthier <mail@gauthierth.fr>

---------

Co-authored-by: Gauthier <mail@gauthierth.fr>
This commit is contained in:
Nathan Lemmon
2025-04-06 09:49:43 -05:00
committed by GitHub
parent 5a6ff61f64
commit 21400cecdc
5 changed files with 52 additions and 7 deletions

View File

@@ -17,9 +17,11 @@ const messages = defineMessages(
agentenabled: 'Enable Agent',
url: 'Server URL',
token: 'Application Token',
priority: 'Priority',
validationUrlRequired: 'You must provide a valid URL',
validationUrlTrailingSlash: 'URL must not end in a trailing slash',
validationTokenRequired: 'You must provide an application token',
validationPriorityRequired: 'You must set a priority number',
gotifysettingssaved: 'Gotify notification settings saved successfully!',
gotifysettingsfailed: 'Gotify notification settings failed to save.',
toastGotifyTestSending: 'Sending Gotify test notification…',
@@ -65,6 +67,15 @@ const NotificationsGotify = () => {
.required(intl.formatMessage(messages.validationTokenRequired)),
otherwise: Yup.string().nullable(),
}),
priority: Yup.string().when('enabled', {
is: true,
then: Yup.string()
.nullable()
.min(0)
.max(9)
.required(intl.formatMessage(messages.validationPriorityRequired)),
otherwise: Yup.string().nullable(),
}),
});
if (!data && !error) {
@@ -78,6 +89,7 @@ const NotificationsGotify = () => {
types: data?.types,
url: data?.options.url,
token: data?.options.token,
priority: data?.options.priority,
}}
validationSchema={NotificationsGotifySchema}
onSubmit={async (values) => {
@@ -93,6 +105,7 @@ const NotificationsGotify = () => {
options: {
url: values.url,
token: values.token,
priority: Number(values.priority),
},
}),
});
@@ -147,6 +160,7 @@ const NotificationsGotify = () => {
options: {
url: values.url,
token: values.token,
priority: Number(values.priority),
},
}),
}
@@ -216,6 +230,30 @@ const NotificationsGotify = () => {
)}
</div>
</div>
<div className="form-row">
<label htmlFor="priority" className="text-label">
{intl.formatMessage(messages.priority)}
<span className="label-required">*</span>
</label>
<div className="form-input-area">
<Field
id="priority"
name="priority"
type="text"
inputMode="numeric"
className="short"
autoComplete="off"
data-1pignore="true"
data-lpignore="true"
data-bwignore="true"
/>
{errors.priority &&
touched.priority &&
typeof errors.priority === 'string' && (
<div className="error">{errors.priority}</div>
)}
</div>
</div>
<NotificationTypeSelector
currentTypes={values.enabled ? values.types : 0}
onUpdate={(newTypes) => {