node-red-contrib-googlehome-actions-v2-piyanggoon
Version:
Google Home Actions V2 (fork by piyanggoon)
121 lines (114 loc) • 5.51 kB
HTML
<script type="text/javascript">
RED.nodes.registerType('googlehome-message',{
category: 'Google Assistant',
defaults: {
name: {value: ""},
message_type: {value: "", required: true},
message: {value: ""},
permissions: {value: ""},
url: {value: ""},
suggestions: {value: ""},
concat_message: {value: false}
},
paletteLabel: "Message",
icon: 'googlehome-message.png',
outputs: 1,
inputs: 1,
label: function() {
return (this.name !== "" ? "Message (" + this.name + ")" : "Google Home Message");
},
oneditprepare: function(){
$("#node-input-message_type").on("change", function(){
$(".form-row-permissions").hide();
$(".form-row-message").hide();
$(".form-row-simple-response").hide();
$(".form-row-url").hide();
$(".form-row-suggestions").hide();
var selected = $("#node-input-message_type option:selected").val();
switch(selected){
case "Permission":
$(".form-row-permissions").show();
$(".form-row-message").show();
break;
case "LinkOutSuggestion":
$(".form-row-url").show();
break;
case "SimpleResponse":
$(".form-row-message").show();
$(".form-row-simple-response").show();
break;
case "Suggestions":
$(".form-row-suggestions").show();
break;
}
});
}
});
</script>
<script type="text/x-red" data-template-name="googlehome-message">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-input-message_type"><i class="fa fa-tag"></i> Type</label>
<select type="text" id="node-input-message_type" style="display: inline-block; width: 70%;">
<option value="SimpleResponse">SimpleResponse</option>
<option value="Permission">Permission</option>
<option value="LinkOutSuggestion">LinkOutSuggestion</option>
<option value="Suggestions">Suggestions</option>
</select>
</div>
<div class="form-row form-row-message">
<label for="node-input-message"><i class="fa fa-tag"></i> Message</label>
<input type="text" id="node-input-message" placeholder="Message">
</div>
<div class="form-row form-row-permissions">
<label for="node-input-permissions"><i class="fa fa-tag"></i> Permissions</label>
<input type="text" id="node-input-permissions" placeholder="Permissions">
</div>
<div class="form-row form-row-url">
<label for="node-input-url"><i class="fa fa-tag"></i> URL</label>
<input type="text" id="node-input-url" placeholder="URL">
</div>
<div class="form-row form-row-suggestions">
<label for="node-input-suggestions"><i class="fa fa-tag"></i> Suggestions</label>
<input type="text" id="node-input-suggestions" placeholder="Suggestions">
</div>
<div class="form-row">
<label for="node-input-concat_message"><i class="fa fa-tag"></i> Concat</label>
<input type="checkbox" id="node-input-concat_message" placeholder="Concat" style="width: auto; margin: 0;">
</div>
<div class="form-tips form-row-permissions">
<p><b>Permissions:</b> You can type more than one permissions, comma separated. Accepted permissions are: NAME, DEVICE_PRECISE_LOCATION, DEVICE_COARSE_LOCATION, UPDATE</p>
<p>The message and permissions values informed here will be overwritten by <code>msg.payload.message</code> and <code>msg.payload.permissions</code> if present</p>
</div>
<div class="form-tips form-row-simple-response">
<p>The message value informed here will be overwritten by <code>msg.payload.message</code> if present</p>
</div>
<div class="form-tips form-row-url">
<p>The url value informed here will be overwritten by <code>msg.payload.url</code> if present</p>
</div>
<div class="form-tips form-row-suggestions">
<p><b>Suggestions:</b> You can type more than one suggestion, comma separated.</p>
<p>The suggestions value informed here will be overwritten by <code>msg.payload.suggestions</code> if present</p>
</div>
</script>
<script type="text/x-red" data-help-name="googlehome-message">
<p>This node can help building static messages. It will assembly the message object and set or add
(depending on the <code>concat</code> property) into <code>gh_messages</code> array.</p>
<p>The <code>concat</code> property in the node editor tells to add or set to <code>gh_messages</code>.</p>
<h3>Output</h3>
<ol class="node-ports">
<li>Answer
<dl class="message-properties">
<dl class="message-properties">
<dt>msg.gh_messages <span class="property-type">array</span></dt>
<dd>An array of messages objects that will be sent to google assistant as an answer.</dd>
</dl>
</li>
</ol>
<h3>Details</h3>
<p>This node will collect all necessary data for the type of message selected and assembly the message object.</p>
<p>It will, then, add or set to the gh_messages array depending on the <code>concat</code> property value.</p>
</script>