mirror of
				https://github.com/louislam/uptime-kuma.git
				synced 2025-11-04 13:46:13 +08:00 
			
		
		
		
	Merge from upstream
This commit is contained in:
		@@ -12,6 +12,11 @@ export default {
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
        /**
 | 
			
		||||
         * Convert value to UTC
 | 
			
		||||
         * @param {string | number | Date | dayjs.Dayjs} value
 | 
			
		||||
         * @returns {dayjs.Dayjs}
 | 
			
		||||
         */
 | 
			
		||||
        toUTC(value) {
 | 
			
		||||
            return dayjs.tz(value, this.timezone).utc().format();
 | 
			
		||||
        },
 | 
			
		||||
@@ -34,6 +39,11 @@ export default {
 | 
			
		||||
            return this.datetimeFormat(value, "YYYY-MM-DD HH:mm:ss");
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Get time for maintenance
 | 
			
		||||
         * @param {string | number | Date | dayjs.Dayjs} value
 | 
			
		||||
         * @returns {string}
 | 
			
		||||
         */
 | 
			
		||||
        datetimeMaintenance(value) {
 | 
			
		||||
            const inputDate = new Date(value);
 | 
			
		||||
            const now = new Date(Date.now());
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@ import { useToast } from "vue-toastification";
 | 
			
		||||
import jwtDecode from "jwt-decode";
 | 
			
		||||
import Favico from "favico.js";
 | 
			
		||||
import dayjs from "dayjs";
 | 
			
		||||
import { DOWN, MAINTENANCE, PENDING, UP } from "../util.ts";
 | 
			
		||||
const toast = useToast();
 | 
			
		||||
 | 
			
		||||
let socket;
 | 
			
		||||
@@ -454,6 +455,10 @@ export default {
 | 
			
		||||
            socket.emit("getMonitorList", callback);
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Get list of maintenances
 | 
			
		||||
         * @param {socketCB} callback
 | 
			
		||||
         */
 | 
			
		||||
        getMaintenanceList(callback) {
 | 
			
		||||
            if (! callback) {
 | 
			
		||||
                callback = () => { };
 | 
			
		||||
@@ -470,22 +475,49 @@ export default {
 | 
			
		||||
            socket.emit("add", monitor, callback);
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Adds a maintenace
 | 
			
		||||
         * @param {Object} maintenance
 | 
			
		||||
         * @param {socketCB} callback
 | 
			
		||||
         */
 | 
			
		||||
        addMaintenance(maintenance, callback) {
 | 
			
		||||
            socket.emit("addMaintenance", maintenance, callback);
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Add monitors to maintenance
 | 
			
		||||
         * @param {number} maintenanceID
 | 
			
		||||
         * @param {number[]} monitors
 | 
			
		||||
         * @param {socketCB} callback
 | 
			
		||||
         */
 | 
			
		||||
        addMonitorMaintenance(maintenanceID, monitors, callback) {
 | 
			
		||||
            socket.emit("addMonitorMaintenance", maintenanceID, monitors, callback);
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Add status page to maintenance
 | 
			
		||||
         * @param {number} maintenanceID
 | 
			
		||||
         * @param {number} statusPages
 | 
			
		||||
         * @param {socketCB} callback
 | 
			
		||||
         */
 | 
			
		||||
        addMaintenanceStatusPage(maintenanceID, statusPages, callback) {
 | 
			
		||||
            socket.emit("addMaintenanceStatusPage", maintenanceID, statusPages, callback);
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Get monitors affected by maintenance
 | 
			
		||||
         * @param {number} maintenanceID
 | 
			
		||||
         * @param {socketCB} callback
 | 
			
		||||
         */
 | 
			
		||||
        getMonitorMaintenance(maintenanceID, callback) {
 | 
			
		||||
            socket.emit("getMonitorMaintenance", maintenanceID, callback);
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Get status pages where maintenance is shown
 | 
			
		||||
         * @param {number} maintenanceID
 | 
			
		||||
         * @param {socketCB} callback
 | 
			
		||||
         */
 | 
			
		||||
        getMaintenanceStatusPage(maintenanceID, callback) {
 | 
			
		||||
            socket.emit("getMaintenanceStatusPage", maintenanceID, callback);
 | 
			
		||||
        },
 | 
			
		||||
@@ -499,6 +531,11 @@ export default {
 | 
			
		||||
            socket.emit("deleteMonitor", monitorID, callback);
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Delete specified maintenance
 | 
			
		||||
         * @param {number} maintenanceID
 | 
			
		||||
         * @param {socketCB} callback
 | 
			
		||||
         */
 | 
			
		||||
        deleteMaintenance(maintenanceID, callback) {
 | 
			
		||||
            socket.emit("deleteMaintenance", maintenanceID, callback);
 | 
			
		||||
        },
 | 
			
		||||
@@ -590,28 +627,28 @@ export default {
 | 
			
		||||
            for (let monitorID in this.lastHeartbeatList) {
 | 
			
		||||
                let lastHeartBeat = this.lastHeartbeatList[monitorID];
 | 
			
		||||
 | 
			
		||||
                if (this.monitorList[monitorID] && this.monitorList[monitorID].maintenance) {
 | 
			
		||||
                    result[monitorID] = {
 | 
			
		||||
                        text: this.$t("statusMaintenance"),
 | 
			
		||||
                        color: "maintenance",
 | 
			
		||||
                    };
 | 
			
		||||
                } else if (! lastHeartBeat) {
 | 
			
		||||
                if (! lastHeartBeat) {
 | 
			
		||||
                    result[monitorID] = unknown;
 | 
			
		||||
                } else if (lastHeartBeat.status === 1) {
 | 
			
		||||
                } else if (lastHeartBeat.status === UP) {
 | 
			
		||||
                    result[monitorID] = {
 | 
			
		||||
                        text: this.$t("Up"),
 | 
			
		||||
                        color: "primary",
 | 
			
		||||
                    };
 | 
			
		||||
                } else if (lastHeartBeat.status === 0) {
 | 
			
		||||
                } else if (lastHeartBeat.status === DOWN) {
 | 
			
		||||
                    result[monitorID] = {
 | 
			
		||||
                        text: this.$t("Down"),
 | 
			
		||||
                        color: "danger",
 | 
			
		||||
                    };
 | 
			
		||||
                } else if (lastHeartBeat.status === 2) {
 | 
			
		||||
                } else if (lastHeartBeat.status === PENDING) {
 | 
			
		||||
                    result[monitorID] = {
 | 
			
		||||
                        text: this.$t("Pending"),
 | 
			
		||||
                        color: "warning",
 | 
			
		||||
                    };
 | 
			
		||||
                } else if (lastHeartBeat.status === MAINTENANCE) {
 | 
			
		||||
                    result[monitorID] = {
 | 
			
		||||
                        text: this.$t("statusMaintenance"),
 | 
			
		||||
                        color: "maintenance",
 | 
			
		||||
                    };
 | 
			
		||||
                } else {
 | 
			
		||||
                    result[monitorID] = unknown;
 | 
			
		||||
                }
 | 
			
		||||
@@ -633,17 +670,17 @@ export default {
 | 
			
		||||
                let beat = this.$root.lastHeartbeatList[monitorID];
 | 
			
		||||
                let monitor = this.$root.monitorList[monitorID];
 | 
			
		||||
 | 
			
		||||
                if (monitor && monitor.maintenance) {
 | 
			
		||||
                    result.maintenance++;
 | 
			
		||||
                } else if (monitor && ! monitor.active) {
 | 
			
		||||
                if (monitor && ! monitor.active) {
 | 
			
		||||
                    result.pause++;
 | 
			
		||||
                } else if (beat) {
 | 
			
		||||
                    if (beat.status === 1) {
 | 
			
		||||
                    if (beat.status === UP) {
 | 
			
		||||
                        result.up++;
 | 
			
		||||
                    } else if (beat.status === 0) {
 | 
			
		||||
                    } else if (beat.status === DOWN) {
 | 
			
		||||
                        result.down++;
 | 
			
		||||
                    } else if (beat.status === 2) {
 | 
			
		||||
                    } else if (beat.status === PENDING) {
 | 
			
		||||
                        result.up++;
 | 
			
		||||
                    } else if (beat.status === MAINTENANCE) {
 | 
			
		||||
                        result.maintenance++;
 | 
			
		||||
                    } else {
 | 
			
		||||
                        result.unknown++;
 | 
			
		||||
                    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user