mirror of
https://github.com/Skylar-Tech/node-red-contrib-matrix-chat.git
synced 2025-04-19 20:43:04 -06:00
- Can now access the matrix client globally so it can be used in function nodes (this way you are not limited by only the nodes we have published) - Added example for using the Matrix Client in a function to redact messages. This should be a great example to show people what is possible.
94 lines
3.9 KiB
HTML
94 lines
3.9 KiB
HTML
<script type="text/javascript">
|
|
RED.nodes.registerType('matrix-server-config',{
|
|
category: 'config',
|
|
color: '#00b7ca',
|
|
credentials: {
|
|
userId: { type: "text", required: true },
|
|
accessToken: { type: "password", required: true },
|
|
deviceId: { type: "text", required: true },
|
|
url: { type: "text", required: true }
|
|
},
|
|
defaults: {
|
|
name: { value: null },
|
|
autoAcceptRoomInvites: { value: true },
|
|
enableE2ee: { type: "checkbox", value: true },
|
|
global: { type: "checkbox", value: true }
|
|
},
|
|
icon: "matrix.png",
|
|
label: function() {
|
|
return this.name || undefined;
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<script type="text/html" data-template-name="matrix-server-config">
|
|
<div class="form-row">
|
|
<label for="node-config-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
<input type="text" id="node-config-input-name" placeholder="Name">
|
|
</div>
|
|
<div class="form-row">
|
|
<label for="node-config-input-userId"><i class="fa fa-server"></i> User ID</label>
|
|
<input type="text" placeholder="@example:matrix.org" id="node-config-input-userId">
|
|
</div>
|
|
<div class="form-row">
|
|
<label for="node-config-input-accessToken"><i class="fa fa-key"></i> Access Token</label>
|
|
<input type="text" id="node-config-input-accessToken">
|
|
</div>
|
|
<div class="form-tips" style="margin-bottom: 12px;">
|
|
View the <a href="javascript:$('#red-ui-tab-help-link-button').click();">node docs</a> to figure out how to generate an Access Token. You can also generate them using the Shared Secret Registration node.
|
|
</div>
|
|
<div class="form-row">
|
|
<label for="node-config-input-deviceId"><i class="fa fa-key"></i> Device ID</label>
|
|
<input type="text" id="node-config-input-deviceId">
|
|
</div>
|
|
<div class="form-tips" style="margin-bottom: 12px;">
|
|
This can either be an existing Device ID attached to the above Access Token or you can enter a unique value to set a new one.
|
|
</div>
|
|
<div class="form-row">
|
|
<label for="node-config-input-url"><i class="fa fa-globe"></i> Server URL</label>
|
|
<input type="text" placeholder="https://matrix.org" id="node-config-input-url">
|
|
</div>
|
|
<div class="form-row">
|
|
<input
|
|
type="checkbox"
|
|
id="node-config-input-autoAcceptRoomInvites"
|
|
style="width: auto; margin-left: 125px; vertical-align: top"
|
|
/>
|
|
<label for="node-config-input-autoAcceptRoomInvites" style="width: auto">
|
|
Auto join invited rooms
|
|
</label>
|
|
</div>
|
|
<div class="form-row">
|
|
<input
|
|
type="checkbox"
|
|
id="node-config-input-enableE2ee"
|
|
style="width: auto; margin-left: 125px; vertical-align: top"
|
|
/>
|
|
<label for="node-config-input-enableE2ee" style="width: auto">
|
|
Enable end-to-end encryption (requires DeviceID)
|
|
</label>
|
|
</div>
|
|
<div class="form-tips" style="margin-bottom: 12px;">
|
|
E2ee requires a Device ID to be set.
|
|
</div>
|
|
|
|
<div class="form-row">
|
|
<input
|
|
type="checkbox"
|
|
id="node-config-input-global"
|
|
style="width: auto; margin-left: 125px; vertical-align: top"
|
|
/>
|
|
<label for="node-config-input-global" style="width: auto">
|
|
Global access to Matrix Client
|
|
</label>
|
|
<div class="form-tips" style="margin-bottom: 12px;">
|
|
If enabled this allows you to access the matrix client directly with a Function node. This way you can do whatever you want with the client.<br />
|
|
Example: <code>let client = global.get("matrixClient['@bot:example.com']")</code>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
|
|
<script type="text/html" data-help-name="matrix-server-config">
|
|
<h3>Details</h3>
|
|
<p>Matrix client configuration node</p>
|
|
</script> |