mirror of
https://github.com/Skylar-Tech/node-red-contrib-matrix-chat.git
synced 2025-04-19 12:33:06 -06:00
- #97 msg.state_key is now allowed as an input to Room State Events node for events that support it (required for m.space.child and m.space.parent)
- #97 added support for m.room.history_visibility, m.room.server_acl, m.room.pinned_events, m.space.child, and m.space.parent - #97 fix issue with checkbox being hidden on config page when adding new setters/getters on config page
This commit is contained in:
parent
1859696122
commit
2e9633e113
@ -49,6 +49,11 @@
|
||||
<span class="property-type">string|object</span>
|
||||
</dt>
|
||||
<dd> You configure what room state events in the node configuration. <code style="white-space: normal;">m.room.name</code>, <code style="white-space: normal;">m.room.avatar</code>, and <code style="white-space: normal;">m.room.guest_access</code> allow you to pass a string to set their value but all other room state events will require the full content object (find this by referencing the <a href="https://spec.matrix.org/latest/client-server-api" target="_blank">Matrix Client-Server docs</a>)</dd>
|
||||
|
||||
<dt class="optional">msg.state_key
|
||||
<span class="property-type">string</span>
|
||||
</dt>
|
||||
<dd> Required for some events such as <code style="white-space: normal;">m.space.parent</code> and <code style="white-space: normal;">m.room.child</code> to set the referenced child/parent room</dd>
|
||||
</dl>
|
||||
|
||||
<h3>Outputs</h3>
|
||||
@ -77,13 +82,18 @@
|
||||
<script type="text/javascript">
|
||||
(function(){
|
||||
var roomEventTypeOptions = [
|
||||
{ value: "m.room.name", label: "m.room.name"},
|
||||
{ value: "m.room.topic", label: "m.room.topic"},
|
||||
{ value: "m.room.avatar", label: "m.room.avatar"},
|
||||
{ value: "m.room.power_levels", label: "m.room.power_levels"},
|
||||
{ value: "m.room.guest_access", label: "m.room.guest_access"},
|
||||
{ value: "m.room.join_rules", label: "m.room.join_rules"},
|
||||
{ value: "m.room.canonical_alias", label: "m.room.canonical_alias"}
|
||||
{ value: "m.room.name", label: "m.room.name" },
|
||||
{ value: "m.room.topic", label: "m.room.topic" },
|
||||
{ value: "m.room.avatar", label: "m.room.avatar" },
|
||||
{ value: "m.room.power_levels", label: "m.room.power_levels" },
|
||||
{ value: "m.room.guest_access", label: "m.room.guest_access" },
|
||||
{ value: "m.room.join_rules", label: "m.room.join_rules" },
|
||||
{ value: "m.room.canonical_alias", label: "m.room.canonical_alias" },
|
||||
{ value: "m.room.history_visibility", label: "m.room.history_visibility" },
|
||||
{ value: "m.room.server_acl", label: "m.room.server_acl" },
|
||||
{ value: "m.room.pinned_events", label: "m.room.pinned_events"},
|
||||
{ value: "m.space.child", label: "m.space.child" },
|
||||
{ value: "m.space.parent", label: "m.space.parent" },
|
||||
];
|
||||
var defaultRules = [{
|
||||
t: "set",
|
||||
@ -305,9 +315,9 @@
|
||||
propertyValue.typedInput('value',rule.to);
|
||||
localStorageEl.prop("checked", !!rule.ls);
|
||||
if(rule.t === 'get') {
|
||||
localStorageEl.show();
|
||||
localStorageEl.parent().show();
|
||||
} else {
|
||||
localStorageEl.hide();
|
||||
localStorageEl.parent().hide();
|
||||
}
|
||||
}
|
||||
selectField.change();
|
||||
|
@ -140,11 +140,11 @@ module.exports = function(RED) {
|
||||
msg.topic,
|
||||
"m.room.name",
|
||||
typeof value === "string"
|
||||
? { name: value }
|
||||
? {name: value}
|
||||
: value);
|
||||
break;
|
||||
case "m.room.topic":
|
||||
if(typeof value === "string") {
|
||||
if (typeof value === "string") {
|
||||
await node.server.matrixClient.setRoomTopic(msg.topic, value);
|
||||
} else {
|
||||
await node.server.matrixClient.sendStateEvent(
|
||||
@ -159,27 +159,7 @@ module.exports = function(RED) {
|
||||
msg.topic,
|
||||
"m.room.avatar",
|
||||
typeof value === "string"
|
||||
? { "url": value }
|
||||
: value,
|
||||
"");
|
||||
break;
|
||||
case "m.room.power_levels":
|
||||
if(typeof value !== 'object') {
|
||||
setterErrors[rule.p] = "m.room.power_levels content must be object";
|
||||
} else {
|
||||
await node.server.matrixClient.sendStateEvent(
|
||||
msg.topic,
|
||||
"m.room.power_levels",
|
||||
value,
|
||||
"");
|
||||
}
|
||||
break;
|
||||
case "m.room.guest_access":
|
||||
await node.server.matrixClient.sendStateEvent(
|
||||
msg.topic,
|
||||
"m.room.guest_access",
|
||||
typeof value === "string"
|
||||
? { "guest_access": value }
|
||||
? {"url": value}
|
||||
: value,
|
||||
"");
|
||||
break;
|
||||
@ -205,15 +185,50 @@ module.exports = function(RED) {
|
||||
"");
|
||||
}
|
||||
break;
|
||||
case "m.space.parent":
|
||||
if (typeof value !== 'object') {
|
||||
setterErrors[rule.p] = "m.space.parent content must be object";
|
||||
} else if (!msg.state_key) {
|
||||
setterErrors[rule.p] = "m.space.parent required msg.state_key input to be set to the child roomId";
|
||||
}else {
|
||||
await node.server.matrixClient.sendStateEvent(
|
||||
msg.topic,
|
||||
"m.room.power_levels",
|
||||
value,
|
||||
msg.state_key);
|
||||
}
|
||||
break;
|
||||
case "m.space.child":
|
||||
if (typeof value !== 'object') {
|
||||
setterErrors[rule.p] = "m.space.child content must be object";
|
||||
} else if (!msg.state_key) {
|
||||
setterErrors[rule.p] = "m.space.child required msg.state_key input to be set to the parent roomId";
|
||||
}else {
|
||||
await node.server.matrixClient.sendStateEvent(
|
||||
msg.topic,
|
||||
"m.room.power_levels",
|
||||
value,
|
||||
msg.state_key);
|
||||
}
|
||||
break;
|
||||
case "m.room.guest_access":
|
||||
await node.server.matrixClient.sendStateEvent(
|
||||
msg.topic,
|
||||
"m.room.guest_access",
|
||||
typeof value === "string"
|
||||
? { "guest_access": value }
|
||||
: value,
|
||||
"");
|
||||
break;
|
||||
default:
|
||||
if(typeof value !== 'object') {
|
||||
setterErrors[rule.p] = "Custom event content must be object";
|
||||
setterErrors[rule.p] = `${rule.p} content must be object`;
|
||||
} else {
|
||||
await node.server.matrixClient.sendStateEvent(
|
||||
msg.topic,
|
||||
rule.p,
|
||||
value,
|
||||
"");
|
||||
msg.state_key || "");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user