UNPKG

cloud-red

Version:

Harnessing Serverless for your cloud integration needs

110 lines (101 loc) 4.53 kB
<script type="text/x-red" data-template-name="s3-event-handler"> <!-- name --> <div class="form-row"> <label for="node-input-name"> <i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span> </label> <input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name"> </div> <!-- Trigger Enabled --> <div class="form-row" style="margin-bottom:0px"> <label>&nbsp;</label> <input id="node-input-triggerEnabled" type="checkbox" unchecked style="display:inline-block; width:auto; vertical-align:top;""> <label for="node-input-triggerEnabled" style="width:70%; line-height:0px"> Attach Trigger</label> </div> <div id="triggerSection"> <hr> <!-- BucketName --> <div class="form-row"> <label for="node-input-bucketName">Bucket</label> <input id="node-input-bucketName" type="text"> </div> <!-- Prefix --> <div class="form-row"> <label for="node-input-prefix">Prefix</label> <input id="node-input-prefix" type="text" placeholder="(optional) e.g. images/"> </div> <!-- Suffix --> <div class="form-row"> <label for="node-input-suffix">Suffix</label> <input id="node-input-suffix" type="text" placeholder="(optional) e.g. .jpg"> </div> <!-- Event --> <div class="form-row"> <label for="node-input-event">Event type</label> <!-- <input id="node-input-event" type="text" placeholder="default: s3:ObjectCreated:*"> --> <select type="text" id="node-input-event" style="width:70%"> <option selected value="s3:ObjectCreated:*">s3:ObjectCreated:*</option> <option value="s3:ObjectCreated:Put">s3:ObjectCreated:Put</option> <option value="s3:ObjectCreated:Post">s3:ObjectCreated:Post</option> <option value="s3:ObjectCreated:Copy">s3:ObjectCreated:Copy</option> <option value="s3:ObjectCreated:CompleteMultipartUpload">s3:ObjectCreated:CompleteMultipartUpload</option> <option disabled>────────────────────</option> <option value="s3:ObjectRemoved:*">s3:ObjectRemoved:*</option> <option value="s3:ObjectRemoved:Delete">s3:ObjectRemoved:Delete</option> <option value="s3:ObjectRemoved:DeleteMarkerCreated">s3:ObjectRemoved:DeleteMarkerCreated</option> <option disabled>────────────────────</option> <option value="s3:ObjectRestore:Post">s3:ObjectRestore:Post</option> <option value="s3:ObjectRestore:Completed">s3:ObjectRestore:Completed</option> <option disabled>────────────────────</option> <option value="s3:ReducedRedundancyLostObject">s3:ReducedRedundancyLostObject</option> </select> </div> <!-- Note --> <div class="form-tips" style="margin-top:20px"><b>Warning:</b> An S3 Event notification will be attached to this bucket at deployment time</div> </div> </script> <script type="text/javascript"> RED.nodes.registerType('s3-event-handler', { category: 'handlers', icon: 'aws.png', color: 'rgb(231, 231, 174)', defaults: { name: { value: '', required: true }, triggerEnabled: { value: false, required: true }, bucketName: { value: '', required: false }, prefix: { required: false }, suffix: { required: false }, event: { value: 's3:ObjectCreated:*', required: false } }, inputs: 0, outputs: 1, label: function() { return this.name || 'S3 EventHandler'; }, labelStyle: function() { return this.name ? 'node_label_italic' : ''; }, oneditprepare: function() { var node = this; // Show or hide the trigger section if ($('#node-input-triggerEnabled').checked) { $('#triggerSection').show(); } else { $('#triggerSection').hide(); } // Handle changes in the trigger checkbox for trigger section $('#node-input-triggerEnabled').change(function(data) { if (this.checked) { $('#triggerSection').show(); } else { $('#triggerSection').hide(); $('#node-input-bucketName').val(''); $('#node-input-prefix').val(''); $('#node-input-suffix').val(''); $('#node-input-event').val('s3:ObjectCreated:*'); } }); } }); </script>