Looking for a good node to build an editable GUI for schedule

I have two nodes now:
node-red-contrib-ui-time-scheduler
and
@clysema/node-red-contrib-ui-week-schedule

But.... (sorry) they don't quite do what I want.
Cronplus is nearly what I want, but it doesn't have the GUI side of the input.

This is what I have now with cronplus but it isn't editable from the GUI side of things.
(And allow adding/removing items)

So the lines are the show I want to watch. Just to the right is a switch if the program is (or not) running. (Seasonal changes)

Then to the right there is the daily controls.
I can skip an entry if it isn't being shown on that day (as a kind of one off idea).
Otherwise the NORMAL button can block the entire day. That then facilitates the ALLOW 1 button. So if the day is being skipped but I want to watch the next scheduled show for that day, I tick that one.

Just above that is the entire control if all are enabled or blocked.

Anyway, the idea is I want to have a way of editing the settings for each entry.
As it is, I have to go into the edit screen and edit the cronplus node entries for any changes.
Not critical if it can't be done..... Just the stations are good at changing the times shows are shown, and so on.
Also there may be a new one I want to watch.
This again means I have to go into the edit screen and add 2 new nodes (well, more actually, but I am sure you get the idea.)
It would be nicer if that could be done at the GUI level.

The week-schedule node is pretty good too, but I can only edit the times/days.
Not the payload sent.

So I'm just asking if anyone knows of such a node.
Thanks in advance.

If you search back through the forum, you will find a couple of examples of a UI for CRON+.

I set this up from a flow by Steve-mcl. I haven't played with it for a while so there are bits I am hazy on now but it does a lot of what you are after.

[{"id":"e8fd4b5be134ae98","type":"tab","label":"CRON+","disabled":false,"info":""},{"id":"c261ada8.d4cd7","type":"ui_text","z":"e8fd4b5be134ae98","group":"d6a1695f.c376f8","order":1,"width":16,"height":2,"name":"CRON Description","label":"Expression Description (updates as you type)...","format":"{{msg.payload.result.description}}","layout":"col-center","x":870,"y":340,"wires":[]},{"id":"eb8003d2.ea6ef","type":"cronplus","z":"e8fd4b5be134ae98","name":"Cron Describer","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output2","outputs":2,"options":[],"x":600,"y":340,"wires":[[],["c261ada8.d4cd7"]]},{"id":"35c93639.1b4fda","type":"function","z":"e8fd4b5be134ae98","name":"describe cmd","func":"msg.payload = {\n    \"command\": \"describe\",\n    \"expression\": msg.payload\n}\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":340,"wires":[["eb8003d2.ea6ef"]]},{"id":"4cac7726.7daf48","type":"change","z":"e8fd4b5be134ae98","name":"","rules":[{"t":"set","p":"ui_add_schedule_name","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":180,"wires":[[]]},{"id":"e3b13d35.c4cfd","type":"change","z":"e8fd4b5be134ae98","name":"","rules":[{"t":"set","p":"ui_add_schedule_payload","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":460,"y":220,"wires":[[]]},{"id":"d8d4beef.ba71d","type":"change","z":"e8fd4b5be134ae98","name":"","rules":[{"t":"set","p":"ui_add_schedule_expression","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":470,"y":300,"wires":[[]]},{"id":"c2de3df3.b4691","type":"change","z":"e8fd4b5be134ae98","name":"CRON & Dates Rules","rules":[{"t":"set","p":"payload","pt":"msg","to":"{}","tot":"json"},{"t":"set","p":"payload.command","pt":"msg","to":"add","tot":"str"},{"t":"set","p":"payload.payload","pt":"msg","to":"ui_add_schedule_payload","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"ui_add_schedule_name","tot":"flow"},{"t":"set","p":"payload.expression","pt":"msg","to":"ui_add_schedule_expression","tot":"flow"},{"t":"set","p":"payload.payloadType","pt":"msg","to":"ui_add_payload_type","tot":"flow"},{"t":"set","p":"payload.topic","pt":"msg","to":"ui_add_schedule_topic","tot":"flow"},{"t":"set","p":"payload.expressionType","pt":"msg","to":"ui_add_schedule_type","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":380,"wires":[["81360336.f7e43","43e9895e.8605a8","f78ff221680781a2"]]},{"id":"81360336.f7e43","type":"cronplus","z":"e8fd4b5be134ae98","name":"dyn schedules","outputField":"payload","timeZone":"","persistDynamic":true,"commandResponseMsgOutput":"output2","outputs":2,"options":[],"x":1020,"y":420,"wires":[["95207c41.96f1a","1d438de6ecba7cc0"],["19c90ed9.4b4a31","1d438de6ecba7cc0"]]},{"id":"88ceb596.c48648","type":"ui_toast","z":"e8fd4b5be134ae98","position":"top right","displayTime":"3","highlight":"","sendall":true,"outputs":0,"ok":"OK","cancel":"","topic":"","name":"","x":870,"y":620,"wires":[]},{"id":"51778764.7dc538","type":"catch","z":"e8fd4b5be134ae98","name":"","scope":null,"uncaught":false,"x":200,"y":620,"wires":[["bc7a8f0a.eb15c","4f492a55.ff17b4"]]},{"id":"bc7a8f0a.eb15c","type":"ui_toast","z":"e8fd4b5be134ae98","position":"top right","displayTime":"3","highlight":"red","outputs":0,"ok":"OK","cancel":"","topic":"Error...","name":"","x":410,"y":620,"wires":[]},{"id":"43e9895e.8605a8","type":"ui_button","z":"e8fd4b5be134ae98","name":"Refresh","group":"d6a1695f.c376f8","order":7,"width":1,"height":1,"passthru":true,"label":"","tooltip":"Get status of jobs","color":"","bgcolor":"","icon":"fa-refresh","payload":"","payloadType":"date","topic":"list-all","x":800,"y":420,"wires":[["81360336.f7e43"]]},{"id":"b3ad9498.ca2c88","type":"ui_text_input","z":"e8fd4b5be134ae98","name":"","label":"Expression","tooltip":"CRON expression","group":"d6a1695f.c376f8","order":10,"width":4,"height":1,"passthru":true,"mode":"text","delay":"100","topic":"","x":210,"y":300,"wires":[["35c93639.1b4fda","d8d4beef.ba71d"]]},{"id":"74693f08.e64c4","type":"ui_text_input","z":"e8fd4b5be134ae98","name":"","label":"Name","tooltip":"Schedule Name","group":"d6a1695f.c376f8","order":2,"width":4,"height":1,"passthru":true,"mode":"text","delay":"100","topic":"","sendOnBlur":true,"topicType":"str","x":190,"y":180,"wires":[["4cac7726.7daf48"]]},{"id":"17e038e.7419bc7","type":"ui_button","z":"e8fd4b5be134ae98","name":"","group":"d6a1695f.c376f8","order":6,"width":2,"height":1,"passthru":false,"label":"Add","tooltip":"Add or update named schedule","color":"","bgcolor":"","icon":"send","payload":"","payloadType":"str","topic":"","x":190,"y":420,"wires":[["784283f8a519e4ea"]]},{"id":"440d4e3.ab64fb","type":"ui_text_input","z":"e8fd4b5be134ae98","name":"","label":"Payload","tooltip":"Payload to send when schedule fires","group":"d6a1695f.c376f8","order":4,"width":3,"height":1,"passthru":true,"mode":"text","delay":"100","topic":"","sendOnBlur":true,"topicType":"str","x":200,"y":220,"wires":[["e3b13d35.c4cfd"]]},{"id":"e3ea0c.b99c05f8","type":"ui_template","z":"e8fd4b5be134ae98","group":"d6a1695f.c376f8","name":"","order":13,"width":16,"height":7,"format":"<style type=\"text/css\">\n.t1  {border-collapse:collapse;border-spacing:0;border-color:#ccc;}\n.t1 td{font-family:Arial, sans-serif;font-size:14px;padding:8px 3px;border-style:solid;border-width:0px;overflow:hidden;word-break:normal;border-top-width:1px;border-bottom-width:1px;border-color:#ccc;color:#333;background-color:#fff;}\n.t1 th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#f0f0f0;}\n.t1 .t1-36r9{background-color:#000000;color:#ffffff;text-align:left;vertical-align:top}\n.t1 .t1-x2zo{background-color:#c0c0c0;font-size:small;text-align:left;vertical-align:top}\n.t1 .t1-o73e{background-color:#c0c0c0;font-size:small;text-align:center;vertical-align:top}\n.t1 .t1-5qt9{font-size:small;text-align:left;vertical-align:top}\n.t1 .t1-5qtb{font-size:small;text-align:left;vertical-align:top; max-width: 10em; word-wrap: break-word;}\n.t1 .t1-5qta{font-size:small;text-align:center;vertical-align:middle}\n</style>\n<table class=\"t1\">\n  <tr>\n    <th class=\"t1-36r9\" colspan=\"10\">CRON Schedules</th>\n  </tr>\n  <tr>\n    <td class=\"t1-x2zo\">Name</td>\n    <td class=\"t1-x2zo\">Expression</td>\n    <td class=\"t1-x2zo\">Payload</td>\n    <td class=\"t1-x2zo\">Topic</td>\n    <td class=\"t1-x2zo\">Description</td>\n    <td class=\"t1-x2zo\">Next run</td>\n    <td class=\"t1-x2zo\">State</td>\n    <td class=\"t1-o73e\">Delete</td>\n    <td class=\"t1-o73e\">Pause</td>\n    <td class=\"t1-o73e\">Resume</td>\n  </tr>\n  <tr  ng-repeat=\"item in msg.payload\">\n    <td class=\"t1-5qt9\">{{item.config.name}}</td>\n    <td class=\"t1-5qt9\" style=\"white-space: nowrap\" nowrap>{{item.config.expression}}</td>\n    <td class=\"t1-5qt9\">{{item.config.payload}}</td>\n    <td class=\"t1-5qtb\">{{item.config.topic}}</td>\n    <td class=\"t1-5qt9\">{{item.status.description}}</td>\n    <td class=\"t1-5qt9\">{{item.status.nextDescription}}</td>\n    <td class=\"t1-5qta\"><i class=\"fa fa-{{item.status.isRunning ? 'play' : 'pause'}}\"> </i></td>\n\n   <td class=\"t1-5qta\">\n       <md-button class=\"md-raised\"\n        ng-click=\"send([[{payload:{command:'remove', name: item.config.name}}, {payload:{command:'list-all'}}]]);\"> <i class=\"fa fa-trash\"> </i></md-button>\n   </td>\n   <td class=\"t1-5qta\">\n       <md-button class=\"button\" \n       ng-click=\"send([[{payload:{command:'pause', name: item.config.name}}, {payload:{command:'list-all'}}]]);\"> <i class=\"fa fa-pause\"> </i></md-button>\n   </td>\n   <td class=\"t1-5qta\">\n       <md-button class=\"button\" \n       ng-click=\"send([[{payload:{command:'start', name: item.config.name}}, {payload:{command:'list-all'}}]]);\"> <i class=\"fa fa-play\"> </i></md-button>\n   </td>\n\n  </tr>\n\n </tbody>\n</table>\n\n<!--<table id=\"table\" class=\"table table-striped table-responsive-md btn-table\" >-->\n<!--     <tr>-->\n<!--        <th>Name</th> -->\n<!--        <th>Expression</th> -->\n<!--        <th>Payload</th> -->\n<!--        <th>Description</th>-->\n<!--        <th>Next run</th>-->\n<!--        <th>State</th>-->\n<!--        <th>Delete</th>-->\n<!--        <th>Pause</th>-->\n<!--        <th>Resume</th>-->\n<!-- </tr>-->\n<!-- <tbody>-->\n<!-- <tr ng-repeat=\"item in msg.payload\">-->\n<!--   <td >{{item.config.name}}</td>-->\n<!--   <td style=\"white-space: nowrap\" nowrap>{{item.config.expression}}</td>-->\n<!--   <td >{{item.config.payload}}</td>-->\n<!--   <td >{{item.status.description}}</td>-->\n<!--   <td >{{item.status.nextDescription}}</td>-->\n<!--   <td >{{item.status.isRunning ? 'Running' : 'Paused'}}</td>-->\n<!--   <td>-->\n<!--       <md-button class=\"md-raised\"-->\n<!--        ng-click=\"send([[{payload:{command:'remove', name: item.config.name}}, {payload:{command:'list-all'}}]]);\"> <i class=\"fa fa-trash\"> </i></md-button>-->\n<!--   </td>-->\n<!--   <td>-->\n<!--       <md-button class=\"button\" -->\n<!--       ng-click=\"send([[{payload:{command:'pause', name: item.config.name}}, {payload:{command:'list-all'}}]]);\"> <i class=\"fa fa-pause\"> </i></md-button>-->\n<!--   </td>-->\n<!--   <td>-->\n<!--       <md-button class=\"button\" -->\n<!--       ng-click=\"send([[{payload:{command:'start', name: item.config.name}}, {payload:{command:'list-all'}}]]);\"> <i class=\"fa fa-play\"> </i></md-button>-->\n<!--   </td>-->\n<!-- </tr>-->\n<!-- </tbody>-->\n<!--</table>-->\n\n","storeOutMessages":false,"fwdInMessages":false,"resendOnRefresh":false,"templateScope":"local","className":"","x":680,"y":520,"wires":[["81360336.f7e43"]]},{"id":"650dc2c3.f8ef2c","type":"function","z":"e8fd4b5be134ae98","name":"Make table data","func":"if(!msg.payload || !msg.payload.result || !msg.payload.result.length){\n    msg.payload = [];\n    return msg;\n}\n\nmsg.payload = msg.payload.result;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":520,"wires":[["e3ea0c.b99c05f8"]]},{"id":"4f492a55.ff17b4","type":"debug","z":"e8fd4b5be134ae98","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":370,"y":660,"wires":[]},{"id":"780d7131.671b7","type":"ui_template","z":"e8fd4b5be134ae98","group":"d6a1695f.c376f8","name":"CRON Info","order":14,"width":16,"height":5,"format":"<!DOCTYPE html>\n<html>\n<body>\n<div>\n<p class = \"title\" style = \"background-color: #000000 !important; color: white !important\" colspan=\"10\">CRON details...</p>\n\n<pre>\n\n    s  m  h  md m  wd y\n    |  |  |  |  |  |  |\n    *  *  *  *  *  *  *    Field              Allowed values    Special symbols\n    |  |  |  |  |  |  |    -----------------  ---------------   ---------------\n    `--|--|--|--|--|--|->  Second (optional)  0-59              * / , -\n       `--|--|--|--|--|->  Minute             0-59              * / , -\n          `--|--|--|--|->  Hour               0-23              * / , -\n             `--|--|--|->  Day of Month       1-31              * / , - L W\n                `--|--|->  Month              1-12 or JAN-DEC   * / , -\n                   `--|->  Day of Week        0-7 or SUN-SAT    * / , - L #\n                      `->  Year (optional)    1970-2099         * / , -       \n</pre>    \n</div>\n</body>\n</html>\n\n<style>\n.title {\n   background-color: #000000 !important;\n   color: white !important;\n   padding: 10px 5px;\n   text-align: left;\n   vertical-align: top;\n}\n\n</style>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"local","className":"","x":1090,"y":340,"wires":[[]]},{"id":"478fbbd.cfa1c44","type":"link in","z":"e8fd4b5be134ae98","name":"Cron Events In","links":["95207c41.96f1a"],"x":615,"y":620,"wires":[["88ceb596.c48648","d85796ff.a49238"]]},{"id":"d85796ff.a49238","type":"debug","z":"e8fd4b5be134ae98","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":830,"y":680,"wires":[]},{"id":"268d2762.906e88","type":"comment","z":"e8fd4b5be134ae98","name":"Dynamic cron schedules - setup by dashboard","info":"","x":490,"y":20,"wires":[]},{"id":"95207c41.96f1a","type":"link out","z":"e8fd4b5be134ae98","name":"CRON Events Out","links":["478fbbd.cfa1c44"],"x":1215,"y":360,"wires":[]},{"id":"a17cdbbc.8b2328","type":"ui_ui_control","z":"e8fd4b5be134ae98","name":"","events":"all","x":480,"y":460,"wires":[["43e9895e.8605a8"]]},{"id":"19c90ed9.4b4a31","type":"delay","z":"e8fd4b5be134ae98","name":"","pauseType":"delay","timeout":"200","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"outputs":1,"x":310,"y":520,"wires":[["650dc2c3.f8ef2c"]]},{"id":"ae3cbc03ef50fe96","type":"ui_text_input","z":"e8fd4b5be134ae98","name":"","label":"Topic","tooltip":"Topic to send when schedule fires","group":"d6a1695f.c376f8","order":3,"width":4,"height":1,"passthru":true,"mode":"text","delay":"100","topic":"","sendOnBlur":true,"topicType":"str","x":190,"y":260,"wires":[["e4a8f86ff43b9f57"]]},{"id":"e4a8f86ff43b9f57","type":"change","z":"e8fd4b5be134ae98","name":"","rules":[{"t":"set","p":"ui_add_schedule_topic","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":260,"wires":[[]]},{"id":"e2cb356055e22cc0","type":"ui_dropdown","z":"e8fd4b5be134ae98","name":"Schedule Type","label":"","tooltip":"Shedule type selection","place":"Select option","group":"d6a1695f.c376f8","order":8,"width":4,"height":1,"passthru":true,"multiple":false,"options":[{"label":"CRON","value":"cron","type":"str"},{"label":"Date","value":"dates","type":"str"},{"label":"Solar Event","value":"solar","type":"str"}],"payload":"","topic":"topic","topicType":"msg","className":"","x":220,"y":140,"wires":[["ada4f2f373cccc2f"]]},{"id":"ada4f2f373cccc2f","type":"change","z":"e8fd4b5be134ae98","name":"","rules":[{"t":"set","p":"ui_add_schedule_type","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":140,"wires":[[]]},{"id":"02956d7e25d583bd","type":"ui_template","z":"e8fd4b5be134ae98","group":"d6a1695f.c376f8","name":"CRON Input CSS","order":15,"width":0,"height":0,"format":"<style>\n    .nr-dashboard-dropdown md-input-container {\n        padding-right: 12px;\n    }\n\n    .nr-dashboard-theme .nr-dashboard-dropdown md-select .md-select-value {\n        font-size: 0.9em;\n    }\n\n    .nr-dashboard-theme .nr-dashboard-textinput input {\n        font-size: 0.9em;\n    }\n\n    .nr-dashboard-textinput md-input-container .md-input {\n        padding-top: 4px;\n    }\n\n    .nr-dashboard-textinput input {\n        padding-left: 0px;\n    }","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"global","className":"","x":1050,"y":40,"wires":[[]]},{"id":"4487cc6ab32c2d9c","type":"ui_dropdown","z":"e8fd4b5be134ae98","name":"Solar Event","label":"","tooltip":"","place":"Select option","group":"d6a1695f.c376f8","order":9,"width":4,"height":1,"passthru":true,"multiple":true,"options":[{"label":"Night End","value":"nightEnd","type":"str"},{"label":"Nautical Dawn","value":"nauticalDawn","type":"str"},{"label":"Civil Dawn","value":"civilDawn","type":"str"},{"label":"Sunrise","value":"sunrise","type":"str"},{"label":"Sunrise End","value":"sunriseEnd","type":"str"},{"label":"Morning Golden Hour","value":"morningGoldenHourEnd","type":"str"},{"label":"Solar Noon","value":"solarNoon","type":"str"},{"label":"Evening Golden Hour","value":"eveningGoldenHourStart","type":"str"},{"label":"Sunset Start","value":"sunsetStart","type":"str"},{"label":"Sunset","value":"sunset","type":"str"},{"label":"Civil Dusk","value":"civilDusk","type":"str"},{"label":"Nautical Dusk","value":"nauticalDusk","type":"str"},{"label":"Night Start","value":"nightStart","type":"str"},{"label":"Nadir","value":"nadir","type":"str"}],"payload":"","topic":"topic","topicType":"msg","className":"","x":210,"y":60,"wires":[["604d885f5d41c228"]]},{"id":"15a471e3310d93b8","type":"ui_dropdown","z":"e8fd4b5be134ae98","name":"Payload Type","label":"","tooltip":"Payload Type","place":"Type","group":"d6a1695f.c376f8","order":5,"width":2,"height":1,"passthru":true,"multiple":false,"options":[{"label":"String","value":"str","type":"str"},{"label":"Number","value":"num","type":"str"},{"label":"Boolean","value":"bool","type":"str"},{"label":"JSON","value":"json","type":"str"}],"payload":"","topic":"topic","topicType":"msg","className":"","x":220,"y":100,"wires":[["7e3b747edf8dd2c7"]]},{"id":"7e3b747edf8dd2c7","type":"change","z":"e8fd4b5be134ae98","name":"","rules":[{"t":"set","p":"ui_add_payload_type","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":100,"wires":[[]]},{"id":"784283f8a519e4ea","type":"switch","z":"e8fd4b5be134ae98","name":"Schedule Type","property":"ui_add_schedule_type","propertyType":"flow","rules":[{"t":"eq","v":"cron","vt":"str"},{"t":"eq","v":"dates","vt":"str"},{"t":"eq","v":"solar","vt":"str"}],"checkall":"true","repair":false,"outputs":3,"x":340,"y":420,"wires":[["c2de3df3.b4691"],["c2de3df3.b4691"],["8bd3426619e8e6fb"]]},{"id":"8bd3426619e8e6fb","type":"change","z":"e8fd4b5be134ae98","name":"Solar Rules","rules":[{"t":"set","p":"payload","pt":"msg","to":"{}","tot":"json"},{"t":"set","p":"payload.command","pt":"msg","to":"add","tot":"str"},{"t":"set","p":"payload.payload","pt":"msg","to":"ui_add_schedule_payload","tot":"flow"},{"t":"set","p":"payload.payloadType","pt":"msg","to":"ui_add_payload_type","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"ui_add_schedule_name","tot":"flow"},{"t":"set","p":"payload.solarType","pt":"msg","to":"selected","tot":"str"},{"t":"set","p":"payload.solarEvents","pt":"msg","to":"ui_add_schedule_solarEvents","tot":"flow"},{"t":"set","p":"payload.topic","pt":"msg","to":"ui_add_schedule_topic","tot":"flow"},{"t":"set","p":"payload.location","pt":"msg","to":"51.16430064234096,  -0.11487543604744133","tot":"str"},{"t":"set","p":"payload.expressionType","pt":"msg","to":"solar","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":550,"y":420,"wires":[["43e9895e.8605a8","81360336.f7e43","9a347f0137892ab3"]]},{"id":"fa3175b76db780cb","type":"change","z":"e8fd4b5be134ae98","name":"","rules":[{"t":"set","p":"ui_add_schedule_solarEvents","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":630,"y":60,"wires":[[]]},{"id":"9a347f0137892ab3","type":"debug","z":"e8fd4b5be134ae98","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1000,"y":100,"wires":[]},{"id":"604d885f5d41c228","type":"function","z":"e8fd4b5be134ae98","name":"","func":"const solarEvents = msg.payload.join(' ,')\nmsg.payload = solarEvents\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":60,"wires":[["fa3175b76db780cb"]]},{"id":"f78ff221680781a2","type":"debug","z":"e8fd4b5be134ae98","name":"Expression","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1040,"y":160,"wires":[]},{"id":"1d438de6ecba7cc0","type":"debug","z":"e8fd4b5be134ae98","name":"CRON Output","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1320,"y":420,"wires":[]},{"id":"aa0ceb5e45fd62d3","type":"ui_template","z":"e8fd4b5be134ae98","group":"d6a1695f.c376f8","name":"Modal Alert Dialog","order":12,"width":1,"height":1,"format":"<!DOCTYPE html>\n<html>\n\n<body>\n    <div>\n        <md-button class = \"btn-small\" ng-click = \"showAlert($event)\">Help</md-button>\n\n    </div>\n\n\n<script>\n    (function(scope){\n\n        const template = `<table class=\"t2\">\n            <tr>\n                <th class=\"t2-dg6o\" colspan=\"2\">Example CRON Expressions</th>\n            </tr>\n            <tr>\n                <td class=\"t2-6e8n\">Expression</td>\n                <td class=\"t2-6e8n\">Description</td>\n            </tr>\n            <tr>\n                <td class=\"t2-0pky\">* * * * * *</td>\n                <td class=\"t2-0pky\">Every Second</td>\n            </tr>\n            <tr>\n                <td class=\"t2-0pky\">0 * * * * *</td>\n                <td class=\"t2-0pky\">Every minute</td>\n            </tr>\n            <tr>\n                <td class=\"t2-0pky\">0 */10 * * * *</td>\n                <td class=\"t2-0pky\">Every 10 minutes</td>\n            </tr>\n            <tr>\n                <td class=\"t2-0pky\">0 */20 1 * * *</td>\n                <td class=\"t2-0pky\">Every 20 minutes, between 01:00 AM and 01:59 AM</td>\n            </tr>\n            <tr>\n                <td class=\"t2-0pky\">0 15,30,45 * * * *</td>\n                <td class=\"t2-0pky\">At 15, 30, and 45 minutes past the hour</td>\n            </tr>\n            <tr>\n                <td class=\"t2-0pky\">0 0 12 * * *</td>\n                <td class=\"t2-0pky\">Every day at noon - 12pm</td>\n            </tr>\n            <tr>\n                <td class=\"t2-0pky\">0 0 2 29 FEB * 2020-2040</td>\n                <td class=\"t2-0pky\">At 02:00 AM, on day 29 of the month, only in February, every 4 years, 2020 through 2040</td>\n            </tr>\n            <tr>\n                <td class=\"t2-0pky\">0 0 7 * *</td>\n                <td class=\"t2-0pky\">MON#1 * At 07:00 AM, on the first Monday of the month</td>\n            </tr>\n            <tr>\n                <td class=\"t2-0pky\">0 0 12 * JAN,FEB,MAR,APR *</td>\n                <td class=\"t2-0pky\">Every day at noon in January, February, March and April</td>\n            </tr>\n            <tr>\n                <td class=\"t2-0pky\">* * 1W * *</td>\n                <td class=\"t2-0pky\">Every minute, on the first weekday of the month</td>\n            </tr>\n            <tr>\n                <td class=\"t2-0pky\">* * * * Tue#3</td>\n                <td class=\"t2-0pky\">Every minute, on the third Tuesday of the month</td>\n            </tr>\n            <tr>\n                <td class=\"t2-0pky\">0 12 * * MONL</td>\n                <td class=\"t2-0pky\">At 12:00 PM, on the last Monday of the month</td>\n            </tr>\n        </table>`\n\n        const alertDialog = function ($mdDialog) {\n            let alert = $mdDialog.alert({\n                title: 'Help',\n                htmlContent: template,\n                ok: 'Close'\n            });\n        \n            $mdDialog.show( alert ).finally(function() { alert = undefined });\n        }\n\n\n        scope.showAlert = function(event) {\n            const self = event.target\n            const injector = angular.element(self).injector();\n            injector.invoke(alertDialog, null, null);\n        }\n\n    })(scope);\n\n</script>\n\n\n</body>\n\n</html>\n\n<style id=\"#CSS_Tester_Input_Example_cards\">\n    body {}\n\n    #CSS_Tester_Input_Example_cards div {\n        background-color: whitesmoke !important;\n        height: 14rem;\n        padding: 0.8em;\n        /*border: solid;*/\n        border-radius: 5px;\n    }\n\n    #CSS_Tester_Input_Example_cards h2 {\n        font-family: Verdana;\n        background-color: whitesmoke !important;\n    }\n\n    #CSS_Tester_Input_Example_cards p {\n        font-family: Verdana;\n        font-size: 0.9em;\n        background-color: whitesmoke !important;\n\n    }\n\n    .nr-dashboard-theme .nr-dashboard-template {\n        background-color: whitesmoke !important;\n    }\n\n    .newFont {\n        font-family: Verdana;\n        font-size: 0.9em;\n        background-color: whitesmoke;\n\n    }\n\n\n    .nr-dashboard-theme ui-card-panel {\n        background-color: whitesmoke;\n\n    }\n\n\n    .t2 {\n        border-collapse: collapse;\n        border-spacing: 0;\n        border-color: #ccc;\n    }\n\n    .t2 td {\n        font-family: Arial, sans-serif;\n        font-size: 14px;\n        padding: 2px 2px;\n        border-style: solid;\n        border-width: 1px;\n        overflow: hidden;\n        word-break: normal;\n        border-color: #ccc;\n        color: #333;\n        background-color: #fff;\n    }\n\n    .t2 th {\n        font-family: Arial, sans-serif;\n        font-size: 14px;\n        font-weight: normal;\n        padding: 10px 5px;\n        border-style: solid;\n        border-width: 1px;\n        overflow: hidden;\n        word-break: normal;\n        border-color: #ccc;\n        color: #333;\n        background-color: #f0f0f0;\n    }\n\n    .t2 .t2-dg6o {\n        background-color: #000000;\n        color: #ffffff;\n        text-align: left;\n        vertical-align: top\n    }\n\n    .t2 .t2-6e8n {\n        font-weight: bold;\n        background-color: #c0c0c0;\n        border-color: inherit;\n        text-align: left;\n        vertical-align: top\n    }\n\n    .t2 .t2-0pky {\n        border-color: inherit;\n        text-align: left;\n        vertical-align: top\n    }\n\n    /* Toggle Button styles */\n    .btn-standard,\n    .btn-small {\n        display: inline-block;\n        height: 48px;\n        width: 48px;\n        border-radius: 3px;\n        font-size: 1.0em;\n\n    }\n\n    .btn-small{\n        font-size: 0.8em;\n\n    }\n\n    .btn-standard:active,\n    .btn-small:active {\n        position: relative;\n        transform: translate(-1px, -1px);\n\n    }\n\n</style>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","className":"","x":1190,"y":620,"wires":[[]],"info":"htmlContent"},{"id":"cba623f46f12e459","type":"ui_spacer","z":"e8fd4b5be134ae98","name":"spacer","group":"d6a1695f.c376f8","order":11,"width":3,"height":1},{"id":"d6a1695f.c376f8","type":"ui_group","name":"Default","tab":"c08b5841.22f118","order":1,"disp":false,"width":16,"collapse":false,"className":""},{"id":"c08b5841.22f118","type":"ui_tab","name":"CRON","icon":"dashboard","order":2,"disabled":false,"hidden":false}]
1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.