2018-10-24 16:08:42 +02:00
|
|
|
|
|
|
|
<script type="text/x-red" data-template-name="tail">
|
|
|
|
<div class="form-row">
|
|
|
|
<label for="node-input-filename"><i class="fa fa-file"></i> <span data-i18n="tail.label.filename"></span></label>
|
|
|
|
<input id="node-input-filename" type="text">
|
|
|
|
</div>
|
|
|
|
<div class="form-row">
|
|
|
|
<label for="node-input-filetype"><i class="fa fa-file-text-o"></i> <span data-i18n="tail.label.type"></span></label>
|
|
|
|
<select type="text" id="node-input-filetype">
|
|
|
|
<option value="text" data-i18n="tail.action.text"></option>
|
|
|
|
<option value="binary" data-i18n="tail.action.binary"></option>
|
|
|
|
</select>
|
|
|
|
</div>
|
|
|
|
<div class="form-row" id="node-tail-split">
|
|
|
|
<!-- <label> </label>
|
|
|
|
<input type="checkbox" id="node-input-split" placeholder="Name" style="display: inline-block; width: auto; vertical-align: top;">
|
|
|
|
<label for="node-input-split" style="width: 70%;"><span data-i18n="tail.label.splitlines"></span></label> -->
|
|
|
|
<label for="node-input-split"><i class="fa fa-tag"></i> <span data-i18n="tail.label.splitlines"></span></label>
|
|
|
|
<input type="text" id="node-input-split" data-i18n="[placeholder]tail.label.regex">
|
|
|
|
</div>
|
|
|
|
<div class="form-row">
|
|
|
|
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="tail.label.name"></span></label>
|
|
|
|
<input type="text" id="node-input-name" data-i18n="[placeholder]tail.label.name">
|
|
|
|
</div>
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<script type="text/x-red" data-help-name="tail">
|
2019-07-12 13:22:13 +02:00
|
|
|
<p>Tails (watches for things to be added) to the configured file.</p>
|
|
|
|
<p>Note: On Windows you may need to close the file between writes for any updates to be registered.</p>
|
2019-08-15 23:03:13 +02:00
|
|
|
<h3>Input</h3>
|
|
|
|
<dl class="message-properties">
|
|
|
|
<dt class="optional">filename <span class="property-type">string</span></dt>
|
|
|
|
<dd>If not configured in the node, this optional property sets the name of the file to be tailed.
|
|
|
|
If an empty string <code>""</code> is received, the tailing will stop.</dd>
|
|
|
|
</dl>
|
2018-10-24 16:08:42 +02:00
|
|
|
<h3>Outputs</h3>
|
|
|
|
<ul>
|
|
|
|
<li>Text (UTF-8) files will be returned as strings.</li>
|
|
|
|
<li>Binary files will be returned as Buffer objects.</li>
|
|
|
|
</ul>
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
RED.nodes.registerType('tail',{
|
|
|
|
category: 'storage-input',
|
|
|
|
defaults: {
|
|
|
|
name: {value:""},
|
|
|
|
filetype: {value:"text"},
|
2019-07-12 13:22:13 +02:00
|
|
|
split: {value:"[\\r]{0,1}\\n"},
|
2019-08-15 23:03:13 +02:00
|
|
|
filename: {value:""},
|
|
|
|
inputs: {value:1}
|
2018-10-24 16:08:42 +02:00
|
|
|
},
|
|
|
|
color:"BurlyWood",
|
2019-08-15 23:03:13 +02:00
|
|
|
inputs:1,
|
2018-10-24 16:08:42 +02:00
|
|
|
outputs:1,
|
|
|
|
icon: "file.png",
|
|
|
|
label: function() {
|
|
|
|
return this.name||this.filename||this._("tail.tail");
|
|
|
|
},
|
|
|
|
labelStyle: function() {
|
|
|
|
return this.name?"node_label_italic":"";
|
|
|
|
},
|
|
|
|
oneditprepare: function() {
|
|
|
|
$("#node-input-filetype").on("change",function() {
|
|
|
|
if (this.value === "text") { $("#node-tail-split").show(); }
|
|
|
|
else { $("#node-tail-split").hide(); }
|
|
|
|
});
|
2019-08-15 23:03:13 +02:00
|
|
|
},
|
|
|
|
oneditsave: function() {
|
|
|
|
var that = this;
|
|
|
|
if($("#node-input-filename").val()===""){
|
|
|
|
that.inputs = 1;
|
|
|
|
} else {
|
|
|
|
that.inputs = 0;
|
|
|
|
}
|
|
|
|
}
|
2018-10-24 16:08:42 +02:00
|
|
|
});
|
|
|
|
</script>
|