mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
37 lines
1.7 KiB
JavaScript
37 lines
1.7 KiB
JavaScript
RED.runtime = (function() {
|
|
let state = ""
|
|
let settings = { ui: false, enabled: false };
|
|
const STOPPED = "stop"
|
|
const STARTED = "start"
|
|
const SAFE = "safe"
|
|
|
|
return {
|
|
init: function() {
|
|
// refresh the current runtime status from server
|
|
settings = Object.assign({}, settings, RED.settings.runtimeState);
|
|
RED.events.on("runtime-state", function(msg) {
|
|
if (msg.state) {
|
|
const currentState = state
|
|
state = msg.state
|
|
$(".red-ui-flow-node-button").toggleClass("red-ui-flow-node-button-stopped", state !== STARTED)
|
|
if(settings.enabled === true && settings.ui === true) {
|
|
RED.menu.setVisible("deploymenu-item-runtime-stop", state === STARTED)
|
|
RED.menu.setVisible("deploymenu-item-runtime-start", state !== STARTED)
|
|
}
|
|
// Do not notify the user about this event if:
|
|
// - This is the very first event we've received after loading the editor (currentState = '')
|
|
// - The state matches what we already thought was the case (state === currentState)
|
|
// - The event was triggered by a deploy (msg.deploy === true)
|
|
// - The event is a safe mode event - that gets notified separately
|
|
if (currentState !== '' && state !== currentState && !msg.deploy && state !== SAFE) {
|
|
RED.notify(RED._("notification.state.flows"+(state === STOPPED?'Stopped':'Started'), msg), "success")
|
|
}
|
|
}
|
|
});
|
|
},
|
|
get started() {
|
|
return state === STARTED
|
|
}
|
|
}
|
|
})()
|