diff --git a/server/model/monitor.js b/server/model/monitor.js index 6c19f40..c8661cf 100644 --- a/server/model/monitor.js +++ b/server/model/monitor.js @@ -32,7 +32,7 @@ class Monitor extends BeanModel { notificationIDList[bean.notification_id] = true; } - const tags = await R.getAll("SELECT * FROM monitor_tag mt JOIN tag ON mt.tag_id = tag.id WHERE mt.monitor_id = ?", [this.id]); + const tags = await R.getAll("SELECT mt.*, tag.name, tag.color FROM monitor_tag mt JOIN tag ON mt.tag_id = tag.id WHERE mt.monitor_id = ?", [this.id]); return { id: this.id, diff --git a/server/server.js b/server/server.js index fc79d7e..245b34f 100644 --- a/server/server.js +++ b/server/server.js @@ -471,6 +471,7 @@ let indexHTML = fs.readFileSync("./dist/index.html").toString(); let bean = R.dispense("tag") bean.name = tag.name + bean.color = tag.color await R.store(bean) callback({ @@ -492,6 +493,7 @@ let indexHTML = fs.readFileSync("./dist/index.html").toString(); let bean = await R.findOne("monitor", " id = ? ", [ tag.id ]) bean.name = tag.name + bean.color = tag.color await R.store(bean) callback({ @@ -581,6 +583,9 @@ let indexHTML = fs.readFileSync("./dist/index.html").toString(); monitorID, ]) + // Cleanup unused Tags + await R.exec("delete from tag where ( select count(*) from monitor_tag mt where tag.id = mt.tag_id ) = 0"); + callback({ ok: true, msg: "Deleted Successfully.", diff --git a/src/components/TagsManager.vue b/src/components/TagsManager.vue index 3609293..9474a08 100644 --- a/src/components/TagsManager.vue +++ b/src/components/TagsManager.vue @@ -6,7 +6,7 @@ v-for="item in selectedTags" :key="item.id" :item="item" - :remove="removeTag" + :remove="deleteTag" />
@@ -79,9 +79,10 @@
@@ -93,6 +94,8 @@