diff --git a/server/model/monitor.js b/server/model/monitor.js
index 8f32132ba..f33dcbb76 100644
--- a/server/model/monitor.js
+++ b/server/model/monitor.js
@@ -351,7 +351,10 @@ class Monitor extends BeanModel {
const lastBeat = await Monitor.getPreviousHeartbeat(child.id);
// Only change state if the monitor is in worse conditions then the ones before
- if (bean.status === UP && (lastBeat.status === PENDING || lastBeat.status === DOWN)) {
+ // lastBeat.status could be null
+ if (!lastBeat) {
+ bean.status = PENDING;
+ } else if (bean.status === UP && (lastBeat.status === PENDING || lastBeat.status === DOWN)) {
bean.status = lastBeat.status;
} else if (bean.status === PENDING && lastBeat.status === DOWN) {
bean.status = lastBeat.status;
diff --git a/server/server.js b/server/server.js
index 4917402d8..ad01eab2f 100644
--- a/server/server.js
+++ b/server/server.js
@@ -657,7 +657,10 @@ let needSetup = false;
await updateMonitorNotification(bean.id, notificationIDList);
await server.sendMonitorList(socket);
- await startMonitor(socket.userID, bean.id);
+
+ if (monitor.active !== false) {
+ await startMonitor(socket.userID, bean.id);
+ }
log.info("monitor", `Added Monitor: ${monitor.id} User ID: ${socket.userID}`);
diff --git a/src/components/ActionSelect.vue b/src/components/ActionSelect.vue
new file mode 100644
index 000000000..ae09e6566
--- /dev/null
+++ b/src/components/ActionSelect.vue
@@ -0,0 +1,70 @@
+
+