node-red-contrib-uibuilder
Version:
Easily create data-driven web UI's for Node-RED. Single- & Multi-page. Multiple UI's. Work with existing web development workflows or mix and match with no-code/low-code features.
810 lines (809 loc) • 19.4 kB
JSON
[
{
"id": "f748d0e6cc78a2ba",
"type": "tab",
"label": "uib-cache",
"disabled": false,
"info": "",
"env": []
},
{
"id": "c582e19b78889a25",
"type": "group",
"z": "f748d0e6cc78a2ba",
"name": "Test uibuilder cache node without uibuilder \\n ",
"style": {
"fill": "#ffefbf",
"fill-opacity": "0.34",
"label": true,
"color": "#000000"
},
"nodes": [
"4a1f0bc164fe96de",
"d948fc054b6c30ce",
"fd7084be579b5186",
"c4e341169cc82e9a",
"5e8d1fafc5a22dd0",
"1e87041b4bddbcba",
"5a8f49f1dff31d2f",
"8ea537cb67792d7f",
"122489d70f19ca24",
"0768c71d136a2c86",
"d3685f462ab15042"
],
"x": 54,
"y": 83,
"w": 932,
"h": 278
},
{
"id": "124607d308a0f6a6",
"type": "group",
"z": "f748d0e6cc78a2ba",
"name": "Example of using the cache with uibuilder. Add 3 lists to the page then reload, only 2 re-appear. \\n ",
"style": {
"label": true,
"fill": "#ffffff",
"fill-opacity": "0.21",
"color": "#000000"
},
"nodes": [
"9c253e4c5651a568",
"acccaec15b621319",
"594248fc5dc5f799",
"445a19cff9f8da1f",
"f9af5b7d2545e9e5",
"06327985e9dae780",
"c6306e9378b9c1f2",
"ed061d1aaea36b27",
"2fac9874556f1c88",
"4330971395e0a4b9",
"49d6a6f1bd5358ee",
"ac3988907ad3ccaa",
"95d8b757da5c9fd4",
"417119b1765dd5b1",
"309727329638650e",
"c13e434afccaa153",
"fc7585830654783a",
"0555cd3fcd3edcfb",
"5e202f9e5b6827e6",
"c3bdf6f53c48a1e0"
],
"x": 54,
"y": 383,
"w": 1072,
"h": 378
},
{
"id": "c13e434afccaa153",
"type": "junction",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"x": 320,
"y": 640,
"wires": [
[
"0555cd3fcd3edcfb"
]
]
},
{
"id": "fc7585830654783a",
"type": "junction",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"x": 800,
"y": 560,
"wires": [
[
"c6306e9378b9c1f2"
]
]
},
{
"id": "4a1f0bc164fe96de",
"type": "inject",
"z": "f748d0e6cc78a2ba",
"g": "c582e19b78889a25",
"name": "",
"props": [
{
"p": "payload"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "Empty Topic",
"payloadType": "str",
"x": 190,
"y": 220,
"wires": [
[
"c4e341169cc82e9a"
]
]
},
{
"id": "d948fc054b6c30ce",
"type": "debug",
"z": "f748d0e6cc78a2ba",
"g": "c582e19b78889a25",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 890,
"y": 220,
"wires": []
},
{
"id": "fd7084be579b5186",
"type": "debug",
"z": "f748d0e6cc78a2ba",
"g": "c582e19b78889a25",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 670,
"y": 180,
"wires": []
},
{
"id": "c4e341169cc82e9a",
"type": "uib-cache",
"z": "f748d0e6cc78a2ba",
"g": "c582e19b78889a25",
"cacheall": false,
"cacheKey": "topic",
"newcache": true,
"num": "4",
"storeName": "default",
"name": "",
"storeContext": "context",
"varName": "uib_cache",
"x": 470,
"y": 220,
"wires": [
[
"fd7084be579b5186",
"5a8f49f1dff31d2f"
]
]
},
{
"id": "5e8d1fafc5a22dd0",
"type": "inject",
"z": "f748d0e6cc78a2ba",
"g": "c582e19b78889a25",
"name": "two",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "two",
"payload": "{\"a\":\"Number Two\",\"b\":{\"b1\":1,\"b2\":{\"b2i\":1,\"b2ii\":2}}}",
"payloadType": "json",
"x": 210,
"y": 180,
"wires": [
[
"c4e341169cc82e9a"
]
]
},
{
"id": "1e87041b4bddbcba",
"type": "inject",
"z": "f748d0e6cc78a2ba",
"g": "c582e19b78889a25",
"name": "one",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "one",
"payload": "Number One",
"payloadType": "str",
"x": 210,
"y": 140,
"wires": [
[
"c4e341169cc82e9a"
]
]
},
{
"id": "5a8f49f1dff31d2f",
"type": "change",
"z": "f748d0e6cc78a2ba",
"g": "c582e19b78889a25",
"name": "",
"rules": [
{
"t": "change",
"p": "payload",
"pt": "msg",
"from": "Number",
"fromt": "str",
"to": "Some mumber",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 720,
"y": 220,
"wires": [
[
"d948fc054b6c30ce"
]
]
},
{
"id": "8ea537cb67792d7f",
"type": "inject",
"z": "f748d0e6cc78a2ba",
"g": "c582e19b78889a25",
"name": "",
"props": [
{
"p": "payload"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payloadType": "str",
"x": 115,
"y": 280,
"wires": [
[
"122489d70f19ca24"
]
],
"l": false
},
{
"id": "122489d70f19ca24",
"type": "function",
"z": "f748d0e6cc78a2ba",
"g": "c582e19b78889a25",
"name": "REPLAY",
"func": "\nreturn { \n \"uibuilderCtrl\": \"replay\", \n \"cacheControl\": \"REPLAY\", \n}",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 200,
"y": 280,
"wires": [
[
"c4e341169cc82e9a"
]
]
},
{
"id": "0768c71d136a2c86",
"type": "inject",
"z": "f748d0e6cc78a2ba",
"g": "c582e19b78889a25",
"name": "",
"props": [
{
"p": "payload"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payloadType": "str",
"x": 115,
"y": 320,
"wires": [
[
"d3685f462ab15042"
]
],
"l": false
},
{
"id": "d3685f462ab15042",
"type": "function",
"z": "f748d0e6cc78a2ba",
"g": "c582e19b78889a25",
"name": "CLEAR",
"func": "\nreturn { \n \"uibuilderCtrl\": \"clear cache\", \n \"cacheControl\": \"CLEAR\", \n}",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 200,
"y": 320,
"wires": [
[
"c4e341169cc82e9a"
]
]
},
{
"id": "30809c9afab08529",
"type": "comment",
"z": "f748d0e6cc78a2ba",
"name": "Examples of using the uib-cache node with and without uibuilder itself.",
"info": "",
"x": 310,
"y": 40,
"wires": []
},
{
"id": "9c253e4c5651a568",
"type": "uibuilder",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "",
"topic": "",
"url": "uib-cache-example",
"fwdInMessages": false,
"allowScripts": false,
"allowStyles": false,
"copyIndex": true,
"templateFolder": "blank",
"extTemplate": "",
"showfolder": true,
"reload": false,
"sourceFolder": "src",
"deployedVersion": "5.0.0-dev.2",
"showMsgUib": false,
"x": 680,
"y": 480,
"wires": [
[
"49d6a6f1bd5358ee"
],
[
"445a19cff9f8da1f",
"c6306e9378b9c1f2"
]
]
},
{
"id": "acccaec15b621319",
"type": "inject",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "Empty Topic (not cached)",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "Empty Topic",
"payloadType": "str",
"x": 210,
"y": 720,
"wires": [
[
"c13e434afccaa153"
]
]
},
{
"id": "594248fc5dc5f799",
"type": "debug",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 1065,
"y": 460,
"wires": [],
"l": false
},
{
"id": "445a19cff9f8da1f",
"type": "debug",
"z": "f748d0e6cc78a2ba",
"d": true,
"g": "124607d308a0f6a6",
"name": "",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 885,
"y": 520,
"wires": [],
"l": false
},
{
"id": "f9af5b7d2545e9e5",
"type": "debug",
"z": "f748d0e6cc78a2ba",
"d": true,
"g": "124607d308a0f6a6",
"name": "",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 595,
"y": 440,
"wires": [],
"l": false
},
{
"id": "06327985e9dae780",
"type": "link in",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "",
"links": [
"c6306e9378b9c1f2",
"5e202f9e5b6827e6"
],
"x": 255,
"y": 480,
"wires": [
[
"ed061d1aaea36b27"
]
]
},
{
"id": "c6306e9378b9c1f2",
"type": "link out",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "",
"mode": "link",
"links": [
"06327985e9dae780"
],
"x": 845,
"y": 540,
"wires": []
},
{
"id": "ed061d1aaea36b27",
"type": "uib-cache",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"cacheall": false,
"cacheKey": "topic",
"newcache": true,
"num": "4",
"storeName": "default",
"name": "",
"storeContext": "context",
"varName": "uib_cache",
"x": 440,
"y": 480,
"wires": [
[
"9c253e4c5651a568",
"f9af5b7d2545e9e5"
]
]
},
{
"id": "2fac9874556f1c88",
"type": "inject",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "two",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "two",
"payload": "{\"a\":\"Number Two\",\"b\":[\"To B\",\" Or not to B\"]}",
"payloadType": "json",
"x": 150,
"y": 680,
"wires": [
[
"c13e434afccaa153"
]
]
},
{
"id": "4330971395e0a4b9",
"type": "inject",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "one",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "one",
"payload": "Number One",
"payloadType": "str",
"x": 150,
"y": 640,
"wires": [
[
"c13e434afccaa153"
]
]
},
{
"id": "49d6a6f1bd5358ee",
"type": "change",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "",
"rules": [
{
"t": "change",
"p": "payload",
"pt": "msg",
"from": "Number",
"fromt": "str",
"to": "Some mumber",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 920,
"y": 460,
"wires": [
[
"594248fc5dc5f799"
]
],
"info": "If you change the uibuilder settings to fwd \r\ninput messages, this function changes an\r\nentry to make certain that the cached variables\r\nare NOT REFERENCES but completely separate\r\nclones. In other words, it makes sure that there\r\nare no unintended consequences of using the\r\ncache."
},
{
"id": "ac3988907ad3ccaa",
"type": "inject",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "",
"props": [
{
"p": "payload"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payloadType": "str",
"x": 605,
"y": 540,
"wires": [
[
"95d8b757da5c9fd4"
]
],
"l": false
},
{
"id": "95d8b757da5c9fd4",
"type": "function",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "REPLAY",
"func": "\nreturn { \n \"uibuilderCtrl\": \"Gimme something\", \n \"cacheControl\": \"REPLAY\", \n}",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 700,
"y": 540,
"wires": [
[
"fc7585830654783a"
]
]
},
{
"id": "417119b1765dd5b1",
"type": "inject",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "",
"props": [
{
"p": "payload"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payloadType": "str",
"x": 605,
"y": 580,
"wires": [
[
"309727329638650e"
]
],
"l": false
},
{
"id": "309727329638650e",
"type": "function",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "CLEAR",
"func": "\nreturn { \n \"uibuilderCtrl\": \"Clear me out!\", \n \"cacheControl\": \"CLEAR\", \n}",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 700,
"y": 580,
"wires": [
[
"fc7585830654783a"
]
]
},
{
"id": "0555cd3fcd3edcfb",
"type": "uib-element",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "",
"topic": "",
"elementtype": "ul",
"parent": "#more",
"parentSource": "",
"parentSourceType": "str",
"elementid": "topic",
"elementId": "",
"elementIdSourceType": "msg",
"heading": "",
"headingSourceType": "str",
"headingLevel": "h2",
"position": "last",
"positionSourceType": "str",
"confData": {},
"x": 420,
"y": 640,
"wires": [
[
"5e202f9e5b6827e6"
]
]
},
{
"id": "5e202f9e5b6827e6",
"type": "link out",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "",
"mode": "link",
"links": [
"06327985e9dae780"
],
"x": 535,
"y": 640,
"wires": []
},
{
"id": "c3bdf6f53c48a1e0",
"type": "inject",
"z": "f748d0e6cc78a2ba",
"g": "124607d308a0f6a6",
"name": "Toggle Visible Msgs",
"props": [
{
"p": "_uib",
"v": "{\"command\":\"showMsg\",\"prop\":\"body\"}",
"vt": "json"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "toggle-visible-messages",
"x": 190,
"y": 520,
"wires": [
[
"ed061d1aaea36b27"
]
],
"info": "Change the \"prop\" value to a CSS Selector.\r\n\r\nThe display will appear as the last child of\r\nthat selected element.\r\n\r\ne.g. `body` or `#more`."
}
]