2013-09-05 16:02:48 +02:00
|
|
|
|
2020-03-13 12:28:19 +01:00
|
|
|
<script type="text/html" data-template-name="file">
|
2013-09-05 16:02:48 +02:00
|
|
|
<div class="form-row node-input-filename">
|
2015-05-10 22:47:22 +02:00
|
|
|
<label for="node-input-filename"><i class="fa fa-file"></i> <span data-i18n="file.label.filename"></span></label>
|
2016-10-28 09:37:33 +02:00
|
|
|
<input id="node-input-filename" type="text">
|
2013-09-05 16:02:48 +02:00
|
|
|
</div>
|
|
|
|
<div class="form-row">
|
2015-05-10 22:47:22 +02:00
|
|
|
<label for="node-input-overwriteFile"><i class="fa fa-random"></i> <span data-i18n="file.label.action"></span></label>
|
2017-05-24 17:55:53 +02:00
|
|
|
<select type="text" id="node-input-overwriteFile" style="width: 250px;">
|
2015-05-28 16:29:01 +02:00
|
|
|
<option value="false" data-i18n="file.action.append"></option>
|
|
|
|
<option value="true" data-i18n="file.action.overwrite"></option>
|
|
|
|
<option value="delete" data-i18n="file.action.delete"></option>
|
2014-11-08 16:34:37 +01:00
|
|
|
</select>
|
2013-09-05 16:02:48 +02:00
|
|
|
</div>
|
2017-05-24 17:55:53 +02:00
|
|
|
<div class="form-row form-row-file-write-options">
|
2013-09-05 16:02:48 +02:00
|
|
|
<label> </label>
|
2015-07-10 15:59:23 +02:00
|
|
|
<input type="checkbox" id="node-input-appendNewline" style="display: inline-block; width: auto; vertical-align: top;">
|
2015-05-10 22:47:22 +02:00
|
|
|
<label for="node-input-appendNewline" style="width: 70%;"><span data-i18n="file.label.addnewline"></span></label>
|
2013-09-05 16:02:48 +02:00
|
|
|
</div>
|
2017-05-24 17:55:53 +02:00
|
|
|
<div class="form-row form-row-file-write-options">
|
2015-07-10 15:59:23 +02:00
|
|
|
<label> </label>
|
|
|
|
<input type="checkbox" id="node-input-createDir" style="display: inline-block; width: auto; vertical-align: top;">
|
|
|
|
<label for="node-input-createDir" style="width: 70%;"><span data-i18n="file.label.createdir"></span></label>
|
|
|
|
</div>
|
2019-04-02 14:35:41 +02:00
|
|
|
<div class="form-row form-row-file-encoding">
|
2019-03-06 23:28:33 +01:00
|
|
|
<label for="node-input-encoding"><i class="fa fa-flag"></i> <span data-i18n="file.label.encoding"></span></label>
|
|
|
|
<select type="text" id="node-input-encoding" style="width: 250px;">
|
|
|
|
</select>
|
|
|
|
</div>
|
2013-09-05 16:02:48 +02:00
|
|
|
<div class="form-row">
|
2015-05-10 22:47:22 +02:00
|
|
|
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
|
2015-05-26 22:11:14 +02:00
|
|
|
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
|
2013-09-05 16:02:48 +02:00
|
|
|
</div>
|
2016-09-24 00:37:56 +02:00
|
|
|
<div class="form-tips"><span data-i18n="file.tip"></span></div>
|
2013-09-05 16:02:48 +02:00
|
|
|
</script>
|
|
|
|
|
2020-03-13 12:28:19 +01:00
|
|
|
<script type="text/html" data-template-name="file in">
|
2014-04-30 23:48:30 +02:00
|
|
|
<div class="form-row">
|
2015-05-10 22:47:22 +02:00
|
|
|
<label for="node-input-filename"><i class="fa fa-file"></i> <span data-i18n="file.label.filename"></span></label>
|
2016-10-28 09:37:33 +02:00
|
|
|
<input id="node-input-filename" type="text" data-i18n="[placeholder]file.label.filename">
|
2014-04-30 23:48:30 +02:00
|
|
|
</div>
|
|
|
|
<div class="form-row">
|
2015-05-10 22:47:22 +02:00
|
|
|
<label for="node-input-format"><i class="fa fa-sign-out"></i> <span data-i18n="file.label.outputas"></span></label>
|
2019-09-20 22:57:19 +02:00
|
|
|
<select id="node-input-format" style="width: 250px;">
|
2015-05-28 16:29:01 +02:00
|
|
|
<option value="utf8" data-i18n="file.output.utf8"></option>
|
2017-06-22 19:41:49 +02:00
|
|
|
<option value="lines" data-i18n="file.output.lines"></option>
|
2015-05-28 16:29:01 +02:00
|
|
|
<option value="" data-i18n="file.output.buffer"></option>
|
2017-06-22 19:41:49 +02:00
|
|
|
<option value="stream" data-i18n="file.output.stream"></option>
|
2014-04-30 23:48:30 +02:00
|
|
|
</select>
|
|
|
|
</div>
|
2019-03-06 23:28:33 +01:00
|
|
|
<div class="form-row" id="encoding-spec">
|
|
|
|
<label for="node-input-encoding"><i class="fa fa-flag"></i> <span data-i18n="file.label.encoding"></span></label>
|
|
|
|
<select type="text" id="node-input-encoding" style="width: 250px;">
|
|
|
|
</select>
|
|
|
|
</div>
|
2014-06-08 23:54:21 +02:00
|
|
|
<div class="form-row">
|
2015-05-10 22:47:22 +02:00
|
|
|
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
|
2015-05-26 22:11:14 +02:00
|
|
|
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
|
2014-06-08 23:54:21 +02:00
|
|
|
</div>
|
2017-03-06 20:05:52 +01:00
|
|
|
<div class="form-tips"><span data-i18n="file.tip"></span></div>
|
2014-04-30 23:48:30 +02:00
|
|
|
</script>
|
|
|
|
|
2013-09-05 16:02:48 +02:00
|
|
|
<script type="text/javascript">
|
2019-03-06 23:28:33 +01:00
|
|
|
(function(){
|
|
|
|
var encodings = [
|
|
|
|
[ "file.encoding.native",
|
|
|
|
"utf8",
|
|
|
|
"ucs2",
|
|
|
|
"utf-16le",
|
|
|
|
"ascii",
|
|
|
|
"binary",
|
|
|
|
"base64",
|
|
|
|
"hex"
|
|
|
|
],
|
|
|
|
[ "file.encoding.unicode",
|
|
|
|
"utf-16be",
|
|
|
|
],
|
|
|
|
[ "file.encoding.japanese",
|
|
|
|
"Shift_JIS",
|
|
|
|
"Windows-31j",
|
|
|
|
"Windows932",
|
|
|
|
"EUC-JP"
|
|
|
|
],
|
|
|
|
[ "file.encoding.chinese",
|
|
|
|
"GB2312",
|
|
|
|
"GBK",
|
|
|
|
"GB18030",
|
|
|
|
"Windows936",
|
|
|
|
"EUC-CN"
|
|
|
|
],
|
|
|
|
[ "file.encoding.korean",
|
|
|
|
"KS_C_5601",
|
|
|
|
"Windows949",
|
|
|
|
"EUC-KR"
|
|
|
|
],
|
|
|
|
[ "file.encoding.taiwan",
|
|
|
|
"Big5",
|
|
|
|
"Big5-HKSCS",
|
|
|
|
"Windows950"
|
|
|
|
],
|
|
|
|
[ "file.encoding.windows",
|
|
|
|
"cp874",
|
|
|
|
"cp1250",
|
|
|
|
"cp1251",
|
|
|
|
"cp1252",
|
|
|
|
"cp1253",
|
|
|
|
"cp1254",
|
|
|
|
"cp1255",
|
|
|
|
"cp1256",
|
|
|
|
"cp1257",
|
|
|
|
"cp1258"
|
|
|
|
],
|
|
|
|
[ "file.encoding.iso",
|
|
|
|
"ISO-8859-1",
|
|
|
|
"ISO-8859-2",
|
|
|
|
"ISO-8859-3",
|
|
|
|
"ISO-8859-4",
|
|
|
|
"ISO-8859-5",
|
|
|
|
"ISO-8859-6",
|
|
|
|
"ISO-8859-7",
|
|
|
|
"ISO-8859-8",
|
|
|
|
"ISO-8859-9",
|
|
|
|
"ISO-8859-10",
|
|
|
|
"ISO-8859-11",
|
|
|
|
"ISO-8859-12",
|
|
|
|
"ISO-8859-13",
|
|
|
|
"ISO-8859-14",
|
|
|
|
"ISO-8859-15",
|
|
|
|
"ISO-8859-16"
|
|
|
|
],
|
|
|
|
[ "file.encoding.ibm",
|
|
|
|
"cp437",
|
|
|
|
"cp737",
|
|
|
|
"cp775",
|
|
|
|
"cp808",
|
|
|
|
"cp850",
|
|
|
|
"cp852",
|
|
|
|
"cp855",
|
|
|
|
"cp856",
|
|
|
|
"cp857",
|
|
|
|
"cp858",
|
|
|
|
"cp860",
|
|
|
|
"cp861",
|
|
|
|
"cp866",
|
|
|
|
"cp869",
|
|
|
|
"cp922",
|
|
|
|
"cp1046",
|
|
|
|
"cp1124",
|
|
|
|
"cp1125",
|
|
|
|
"cp1129",
|
|
|
|
"cp1133",
|
|
|
|
"cp1161",
|
|
|
|
"cp1162",
|
|
|
|
"cp1163"
|
|
|
|
],
|
|
|
|
[ "file.encoding.mac",
|
|
|
|
"maccroatian",
|
|
|
|
"maccyrillic",
|
|
|
|
"macgreek",
|
|
|
|
"maciceland",
|
|
|
|
"macroman",
|
|
|
|
"macromania",
|
|
|
|
"macthai",
|
|
|
|
"macturkish",
|
|
|
|
"macukraine",
|
|
|
|
"maccenteuro",
|
|
|
|
"macintosh"
|
|
|
|
],
|
|
|
|
[ "file.encoding.koi8",
|
|
|
|
"koi8-r",
|
|
|
|
"koi8-u",
|
|
|
|
"koi8-ru",
|
|
|
|
"koi8-t"
|
|
|
|
],
|
|
|
|
[ "file.encoding.misc",
|
|
|
|
"armscii8",
|
|
|
|
"rk1048",
|
|
|
|
"tcvn",
|
|
|
|
"georgianacademy",
|
|
|
|
"georgianps",
|
|
|
|
"pt154",
|
|
|
|
"viscii",
|
|
|
|
"iso646cn",
|
|
|
|
"iso646jp",
|
|
|
|
"hproman8",
|
|
|
|
"tis620"
|
|
|
|
]
|
|
|
|
];
|
|
|
|
|
2013-09-05 16:02:48 +02:00
|
|
|
RED.nodes.registerType('file',{
|
2019-07-09 21:26:26 +02:00
|
|
|
category: 'storage',
|
2013-09-05 16:02:48 +02:00
|
|
|
defaults: {
|
|
|
|
name: {value:""},
|
2016-10-28 09:37:33 +02:00
|
|
|
filename: {value:""},
|
2013-09-05 16:02:48 +02:00
|
|
|
appendNewline: {value:true},
|
2015-07-10 15:59:23 +02:00
|
|
|
createDir: {value:false},
|
2019-03-06 23:28:33 +01:00
|
|
|
overwriteFile: {value:"false"},
|
|
|
|
encoding: {value:"none"}
|
2013-09-05 16:02:48 +02:00
|
|
|
},
|
|
|
|
color:"BurlyWood",
|
|
|
|
inputs:1,
|
2018-06-15 14:25:05 +02:00
|
|
|
outputs:1,
|
2019-06-21 13:36:20 +02:00
|
|
|
icon: "file-out.svg",
|
2013-09-05 16:02:48 +02:00
|
|
|
label: function() {
|
2015-05-28 16:29:01 +02:00
|
|
|
if (this.overwriteFile === "delete") {
|
2017-03-06 20:05:52 +01:00
|
|
|
return this.name||this._("file.label.deletelabel",{file:this.filename});
|
2015-05-28 16:29:01 +02:00
|
|
|
} else {
|
|
|
|
return this.name||this.filename||this._("file.label.filelabel");
|
|
|
|
}
|
2013-09-05 16:02:48 +02:00
|
|
|
},
|
|
|
|
labelStyle: function() {
|
|
|
|
return this.name?"node_label_italic":"";
|
2014-11-08 16:34:37 +01:00
|
|
|
},
|
|
|
|
oneditprepare: function() {
|
2019-03-06 23:28:33 +01:00
|
|
|
var node = this;
|
|
|
|
var encSel = $("#node-input-encoding");
|
2019-03-13 11:17:32 +01:00
|
|
|
var label = node._("file.encoding.none");
|
2019-03-06 23:28:33 +01:00
|
|
|
$("<option/>", {
|
|
|
|
value: "none",
|
2019-03-13 11:17:32 +01:00
|
|
|
label: label
|
|
|
|
}).text(label).appendTo(encSel);
|
2019-03-06 23:28:33 +01:00
|
|
|
encodings.forEach(function(item) {
|
|
|
|
if(Array.isArray(item)) {
|
|
|
|
var group = $("<optgroup/>", {
|
|
|
|
label: node._(item[0])
|
|
|
|
}).appendTo(encSel);
|
|
|
|
for (var i = 1; i < item.length; i++) {
|
|
|
|
var enc = item[i];
|
|
|
|
$("<option/>", {
|
|
|
|
value: enc,
|
|
|
|
label: enc
|
2019-03-13 11:17:32 +01:00
|
|
|
}).text(enc).appendTo(group);
|
2019-03-06 23:28:33 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$("<option/>", {
|
|
|
|
value: item,
|
|
|
|
label: item
|
2019-03-13 11:17:32 +01:00
|
|
|
}).text(item).appendTo(encSel);
|
2019-03-06 23:28:33 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
encSel.val(node.encoding);
|
2017-03-06 20:05:52 +01:00
|
|
|
$("#node-input-overwriteFile").on("change",function() {
|
2019-04-02 14:35:41 +02:00
|
|
|
if (this.value === "delete") {
|
|
|
|
$(".form-row-file-write-options").hide();
|
|
|
|
$(".form-row-file-encoding").hide();
|
|
|
|
} else {
|
|
|
|
$(".form-row-file-write-options").show();
|
|
|
|
$(".form-row-file-encoding").show();
|
|
|
|
}
|
2017-03-06 20:05:52 +01:00
|
|
|
});
|
2013-09-05 16:02:48 +02:00
|
|
|
}
|
|
|
|
});
|
2014-06-07 09:41:04 +02:00
|
|
|
|
2014-04-30 23:48:30 +02:00
|
|
|
RED.nodes.registerType('file in',{
|
2019-07-09 21:26:26 +02:00
|
|
|
category: 'storage',
|
2014-04-30 23:48:30 +02:00
|
|
|
defaults: {
|
|
|
|
name: {value:""},
|
2016-10-28 09:37:33 +02:00
|
|
|
filename: {value:""},
|
2014-04-30 23:48:30 +02:00
|
|
|
format: {value:"utf8"},
|
2017-07-04 21:12:53 +02:00
|
|
|
chunk: {value:false},
|
2019-03-06 23:28:33 +01:00
|
|
|
sendError: {value: false},
|
|
|
|
encoding: {value: "none"}
|
2014-04-30 23:48:30 +02:00
|
|
|
},
|
|
|
|
color:"BurlyWood",
|
|
|
|
inputs:1,
|
|
|
|
outputs:1,
|
2017-03-06 20:05:52 +01:00
|
|
|
outputLabels: function(i) {
|
2019-09-20 22:57:19 +02:00
|
|
|
var l = this._(((this.format === "utf8")||(this.format === "lines")) ? "file.label.utf8String" : "file.label.binaryBuffer");
|
|
|
|
return ( l + (((this.format === "lines")||(this.format === "stream")) ? "s" : "") );
|
2017-03-06 20:05:52 +01:00
|
|
|
},
|
2019-06-21 13:36:20 +02:00
|
|
|
icon: "file-in.svg",
|
2014-04-30 23:48:30 +02:00
|
|
|
label: function() {
|
2015-05-10 22:47:22 +02:00
|
|
|
return this.name||this.filename||this._("file.label.filelabel");
|
2014-04-30 23:48:30 +02:00
|
|
|
},
|
|
|
|
labelStyle: function() {
|
|
|
|
return this.name?"node_label_italic":"";
|
2017-06-22 19:41:49 +02:00
|
|
|
},
|
|
|
|
oneditprepare: function() {
|
2019-03-06 23:28:33 +01:00
|
|
|
var node = this;
|
|
|
|
var encSel = $("#node-input-encoding");
|
2019-03-13 11:17:32 +01:00
|
|
|
var label = node._("file.encoding.none");
|
2019-03-06 23:28:33 +01:00
|
|
|
$("<option/>", {
|
|
|
|
value: "none",
|
2019-03-13 11:17:32 +01:00
|
|
|
label: label
|
|
|
|
}).text(label).appendTo(encSel);
|
2019-03-06 23:28:33 +01:00
|
|
|
encodings.forEach(function(item) {
|
|
|
|
if(Array.isArray(item)) {
|
|
|
|
var group = $("<optgroup/>", {
|
|
|
|
label: node._(item[0])
|
|
|
|
}).appendTo(encSel);
|
|
|
|
for (var i = 1; i < item.length; i++) {
|
|
|
|
var enc = item[i];
|
|
|
|
$("<option/>", {
|
|
|
|
value: enc,
|
|
|
|
label: enc
|
2019-03-13 11:17:32 +01:00
|
|
|
}).text(enc).appendTo(group);
|
2019-03-06 23:28:33 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$("<option/>", {
|
|
|
|
value: item,
|
|
|
|
label: item
|
2019-03-13 11:17:32 +01:00
|
|
|
}).text(item).appendTo(encSel);
|
2019-03-06 23:28:33 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
encSel.val(node.encoding);
|
2017-06-22 19:41:49 +02:00
|
|
|
$("#node-input-format").on("change",function() {
|
2019-03-06 23:28:33 +01:00
|
|
|
var format = $("#node-input-format").val();
|
|
|
|
if ((format === "utf8") || (format === "lines")) {
|
|
|
|
$("#encoding-spec").show();
|
2017-06-22 19:41:49 +02:00
|
|
|
}
|
|
|
|
else {
|
2019-03-06 23:28:33 +01:00
|
|
|
$("#encoding-spec").hide();
|
2017-06-22 19:41:49 +02:00
|
|
|
}
|
|
|
|
});
|
2014-04-30 23:48:30 +02:00
|
|
|
}
|
|
|
|
});
|
2019-03-06 23:28:33 +01:00
|
|
|
})();
|
2013-09-05 16:02:48 +02:00
|
|
|
</script>
|