mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Merge branch 'master' into dev
This commit is contained in:
commit
d7df20413d
56
CHANGELOG.md
56
CHANGELOG.md
@ -1,3 +1,59 @@
|
|||||||
|
#### 1.0.6: Maintenance Release
|
||||||
|
|
||||||
|
Runtime
|
||||||
|
|
||||||
|
- Update to JSONata 1.8.3
|
||||||
|
- #2536 Handle clone of null in utils
|
||||||
|
|
||||||
|
Editor
|
||||||
|
|
||||||
|
- Prevent button label wrapping in typedInput
|
||||||
|
- Handle error objects when reporting in palette manager
|
||||||
|
|
||||||
|
Nodes
|
||||||
|
|
||||||
|
- Inject: Revert to cron 1.7.2
|
||||||
|
- UDP: when reusing input socket honour the broadcast mode.
|
||||||
|
|
||||||
|
#### 1.0.5: Maintenance Release
|
||||||
|
|
||||||
|
Runtime
|
||||||
|
|
||||||
|
- #2500 Support for context stores using JSONata and evaluateNodeProperty()
|
||||||
|
- Add better handling of host-key-verify error with projects
|
||||||
|
- #2517 Handle false values in $env() properly
|
||||||
|
- #2514 Ensure complete node scope is remapped in subflows
|
||||||
|
- #2513 Flows/subflows must preinitialise their context objects
|
||||||
|
- Clear node.close timeout to avoid unnecessary work on restart
|
||||||
|
- #2532 Set flow.disabled when disabled property is false
|
||||||
|
- #2522 Ensure file context does not write 'undefined' to store
|
||||||
|
|
||||||
|
Editor
|
||||||
|
|
||||||
|
- #2489 Fix XPath in UI tests
|
||||||
|
- #2504 Fix paletteCategories order
|
||||||
|
- #2501 Add page objects for UI testing
|
||||||
|
- #2494 Check node props when deciding if pasted node can splice links
|
||||||
|
- #2521 Don't double-sanitize node name in debug sidebar
|
||||||
|
- #2519 German i18n updates
|
||||||
|
- #2523 Update nodeTabMap when replacing unknown nodes
|
||||||
|
- Update TypedInput to use flexbox and remove resizing code
|
||||||
|
- Handle nodes with no wires array
|
||||||
|
- Do not collapse whitespace in Debug string messages
|
||||||
|
|
||||||
|
Nodes
|
||||||
|
|
||||||
|
- File: Remove old legacy wording from file node info to stop confusing users.
|
||||||
|
- Join: Ensure join node handles missing buffer joiner when not in string mode
|
||||||
|
- Exec: make exec node logging consistent with itself. (only be verbose when in verbose mode)
|
||||||
|
- Trigger: reset default timeout value when switching away from wait for reset
|
||||||
|
- Join: Fix join to not crash on appending invalid types to buffer.
|
||||||
|
- MQTT out: Add warning if topic contains + or #
|
||||||
|
- #2502 WebSocket i18n update
|
||||||
|
- #2508 Add Japanese translation for join node
|
||||||
|
- TCP out: tidy up select of which rows to display
|
||||||
|
|
||||||
|
|
||||||
#### 1.0.4: Maintenance Release
|
#### 1.0.4: Maintenance Release
|
||||||
|
|
||||||
Runtime
|
Runtime
|
||||||
|
16
package.json
16
package.json
@ -32,9 +32,9 @@
|
|||||||
"clone": "2.1.2",
|
"clone": "2.1.2",
|
||||||
"content-type": "1.0.4",
|
"content-type": "1.0.4",
|
||||||
"cookie": "0.4.0",
|
"cookie": "0.4.0",
|
||||||
"cookie-parser": "1.4.4",
|
"cookie-parser": "1.4.5",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"cron": "1.8.2",
|
"cron": "1.7.2",
|
||||||
"denque": "1.4.1",
|
"denque": "1.4.1",
|
||||||
"express": "4.17.1",
|
"express": "4.17.1",
|
||||||
"express-session": "1.17.0",
|
"express-session": "1.17.0",
|
||||||
@ -47,18 +47,18 @@
|
|||||||
"is-utf8": "0.2.1",
|
"is-utf8": "0.2.1",
|
||||||
"js-yaml": "3.13.1",
|
"js-yaml": "3.13.1",
|
||||||
"json-stringify-safe": "5.0.1",
|
"json-stringify-safe": "5.0.1",
|
||||||
"jsonata": "1.8.1",
|
"jsonata": "1.8.3",
|
||||||
"lodash.clonedeep": "^4.5.0",
|
"lodash.clonedeep": "^4.5.0",
|
||||||
"media-typer": "1.1.0",
|
"media-typer": "1.1.0",
|
||||||
"memorystore": "1.6.2",
|
"memorystore": "1.6.2",
|
||||||
"mime": "2.4.4",
|
"mime": "2.4.4",
|
||||||
"mqtt": "2.18.8",
|
"mqtt": "2.18.8",
|
||||||
"multer": "1.4.2",
|
"multer": "1.4.2",
|
||||||
"mustache": "4.0.0",
|
"mustache": "4.0.1",
|
||||||
"node-red-node-rbe": "^0.2.6",
|
"node-red-node-rbe": "^0.2.6",
|
||||||
"node-red-node-sentiment": "^0.1.6",
|
"node-red-node-sentiment": "^0.1.6",
|
||||||
"node-red-node-tail": "^0.1.0",
|
"node-red-node-tail": "^0.1.0",
|
||||||
"nopt": "4.0.1",
|
"nopt": "4.0.3",
|
||||||
"oauth2orize": "1.11.0",
|
"oauth2orize": "1.11.0",
|
||||||
"on-headers": "1.0.2",
|
"on-headers": "1.0.2",
|
||||||
"passport": "0.4.1",
|
"passport": "0.4.1",
|
||||||
@ -67,16 +67,16 @@
|
|||||||
"raw-body": "2.4.1",
|
"raw-body": "2.4.1",
|
||||||
"request": "2.88.0",
|
"request": "2.88.0",
|
||||||
"semver": "6.3.0",
|
"semver": "6.3.0",
|
||||||
"uglify-js": "3.8.0",
|
"uglify-js": "3.8.1",
|
||||||
"when": "3.7.8",
|
"when": "3.7.8",
|
||||||
"ws": "6.2.1",
|
"ws": "6.2.1",
|
||||||
"xml2js": "0.4.23"
|
"xml2js": "0.4.23"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"bcrypt": "3.0.6"
|
"bcrypt": "3.0.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"marked": "0.8.0",
|
"marked": "0.8.2",
|
||||||
"dompurify": "2.0.8",
|
"dompurify": "2.0.8",
|
||||||
"grunt": "~1.0.4",
|
"grunt": "~1.0.4",
|
||||||
"grunt-chmod": "~1.1.1",
|
"grunt-chmod": "~1.1.1",
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
"express": "4.17.1",
|
"express": "4.17.1",
|
||||||
"memorystore": "1.6.2",
|
"memorystore": "1.6.2",
|
||||||
"mime": "2.4.4",
|
"mime": "2.4.4",
|
||||||
"mustache": "4.0.0",
|
"mustache": "4.0.1",
|
||||||
"oauth2orize": "1.11.0",
|
"oauth2orize": "1.11.0",
|
||||||
"passport-http-bearer": "1.0.1",
|
"passport-http-bearer": "1.0.1",
|
||||||
"passport-oauth2-client-password": "0.1.2",
|
"passport-oauth2-client-password": "0.1.2",
|
||||||
|
@ -1224,7 +1224,7 @@ RED.nodes = (function() {
|
|||||||
defaults: {},
|
defaults: {},
|
||||||
label: "unknown: "+n.type,
|
label: "unknown: "+n.type,
|
||||||
labelStyle: "red-ui-flow-node-label-italic",
|
labelStyle: "red-ui-flow-node-label-italic",
|
||||||
outputs: n.outputs||n.wires.length,
|
outputs: n.outputs|| (n.wires && n.wires.length) || 0,
|
||||||
set: registry.getNodeSet("node-red/unknown")
|
set: registry.getNodeSet("node-red/unknown")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -737,11 +737,13 @@
|
|||||||
this.optionExpandButton.shown = false;
|
this.optionExpandButton.shown = false;
|
||||||
}
|
}
|
||||||
if (this.optionSelectTrigger) {
|
if (this.optionSelectTrigger) {
|
||||||
this.optionSelectTrigger.show();
|
this.optionSelectTrigger.css({"display":"inline-flex"});
|
||||||
if (!opt.hasValue) {
|
if (!opt.hasValue) {
|
||||||
|
this.optionSelectTrigger.css({"flex-grow":1})
|
||||||
this.elementDiv.hide();
|
this.elementDiv.hide();
|
||||||
this.valueLabelContainer.hide();
|
this.valueLabelContainer.hide();
|
||||||
} else {
|
} else {
|
||||||
|
this.optionSelectTrigger.css({"flex-grow":0})
|
||||||
this.elementDiv.show();
|
this.elementDiv.show();
|
||||||
this.valueLabelContainer.hide();
|
this.valueLabelContainer.hide();
|
||||||
}
|
}
|
||||||
|
@ -223,7 +223,11 @@ RED.palette.editor = (function() {
|
|||||||
var setElements = nodeEntry.sets[setName];
|
var setElements = nodeEntry.sets[setName];
|
||||||
if (set.err) {
|
if (set.err) {
|
||||||
errorCount++;
|
errorCount++;
|
||||||
$("<li>").text(set.err).appendTo(nodeEntry.errorList);
|
var errMessage = set.err;
|
||||||
|
if (set.err.message) {
|
||||||
|
errMessage = set.err.message;
|
||||||
|
}
|
||||||
|
$("<li>").text(errMessage).appendTo(nodeEntry.errorList);
|
||||||
}
|
}
|
||||||
if (set.enabled) {
|
if (set.enabled) {
|
||||||
activeTypeCount += set.types.length;
|
activeTypeCount += set.types.length;
|
||||||
|
@ -217,6 +217,10 @@
|
|||||||
.red-ui-debug-msg-type-number { color: $debug-message-text-color-msg-type-number; };
|
.red-ui-debug-msg-type-number { color: $debug-message-text-color-msg-type-number; };
|
||||||
.red-ui-debug-msg-type-number-toggle { cursor: pointer;}
|
.red-ui-debug-msg-type-number-toggle { cursor: pointer;}
|
||||||
|
|
||||||
|
.red-ui-debug-msg-type-string {
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
|
||||||
.red-ui-debug-msg-row {
|
.red-ui-debug-msg-row {
|
||||||
display: block;
|
display: block;
|
||||||
padding: 4px 2px 2px;
|
padding: 4px 2px 2px;
|
||||||
|
@ -760,7 +760,7 @@ button.red-ui-toggleButton.toggle {
|
|||||||
.red-ui-typedInput-value-label,.red-ui-typedInput-option-label {
|
.red-ui-typedInput-value-label,.red-ui-typedInput-option-label {
|
||||||
select,.placeholder-input {
|
select,.placeholder-input {
|
||||||
margin: 3px;
|
margin: 3px;
|
||||||
height: 26px;
|
height: 24px;
|
||||||
width: calc(100% - 10px);
|
width: calc(100% - 10px);
|
||||||
padding-left: 3px;
|
padding-left: 3px;
|
||||||
}
|
}
|
||||||
|
@ -110,9 +110,9 @@ button.red-ui-typedInput-option-trigger
|
|||||||
background: $form-button-background;
|
background: $form-button-background;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
min-width: 23px;
|
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
color: $form-text-color;
|
color: $form-text-color;
|
||||||
|
white-space: nowrap;
|
||||||
i.red-ui-typedInput-icon {
|
i.red-ui-typedInput-icon {
|
||||||
margin-left: 1px;
|
margin-left: 1px;
|
||||||
margin-right: 2px;
|
margin-right: 2px;
|
||||||
@ -174,25 +174,21 @@ button.red-ui-typedInput-option-trigger {
|
|||||||
padding: 0 0 0 0;
|
padding: 0 0 0 0;
|
||||||
position:relative;
|
position:relative;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
line-height: 32px;
|
||||||
|
display: inline-flex;
|
||||||
.red-ui-typedInput-option-label {
|
.red-ui-typedInput-option-label {
|
||||||
background:$form-button-background;
|
background:$form-button-background;
|
||||||
color: $form-text-color;
|
color: $form-text-color;
|
||||||
position:absolute;
|
flex-grow: 1;
|
||||||
left:0;
|
padding: 0 0 0 8px;
|
||||||
right:23px;
|
display:inline-block;
|
||||||
top: 0;
|
|
||||||
padding: 0 5px 0 8px;
|
|
||||||
i.red-ui-typedInput-icon {
|
|
||||||
margin-right: 4px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.red-ui-typedInput-option-caret {
|
.red-ui-typedInput-option-caret {
|
||||||
top: 0;
|
flex-grow: 0;
|
||||||
position: absolute;
|
display:inline-block;
|
||||||
right: 0;
|
width: 23px;
|
||||||
bottom: 0;
|
text-align: center;
|
||||||
width: 17px;
|
height: 100%;
|
||||||
padding-left: 5px;
|
|
||||||
&:before {
|
&:before {
|
||||||
content:'';
|
content:'';
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
|
|
||||||
<script type="text/html" data-template-name="change">
|
<script type="text/html" data-template-name="change">
|
||||||
|
<style>
|
||||||
|
ol#node-input-rule-container .red-ui-typedInput-container {
|
||||||
|
flex:1;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
|
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
|
||||||
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
|
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
|
||||||
@ -76,11 +81,6 @@
|
|||||||
var replace = this._("change.action.replace");
|
var replace = this._("change.action.replace");
|
||||||
var regex = this._("change.label.regex");
|
var regex = this._("change.label.regex");
|
||||||
|
|
||||||
function resizeRule(rule) {
|
|
||||||
var newWidth = rule.width();
|
|
||||||
rule.find('.red-ui-typedInput').typedInput("width",newWidth-130);
|
|
||||||
|
|
||||||
}
|
|
||||||
$('#node-input-rule-container').css('min-height','150px').css('min-width','450px').editableList({
|
$('#node-input-rule-container').css('min-height','150px').css('min-width','450px').editableList({
|
||||||
addItem: function(container,i,opt) {
|
addItem: function(container,i,opt) {
|
||||||
var rule = opt;
|
var rule = opt;
|
||||||
@ -106,10 +106,11 @@
|
|||||||
overflow: 'hidden',
|
overflow: 'hidden',
|
||||||
whiteSpace: 'nowrap'
|
whiteSpace: 'nowrap'
|
||||||
});
|
});
|
||||||
var row1 = $('<div/>').appendTo(container);
|
let fragment = document.createDocumentFragment();
|
||||||
var row2 = $('<div/>',{style:"margin-top:8px;"}).appendTo(container);
|
var row1 = $('<div/>',{style:"display:flex;"}).appendTo(fragment);
|
||||||
var row3 = $('<div/>',{style:"margin-top:8px;"}).appendTo(container);
|
var row2 = $('<div/>',{style:"display:flex;margin-top:8px;"}).appendTo(fragment);
|
||||||
var row4 = $('<div/>',{style:"margin-top:8px;"}).appendTo(container);
|
var row3 = $('<div/>',{style:"margin-top:8px;"}).appendTo(fragment);
|
||||||
|
var row4 = $('<div/>',{style:"display:flex;margin-top:8px;"}).appendTo(fragment);
|
||||||
|
|
||||||
var selectField = $('<select/>',{class:"node-input-rule-type",style:"width:110px; margin-right:10px;"}).appendTo(row1);
|
var selectField = $('<select/>',{class:"node-input-rule-type",style:"width:110px; margin-right:10px;"}).appendTo(row1);
|
||||||
var selectOptions = [{v:"set",l:set},{v:"change",l:change},{v:"delete",l:del},{v:"move",l:move}];
|
var selectOptions = [{v:"set",l:set},{v:"change",l:change},{v:"delete",l:del},{v:"move",l:move}];
|
||||||
@ -124,41 +125,82 @@
|
|||||||
$('<div/>',{style:"display:inline-block;text-align:right; width:120px; padding-right:10px; box-sizing:border-box;"})
|
$('<div/>',{style:"display:inline-block;text-align:right; width:120px; padding-right:10px; box-sizing:border-box;"})
|
||||||
.text(to)
|
.text(to)
|
||||||
.appendTo(row2);
|
.appendTo(row2);
|
||||||
var propertyValue = $('<input/>',{class:"node-input-rule-property-value",type:"text"})
|
|
||||||
|
function createPropertyValue() {
|
||||||
|
return $('<input/>',{class:"node-input-rule-property-value",type:"text"})
|
||||||
.appendTo(row2)
|
.appendTo(row2)
|
||||||
.typedInput({default:'str',types:['msg','flow','global','str','num','bool','json','bin','date','jsonata','env']});
|
.typedInput({default:'str',types:['msg','flow','global','str','num','bool','json','bin','date','jsonata','env']});
|
||||||
|
}
|
||||||
|
|
||||||
var row3_1 = $('<div/>').appendTo(row3);
|
var row3_1 = $('<div/>', {style:"display:flex;"}).appendTo(row3);
|
||||||
$('<div/>',{style:"display:inline-block;text-align:right; width:120px; padding-right:10px; box-sizing:border-box;"})
|
$('<div/>',{style:"display:inline-block;text-align:right; width:120px; padding-right:10px; box-sizing:border-box;"})
|
||||||
.text(search)
|
.text(search)
|
||||||
.appendTo(row3_1);
|
.appendTo(row3_1);
|
||||||
var fromValue = $('<input/>',{class:"node-input-rule-property-search-value",type:"text"})
|
|
||||||
|
function createFromValue() {
|
||||||
|
return $('<input/>',{class:"node-input-rule-property-search-value",type:"text"})
|
||||||
.appendTo(row3_1)
|
.appendTo(row3_1)
|
||||||
.typedInput({default:'str',types:['msg','flow','global','str','re','num','bool','env']});
|
.typedInput({default:'str',types:['msg','flow','global','str','re','num','bool','env']});
|
||||||
|
}
|
||||||
|
|
||||||
var row3_2 = $('<div/>',{style:"margin-top:8px;"}).appendTo(row3);
|
var row3_2 = $('<div/>',{style:"display:flex;margin-top:8px;"}).appendTo(row3);
|
||||||
$('<div/>',{style:"display:inline-block;text-align:right; width:120px; padding-right:10px; box-sizing:border-box;"})
|
$('<div/>',{style:"display:inline-block;text-align:right; width:120px; padding-right:10px; box-sizing:border-box;"})
|
||||||
.text(replace)
|
.text(replace)
|
||||||
.appendTo(row3_2);
|
.appendTo(row3_2);
|
||||||
var toValue = $('<input/>',{class:"node-input-rule-property-replace-value",type:"text"})
|
|
||||||
|
function createToValue() {
|
||||||
|
return $('<input/>',{class:"node-input-rule-property-replace-value",type:"text"})
|
||||||
.appendTo(row3_2)
|
.appendTo(row3_2)
|
||||||
.typedInput({default:'str',types:['msg','flow','global','str','num','bool','json','bin','env']});
|
.typedInput({default:'str',types:['msg','flow','global','str','num','bool','json','bin','env']});
|
||||||
|
}
|
||||||
|
|
||||||
$('<div/>',{style:"display:inline-block;text-align:right; width:120px; padding-right:10px; box-sizing:border-box;"})
|
$('<div/>',{style:"display:inline-block;text-align:right; width:120px; padding-right:10px; box-sizing:border-box;"})
|
||||||
.text(to)
|
.text(to)
|
||||||
.appendTo(row4);
|
.appendTo(row4);
|
||||||
var moveValue = $('<input/>',{class:"node-input-rule-property-move-value",type:"text"})
|
|
||||||
|
function createMoveValue() {
|
||||||
|
return $('<input/>',{class:"node-input-rule-property-move-value",type:"text"})
|
||||||
.appendTo(row4)
|
.appendTo(row4)
|
||||||
.typedInput({default:'msg',types:['msg','flow','global']});
|
.typedInput({default:'msg',types:['msg','flow','global']});
|
||||||
|
}
|
||||||
|
|
||||||
|
let propertyValue = null;
|
||||||
|
let fromValue = null;
|
||||||
|
let toValue = null;
|
||||||
|
let moveValue = null;
|
||||||
|
|
||||||
selectField.on("change", function() {
|
selectField.on("change", function() {
|
||||||
var width = $("#node-input-rule-container").width();
|
|
||||||
var type = $(this).val();
|
var type = $(this).val();
|
||||||
|
if (propertyValue) {
|
||||||
|
propertyValue.typedInput('hide');
|
||||||
|
}
|
||||||
|
if (fromValue) {
|
||||||
|
fromValue.typedInput('hide');
|
||||||
|
}
|
||||||
|
if (toValue) {
|
||||||
|
toValue.typedInput('hide');
|
||||||
|
}
|
||||||
|
if (moveValue) {
|
||||||
|
moveValue.typedInput('hide');
|
||||||
|
}
|
||||||
|
|
||||||
if (type == "set") {
|
if (type == "set") {
|
||||||
|
if(!propertyValue) {
|
||||||
|
propertyValue = createPropertyValue();
|
||||||
|
}
|
||||||
|
propertyValue.typedInput('show');
|
||||||
row2.show();
|
row2.show();
|
||||||
row3.hide();
|
row3.hide();
|
||||||
row4.hide();
|
row4.hide();
|
||||||
} else if (type == "change") {
|
} else if (type == "change") {
|
||||||
|
if(!fromValue) {
|
||||||
|
fromValue = createFromValue();
|
||||||
|
}
|
||||||
|
fromValue.typedInput('show');
|
||||||
|
if(!toValue) {
|
||||||
|
toValue = createToValue();
|
||||||
|
}
|
||||||
|
toValue.typedInput('show');
|
||||||
row2.hide();
|
row2.hide();
|
||||||
row3.show();
|
row3.show();
|
||||||
row4.hide();
|
row4.hide();
|
||||||
@ -167,30 +209,48 @@
|
|||||||
row3.hide();
|
row3.hide();
|
||||||
row4.hide();
|
row4.hide();
|
||||||
} else if (type == "move") {
|
} else if (type == "move") {
|
||||||
|
if(!moveValue) {
|
||||||
|
moveValue = createMoveValue();
|
||||||
|
}
|
||||||
|
moveValue.typedInput('show');
|
||||||
row2.hide();
|
row2.hide();
|
||||||
row3.hide();
|
row3.hide();
|
||||||
row4.show();
|
row4.show();
|
||||||
}
|
}
|
||||||
resizeRule(container);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
selectField.val(rule.t);
|
selectField.val(rule.t);
|
||||||
propertyName.typedInput('value',rule.p);
|
propertyName.typedInput('value',rule.p);
|
||||||
propertyName.typedInput('type',rule.pt);
|
propertyName.typedInput('type',rule.pt);
|
||||||
propertyValue.typedInput('value',rule.to);
|
if (rule.t == "set") {
|
||||||
propertyValue.typedInput('type',rule.tot);
|
if(!propertyValue) {
|
||||||
moveValue.typedInput('value',rule.to);
|
propertyValue = createPropertyValue();
|
||||||
moveValue.typedInput('type',rule.tot);
|
}
|
||||||
fromValue.typedInput('value',rule.from);
|
propertyValue.typedInput('value',rule.to);
|
||||||
fromValue.typedInput('type',rule.fromt);
|
propertyValue.typedInput('type',rule.tot);
|
||||||
toValue.typedInput('value',rule.to);
|
}
|
||||||
toValue.typedInput('type',rule.tot);
|
if (rule.t == "move") {
|
||||||
|
if(!moveValue) {
|
||||||
|
moveValue = createMoveValue();
|
||||||
|
}
|
||||||
|
moveValue.typedInput('value',rule.to);
|
||||||
|
moveValue.typedInput('type',rule.tot);
|
||||||
|
}
|
||||||
|
if (rule.t == "change") {
|
||||||
|
if(!fromValue) {
|
||||||
|
fromValue = createFromValue();
|
||||||
|
}
|
||||||
|
fromValue.typedInput('value',rule.from);
|
||||||
|
fromValue.typedInput('type',rule.fromt);
|
||||||
|
if (!toValue) {
|
||||||
|
toValue = createToValue();
|
||||||
|
}
|
||||||
|
toValue.typedInput('value',rule.to);
|
||||||
|
toValue.typedInput('type',rule.tot);
|
||||||
|
}
|
||||||
selectField.change();
|
selectField.change();
|
||||||
|
container[0].appendChild(fragment);
|
||||||
var newWidth = $("#node-input-rule-container").width();
|
|
||||||
resizeRule(container);
|
|
||||||
},
|
},
|
||||||
resizeItem: resizeRule,
|
|
||||||
removable: true,
|
removable: true,
|
||||||
sortable: true
|
sortable: true
|
||||||
});
|
});
|
||||||
|
@ -170,15 +170,14 @@
|
|||||||
$("#node-input-port-row").hide();
|
$("#node-input-port-row").hide();
|
||||||
$("#node-input-host-row").hide();
|
$("#node-input-host-row").hide();
|
||||||
$("#node-input-end-row").hide();
|
$("#node-input-end-row").hide();
|
||||||
|
} else if (sockettype == "client"){
|
||||||
|
$("#node-input-port-row").show();
|
||||||
|
$("#node-input-host-row").show();
|
||||||
|
$("#node-input-end-row").show();
|
||||||
} else {
|
} else {
|
||||||
$("#node-input-port-row").show();
|
$("#node-input-port-row").show();
|
||||||
$("#node-input-end-row").show();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sockettype == "client") {
|
|
||||||
$("#node-input-host-row").show();
|
|
||||||
} else {
|
|
||||||
$("#node-input-host-row").hide();
|
$("#node-input-host-row").hide();
|
||||||
|
$("#node-input-end-row").show();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
updateOptions();
|
updateOptions();
|
||||||
|
@ -180,6 +180,10 @@ module.exports = function(RED) {
|
|||||||
node.tout = setTimeout(function() {
|
node.tout = setTimeout(function() {
|
||||||
if (udpInputPortsInUse[p]) {
|
if (udpInputPortsInUse[p]) {
|
||||||
sock = udpInputPortsInUse[p];
|
sock = udpInputPortsInUse[p];
|
||||||
|
if (node.multicast != "false") {
|
||||||
|
sock.setBroadcast(true);
|
||||||
|
sock.setMulticastLoopback(false);
|
||||||
|
}
|
||||||
node.log(RED._("udp.status.re-use",{outport:node.outport,host:node.addr,port:node.port}));
|
node.log(RED._("udp.status.re-use",{outport:node.outport,host:node.addr,port:node.port}));
|
||||||
if (node.iface) { node.status({text:n.iface+" : "+node.iface}); }
|
if (node.iface) { node.status({text:n.iface+" : "+node.iface}); }
|
||||||
}
|
}
|
||||||
|
@ -19,10 +19,10 @@
|
|||||||
"body-parser": "1.19.0",
|
"body-parser": "1.19.0",
|
||||||
"cheerio": "0.22.0",
|
"cheerio": "0.22.0",
|
||||||
"content-type": "1.0.4",
|
"content-type": "1.0.4",
|
||||||
"cookie-parser": "1.4.4",
|
"cookie-parser": "1.4.5",
|
||||||
"cookie": "0.4.0",
|
"cookie": "0.4.0",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"cron": "1.8.2",
|
"cron": "1.7.2",
|
||||||
"denque": "1.4.1",
|
"denque": "1.4.1",
|
||||||
"fs-extra": "8.1.0",
|
"fs-extra": "8.1.0",
|
||||||
"fs.notify": "0.0.4",
|
"fs.notify": "0.0.4",
|
||||||
@ -33,7 +33,7 @@
|
|||||||
"media-typer": "1.1.0",
|
"media-typer": "1.1.0",
|
||||||
"mqtt": "2.18.8",
|
"mqtt": "2.18.8",
|
||||||
"multer": "1.4.2",
|
"multer": "1.4.2",
|
||||||
"mustache": "4.0.0",
|
"mustache": "4.0.1",
|
||||||
"on-headers": "1.0.2",
|
"on-headers": "1.0.2",
|
||||||
"raw-body": "2.4.1",
|
"raw-body": "2.4.1",
|
||||||
"request": "2.88.0",
|
"request": "2.88.0",
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@node-red/util": "1.1.0",
|
"@node-red/util": "1.1.0",
|
||||||
"semver": "6.3.0",
|
"semver": "6.3.0",
|
||||||
"uglify-js": "3.8.0",
|
"uglify-js": "3.8.1",
|
||||||
"when": "3.7.8"
|
"when": "3.7.8"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -203,10 +203,10 @@ LocalFileSystem.prototype.open = function(){
|
|||||||
var newContext = self.cache._export();
|
var newContext = self.cache._export();
|
||||||
scopes.forEach(function(scope) {
|
scopes.forEach(function(scope) {
|
||||||
var storagePath = getStoragePath(self.storageBaseDir,scope);
|
var storagePath = getStoragePath(self.storageBaseDir,scope);
|
||||||
var context = newContext[scope];
|
var context = newContext[scope] || {};
|
||||||
var stringifiedContext = stringify(context);
|
var stringifiedContext = stringify(context);
|
||||||
if (stringifiedContext.circular && !self.knownCircularRefs[scope]) {
|
if (stringifiedContext.circular && !self.knownCircularRefs[scope]) {
|
||||||
log.warn(log._("error-circular",{scope:scope}));
|
log.warn(log._("context.localfilesystem.error-circular",{scope:scope}));
|
||||||
self.knownCircularRefs[scope] = true;
|
self.knownCircularRefs[scope] = true;
|
||||||
} else {
|
} else {
|
||||||
delete self.knownCircularRefs[scope];
|
delete self.knownCircularRefs[scope];
|
||||||
@ -324,7 +324,7 @@ LocalFileSystem.prototype.set = function(scope, key, value, callback) {
|
|||||||
}
|
}
|
||||||
var stringifiedContext = stringify(obj);
|
var stringifiedContext = stringify(obj);
|
||||||
if (stringifiedContext.circular && !self.knownCircularRefs[scope]) {
|
if (stringifiedContext.circular && !self.knownCircularRefs[scope]) {
|
||||||
log.warn(log._("error-circular",{scope:scope}));
|
log.warn(log._("context.localfilesystem.error-circular",{scope:scope}));
|
||||||
self.knownCircularRefs[scope] = true;
|
self.knownCircularRefs[scope] = true;
|
||||||
} else {
|
} else {
|
||||||
delete self.knownCircularRefs[scope];
|
delete self.knownCircularRefs[scope];
|
||||||
|
@ -553,7 +553,7 @@ function getFlow(id) {
|
|||||||
if (flow.label) {
|
if (flow.label) {
|
||||||
result.label = flow.label;
|
result.label = flow.label;
|
||||||
}
|
}
|
||||||
if (flow.disabled) {
|
if (flow.hasOwnProperty('disabled')) {
|
||||||
result.disabled = flow.disabled;
|
result.disabled = flow.disabled;
|
||||||
}
|
}
|
||||||
if (flow.hasOwnProperty('info')) {
|
if (flow.hasOwnProperty('info')) {
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
"clone": "2.1.2",
|
"clone": "2.1.2",
|
||||||
"i18next": "15.1.2",
|
"i18next": "15.1.2",
|
||||||
"json-stringify-safe": "5.0.1",
|
"json-stringify-safe": "5.0.1",
|
||||||
"jsonata": "1.8.1",
|
"jsonata": "1.8.3",
|
||||||
"lodash.clonedeep": "^4.5.0",
|
"lodash.clonedeep": "^4.5.0",
|
||||||
"when": "3.7.8"
|
"when": "3.7.8"
|
||||||
}
|
}
|
||||||
|
2
packages/node_modules/node-red/package.json
vendored
2
packages/node_modules/node-red/package.json
vendored
@ -41,7 +41,7 @@
|
|||||||
"fs-extra": "8.1.0",
|
"fs-extra": "8.1.0",
|
||||||
"node-red-node-rbe": "^0.2.6",
|
"node-red-node-rbe": "^0.2.6",
|
||||||
"node-red-node-tail": "^0.1.0",
|
"node-red-node-tail": "^0.1.0",
|
||||||
"nopt": "4.0.1",
|
"nopt": "4.0.3",
|
||||||
"semver": "6.3.0"
|
"semver": "6.3.0"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
|
Loading…
Reference in New Issue
Block a user