messing around

This commit is contained in:
2021-04-20 20:10:37 +02:00
parent 9d3e0c0994
commit 1148d416a0
11 changed files with 412 additions and 356 deletions

View File

@@ -0,0 +1,27 @@
<script type="text/javascript">
RED.nodes.registerType('lower-case-creds',{
category: 'config',
color: '#a6bbcf',
defaults: {
},
credentials: {
username: {type: "text"},
password: {type: "password"}
},
label: function() {
return this.name||"Config";
}
});
</script>
<script type="text/html" data-template-name="lower-case-creds">
<div class="form-row">
<label for="node-input-mydb"><i class="fa fa-database"></i>Username</label>
<input type="text" id="node-config-input-username">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i>Password</label>
<input type="password" id="node-config-input-password" placeholder="Name">
</div>
</script>

View File

@@ -0,0 +1,24 @@
import { NodeDef, NodeInitializer, Node, NodeCredentials } from "node-red";
import { LowerCaseCredsProps, LowerCaseProps } from "../lower-case/types";
interface LowerCaseCredsConfig extends NodeDef, LowerCaseCredsProps { }
interface LowerCaseCredsNode extends Node<LowerCaseCredsProps>{}
const nodeInit: NodeInitializer = (RED): void => {
function LowerCaseCredsConstructor(
this: LowerCaseCredsNode,
config: LowerCaseCredsConfig
): void {
RED.nodes.createNode(this, config);
}
RED.nodes.registerType("lower-case-creds", LowerCaseCredsConstructor,{
credentials:{
username: {type: "text"},
password: {type: "password"}
}
});
};
export = nodeInit;

View File

@@ -1,6 +0,0 @@
<script type="text/html" data-template-name="lower-case">
<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>
</script>

View File

@@ -1,3 +0,0 @@
<script type="text/html" data-help-name="lower-case">
<p>A simple node that converts the message payloads into all lower-case characters</p>
</script>

View File

@@ -1,22 +0,0 @@
import { EditorNodeProperties, EditorRED } from "node-red";
import { LowerCaseProps } from "../types";
declare const RED: EditorRED;
interface LowerCaseEditorProps extends EditorNodeProperties, LowerCaseProps { }
RED.nodes.registerType<LowerCaseEditorProps>("lower-case", {
category: "function",
color: "#a6bbcf",
defaults: {
name: { value: "" },
testoConfig: { value: "Value", required: false }
},
inputs: 1,
outputs: 1,
icon: "transform-text.png",
paletteLabel: "To lower case",
label: function () {
return this.name || "lower-case";
},
});

View File

@@ -3,7 +3,8 @@
category: 'function',
color: '#a6bbcf',
defaults: {
name: {value:""}
name: {value:""},
credsID: {type: "lower-case-creds"}
},
inputs:1,
outputs:1,
@@ -19,6 +20,10 @@
<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-lower-case-credsID"><i class="fa fa-database"></i> Creds</label>
<input type="text" id="node-input-credsID">
</div>
</script>
<script type="text/html" data-help-name="lower-case">

View File

@@ -1,10 +1,10 @@
import { NodeDef, NodeInitializer, Node } from "node-red";
import { LowerCaseProps } from "./types";
import { LowerCaseCredsProps, LowerCaseProps } from "./types";
interface LowerCaseNodeConfig extends NodeDef,LowerCaseProps { }
interface LowerCaseNodeData extends Node {
testoData: string
credsNode: Node<LowerCaseCredsProps>
}
const nodeInit: NodeInitializer = (RED): void => {
@@ -13,10 +13,15 @@ const nodeInit: NodeInitializer = (RED): void => {
config: LowerCaseNodeConfig
): void {
RED.nodes.createNode(this, config);
this.warn(JSON.stringify(config))
this.credsNode = RED.nodes.getNode(config.credsID) as Node<LowerCaseCredsProps>
this.on("input",(msg)=>{
if (msg.payload instanceof String){
msg.payload = msg.payload.toLowerCase()
this.warn(JSON.stringify(this.credsNode.credentials))
if ((typeof msg.payload) === "string"){
msg.payload = (msg.payload as string).toLowerCase()
}else{
this.warn("Can only convert strings to lower case")
}

View File

@@ -1,3 +1,9 @@
export interface LowerCaseProps{
testoConfig: string
credsID: string
}
export interface LowerCaseCredsProps {
username: string,
password: string,
}