diff --git a/src/components/NotificationDialog.vue b/src/components/NotificationDialog.vue index 78d89091..2cf5eed2 100644 --- a/src/components/NotificationDialog.vue +++ b/src/components/NotificationDialog.vue @@ -108,15 +108,15 @@ export default { watch: { "notification.type"(to, from) { let oldName; - + console.log(this.$root.notificationList) if (from) { - oldName = `My ${ucfirst(from)} Alert (1)`; + oldName = this.getUniqueDefaultName(from); } else { oldName = ""; } if (! this.notification.name || this.notification.name === oldName) { - this.notification.name = `My ${ucfirst(to)} Alert (1)` + this.notification.name = this.getUniqueDefaultName(to); } }, }, @@ -192,6 +192,21 @@ export default { } }) }, + /** + * @param {string} notificationKey + * @return {string} + */ + getUniqueDefaultName(notificationKey) { + let index = 1 + let name = "" + do { + name = this.$t("defaultNotificationName", [ + this.$t(notificationKey).replace(/\(.+\)/, ""), + index++ + ]); + } while (this.$root.notificationList.find(it => it.name === name)) + return name + } }, } diff --git a/src/languages/en.js b/src/languages/en.js index ca568944..c4525aef 100644 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -169,6 +169,7 @@ export default { "Avg. Ping": "Avg. Ping", "Avg. Response": "Avg. Response", // Start notification form + defaultNotificationName: "My {0} Alert ({1})", here: "here", "Required": "Required",