add support of initialization & finalization to function node

This commit is contained in:
Hiroyasu Nishiyama
2020-03-07 01:55:45 +09:00
parent c9ad5bea93
commit 84d2b8ad6d
8 changed files with 269 additions and 26 deletions

View File

@@ -50,6 +50,18 @@ RED.library = (function() {
'</form>'+
'</div>'
function toSingleLine(text) {
var result = text.replace(/\\/g, "\\\\").replace(/\n/g, "\\n");
return result;
}
function fromSingleLine(text) {
var result = text.replace(/\\[\\n]/g, function(s) {
return ((s === "\\\\") ? "\\" : "\n");
});
return result;
}
function saveToLibrary() {
var elementPrefix = activeLibrary.elementPrefix || "node-input-";
var name = $("#"+elementPrefix+"name").val().trim();
@@ -68,6 +80,10 @@ RED.library = (function() {
var field = activeLibrary.fields[i];
if (field == "name") {
data.name = name;
} else if(field == "initialize") {
data.initialize = toSingleLine(activeLibrary.initEditor.getValue());
} else if(field == "finalize") {
data.finalize = toSingleLine(activeLibrary.finalizeEditor.getValue());
} else {
data[field] = $("#"+elementPrefix+field).val();
}
@@ -523,7 +539,17 @@ RED.library = (function() {
var elementPrefix = activeLibrary.elementPrefix || "node-input-";
for (var i=0; i<activeLibrary.fields.length; i++) {
var field = activeLibrary.fields[i];
$("#"+elementPrefix+field).val(selectedLibraryItem[field]);
if (field === "initialize") {
var text = fromSingleLine(selectedLibraryItem.initialize);
activeLibrary.initEditor.setValue(text, -1);
}
else if (field === "finalize") {
var text = fromSingleLine(selectedLibraryItem.finalize);
activeLibrary.finalizeEditor.setValue(text, -1);
}
else {
$("#"+elementPrefix+field).val(selectedLibraryItem[field]);
}
}
activeLibrary.editor.setValue(libraryEditor.getValue(),-1);
}