2015-06-13 19:47:22 +02:00
|
|
|
|
|
|
|
<script type="text/x-red" data-template-name="redis out">
|
|
|
|
<div class="form-row node-input-hostname">
|
2015-06-16 11:36:19 +02:00
|
|
|
<label for="node-input-hostname"><i class="fa fa-bookmark"></i> <span data-i18n="redisout.label.host"></span></label>
|
2015-06-13 19:47:22 +02:00
|
|
|
<input class="input-append-left" type="text" id="node-input-hostname" placeholder="127.0.0.1" style="width: 40%;" ><button id="node-input-hostname-lookup" class="btn input-append-right"><span class="caret"></span></button>
|
2017-10-07 23:26:39 +02:00
|
|
|
<label for="node-input-port" style="margin-left: 10px; width: 37px; "> <span data-i18n="redisout.label.port"></span></label>
|
2015-06-13 19:47:22 +02:00
|
|
|
<input type="text" id="node-input-port" placeholder="6379" style="width:45px">
|
|
|
|
</div>
|
|
|
|
<div class="form-row">
|
2015-06-16 11:36:19 +02:00
|
|
|
<label for="node-input-key"><i class="fa fa-key"></i> <span data-i18n="redisout.label.key"></span></label>
|
|
|
|
<input type="text" id="node-input-key">
|
2015-06-13 19:47:22 +02:00
|
|
|
</div>
|
|
|
|
<div class="form-row">
|
2015-06-16 11:36:19 +02:00
|
|
|
<label for="node-input-type"><i class="fa fa-th"></i> <span data-i18n="redisout.label.type"></span></label>
|
2015-06-13 19:47:22 +02:00
|
|
|
<select type="text" id="node-input-structtype" style="width: 150px;">
|
2015-06-16 11:36:19 +02:00
|
|
|
<option value="string" data-i18n="redisout.type.string"></option>
|
|
|
|
<option value="hash" data-i18n="redisout.type.hash"></option>
|
|
|
|
<option value="set" data-i18n="redisout.type.set"></option>
|
|
|
|
<option value="list" data-i18n="redisout.type.list"></option>
|
2015-06-13 19:47:22 +02:00
|
|
|
</select>
|
|
|
|
</div>
|
|
|
|
<div class="form-row">
|
2015-06-16 12:16:29 +02:00
|
|
|
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="node-red:common.label.name"></span></label>
|
|
|
|
<input type="text" id="node-input-name" data-i18n="[placeholder]node-red:common.label.name">
|
2015-06-13 19:47:22 +02:00
|
|
|
</div>
|
2015-06-16 11:36:19 +02:00
|
|
|
<div class="form-tips"><span data-i18n="[html]redisout.tip"></span></div>
|
2015-06-13 19:47:22 +02:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<script type="text/x-red" data-help-name="redis out">
|
|
|
|
<p>A Redis output node. Options include Hash, Set, List and String.</p>
|
|
|
|
<p>To run this you need a local Redis server running. For details see <a href="http://redis.io/" target="_new">the Redis site</a>.</p>
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
RED.nodes.registerType('redis out',{
|
|
|
|
category: 'storage-output',
|
|
|
|
color:"#ffaaaa",
|
|
|
|
defaults: {
|
|
|
|
hostname: { value:"127.0.0.1",required:true},
|
|
|
|
port: { value: 6379,required:true},
|
|
|
|
name: {value:""},
|
|
|
|
key: {value:""},
|
|
|
|
structtype: {value:"",required:true}
|
|
|
|
},
|
|
|
|
inputs:1,
|
|
|
|
outputs:0,
|
|
|
|
icon: "redis.png",
|
|
|
|
align: "right",
|
|
|
|
label: function() {
|
|
|
|
return this.name||this.key+" ("+this.structtype+")";
|
|
|
|
},
|
|
|
|
oneditprepare: function() {
|
|
|
|
var availableServers = [];
|
|
|
|
var matchedServers = {};
|
|
|
|
RED.nodes.eachNode(function(node) {
|
|
|
|
if (node.type == "redis out" && node.hostname && node.port && !matchedServers[node.hostname+":"+node.port]) {
|
|
|
|
var label = node.hostname+":"+node.port;
|
|
|
|
matchedServers[label] = true;
|
|
|
|
availableServers.push({
|
|
|
|
label:label,
|
|
|
|
value:node.hostname,
|
|
|
|
port:node.port
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$( "#node-input-hostname" ).autocomplete({
|
|
|
|
minLength: 0,
|
|
|
|
source: availableServers,
|
|
|
|
select: function( event, ui ) {
|
|
|
|
$("#node-input-port").val(ui.item.port);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
var tt = this;
|
|
|
|
tt._acOpen = false;
|
|
|
|
$( "#node-input-hostname" ).on( "autocompleteclose", function( event, ui ) { tt._acOpen = false;} );
|
|
|
|
$( "#node-input-hostname-lookup" ).click(function(e) {
|
|
|
|
if (tt._acOpen) {
|
|
|
|
$( "#node-input-hostname" ).autocomplete( "close");
|
|
|
|
} else {
|
|
|
|
$( "#node-input-hostname" ).autocomplete( "search", "" );
|
|
|
|
}
|
|
|
|
tt._acOpen = !tt._acOpen;
|
|
|
|
e.preventDefault();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
</script>
|