@siglesiasg/node-red-hyperledger-fabric-gateway
Version:
Hyperledger Fabric 2.x nodes for node-red with latest fabric-gateway library
104 lines (88 loc) • 4.62 kB
HTML
<script type="text/javascript">
RED.nodes.registerType('fabric-block-info', {
category: 'Hyperledger Gateway',
color: '#E6E0F8',
paletteLabel: 'get block',
defaults: {
name: { value: '' },
gatewaySelector: { value: '', required: true, type: 'fabric-gateway' },
identitySelector: { value: '', required: true, type: 'fabric-identity' },
channelSelector: { value: '', required: true, type: 'fabric-channel' },
method: { value:"number", required:true},
blockNumber: { value: '', required: false, validate:RED.validators.number() },
blockHash: { value: '', required: false },
txId: { value: '', required: false },
},
inputs: 1,
outputs: 1,
icon: 'icon.png',
align: 'left',
label: function () {
return this.name || 'hlf get block';
},
oneditprepare: function() {
$("#node-input-method").on("change", function() {
$(".form-row-blockNumber").hide(); $("#node-input-blockNumber").prop('required', false);
$(".form-row-hash").hide(); $("#node-input-blockHash").prop('required', false);
$(".form-row-txid").hide(); $("#node-input-txId").prop('required', false);
if ($(this).val() === "number") {
$(".form-row-blockNumber").show(); $("#node-input-blockNumber").prop('required', true);
} else if ($(this).val() === "hash") {
$(".form-row-hash").show(); $("#node-input-blockHash").prop('required', true);
} else {
$(".form-row-txid").show(); $("#node-input-txId").prop('required', true);
}
}).change();
},
});
</script>
<script type="text/html" data-template-name="fabric-block-info">
<div class="form-row">
<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">
</div>
<div class="form-row">
<label for="node-input-gatewaySelector"><i class="fa"></i>Gateway</label>
<input type="select" id="node-input-gatewaySelector" />
</div>
<div class="form-row">
<label for="node-input-identitySelector"><i class="fa"></i>Identity</label>
<input type="select" id="node-input-identitySelector" />
</div>
<div class="form-row">
<label for="node-input-channelSelector"><i class="fa"></i>Channel</label>
<input type="select" id="node-input-channelSelector" placeholder="" />
</div>
<div class="form-row">
<label for="node-input-method"><i class="fa"></i>Method</label>
<select type="text" id="node-input-method" style="width:70%;">
<option value="number">Number</option>
<option value="hash">Hash</option>
<option value="txId">TxId</option>
</select>
</div>
<div class="form-row form-row-blockNumber hide">
<label for="node-input-blockNumber"><i class="fa"></i>Block Number</label>
<input type="text" id="node-input-blockNumber" placeholder="0" />
</div>
<div class="form-row form-row-hash hide">
<label for="node-input-blockHash"><i class="fa"></i>Block Hash</label>
<input type="text" id="node-input-blockHash" placeholder="0" />
</div>
<div class="form-row form-row-txid hide">
<label for="node-input-txId"><i class="fa"></i>TxId</label>
<input type="text" id="node-input-txId" placeholder="0" />
</div>
</script>
<script type="text/html" data-help-name="fabric-block-info">
<span class="red-ui-text-bidi-aware">
<h2>Hyperledger Fabric Block Info</h2>
<p>Query the ledger and return the block that match selected conditions</p>
<h3 class="red-ui-help-info-header">Details</h3>
<p>Basic connection config nodes must be provided: <code>Gateway</code>, <code>Identity</code> and <code>Channel</code> </p>
<p>Select the <code>Method</code> to choose operation from options</p>
<p> - <code>Number</code> will recover a block by it's number. Must be a number</p>
<p> - <code>Hash</code> will recover a block by it's hash</p>
<p> - <code>TxId</code> will recover a block by any of it's transaction id</p>
</span>
</script>