# UI for timekeeper Android style

**URL:** <https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214>\
**Category:** General\
**Created:** [3 July 2024 08:28 UTC](https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214 "2024-07-03T08:28:21Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![robertobuti](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/robertobuti/32/81936_2.png) [@robertobuti](https://discourse.nodered.org/u/robertobuti)\
**Post date:** [3 July 2024 08:28 UTC](https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214/1 "2024-07-03T08:28:21Z")

</div>

Hello,  
i have done this timekeeper starting from github code, the strange thing is some time is working and sometime not, the field are displayed but the editing not. not every time, seem not realted to the browser, but making deploy more time in same case start to run. I'm not so expert in code, can anyone check if there is any concept error in html / javascript ?  
thank in advance.  
r.

```auto
[
    {
        "id": "5b205c9414353ac5",
        "type": "tab",
        "label": "Flow 2",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "ae119afba03b35d4",
        "type": "debug",
        "z": "5b205c9414353ac5",
        "name": "debug 87",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 720,
        "y": 220,
        "wires": []
    },
    {
        "id": "897358a91fa3edc3",
        "type": "ui_template",
        "z": "5b205c9414353ac5",
        "group": "e89b87ae89095b54",
        "name": "mytimepicker",
        "order": 1,
        "width": "8",
        "height": "8",
        "format": "<html>\n<script type=\"text/javascript\">\n $(document).ready(function() {\n $('.standard').clockTimePicker();\n});\n</script>\n<script src=\"https://code.jquery.com/jquery-3.6.0.min.js\"></script>\n<script src=\"https://unpkg.com/jquery-clock-timepicker@2.2.0/jquery-clock-timepicker.min.js\"></script>\n\n<style type=\"text/css\">\n .main {\n text-align: center;\n }\n .time {\n display: flex;\n font-size: 18px;\n padding: 5px;\n text-align: center;\n width: 94px;\n margin-top: 5px;\n }\n</style>\n<style type=\"text/css\">\n .clock-timepicker input {\n caret-color: transparent;\n }\n</style>\n\n<body>\n <div class=\"main\">\n <div class=\"clock-timepicker\" style=\"display:inline-block; position:relative\"><input class=\"time standard\" type=\"text\" value=\"10:15\" onchange=\"console.log('Time changed to: ' + this.value)\" style=\"min-width: 94px;\" autocomplete=\"off\" autocapitalize=\"none\" spellcheck=\"false\">\n <div class=\"clock-timepicker-autosize\"\n style=\"position: absolute; opacity: 0; display: none; top: 5px; left: 0px; font-size: 26px; font-family: MS Shell Dlg \\32 ; font-weight: 400; line-height: normal;\">\n 10</div>\n <div class=\"clock-timepicker-popup\"\n style=\"display: none; z-index: 99999; cursor: default; position: fixed; width: 200px; background-color: rgb(255, 255, 255); box-shadow: rgba(0, 0, 0, 0.14) 0px 4px 20px 0px; border-radius: 5px; overflow: hidden; user-select: none; visibility: visible; left: 799px; top: 366.4px;\">\n <div style=\"position: relative; width: 180px; height: 180px; margin: 10px;\"><canvas\n class=\"clock-timepicker-hour-canvas\"\n style=\"cursor: default; position: absolute; top: 0px; left: 0px; zoom: 100%; display: block; opacity: 1; z-index: 1;\"\n width=\"180\" height=\"180\"></canvas><canvas class=\"clock-timepicker-minute-canvas\"\n style=\"cursor: default; position: absolute; top: 0px; left: 0px; display: block; zoom: 100%; opacity: 1; z-index: 1;\"\n width=\"180\" height=\"180\"></canvas></div>\n </div>\n </div>\n </div>\n\n</body>\n\n<script>\n (function(scope) {\n scope.$watch('msg', function(msg) {\n if (msg) {\n $(' .clock-timepicker input').clockTimePicker('value', '08:00');\n }\n });\n\n\n })(scope);\n</script>\n\n\n</html>",
        "storeOutMessages": true,
        "fwdInMessages": false,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 490,
        "y": 220,
        "wires": [
            [
                "ae119afba03b35d4"
            ]
        ]
    },
    {
        "id": "e1fa1948696528c8",
        "type": "inject",
        "z": "5b205c9414353ac5",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 240,
        "y": 220,
        "wires": [
            [
                "897358a91fa3edc3",
                "a9f4f8b42930fdc4"
            ]
        ]
    },
    {
        "id": "a9f4f8b42930fdc4",
        "type": "ui_template",
        "z": "5b205c9414353ac5",
        "d": true,
        "group": "e89b87ae89095b54",
        "name": "mytimepicker",
        "order": 1,
        "width": "8",
        "height": "8",
        "format": "<html>\n\n<script type=\"text/javascript\">\n $(document).ready(function() {\n $('.standard').clockTimePicker();\n});\n</script>\n<script src=\"https://code.jquery.com/jquery-3.6.0.min.js\"></script>\n<script src=\"https://unpkg.com/jquery-clock-timepicker@2.2.0/jquery-clock-timepicker.min.js\"></script>\n\n<style type=\"text/css\">\n .main {\n text-align: center;\n }\n .time {\n display: flex;\n font-size: 18px;\n padding: 5px;\n text-align: center;\n width: 94px;\n margin-top: 5px;\n }\n</style>\n<style type=\"text/css\">\n .clock-timepicker input {\n caret-color: transparent;\n }\n</style>\n\n<body>\n <div class=\"main\">\n <div class=\"clock-timepicker\" style=\"display:inline-block; position:relative\"><input class=\"time standard\" type=\"text\" value=\"10:15\" onchange=\"console.log('Time changed to: ' + this.value)\" style=\"min-width: 94px;\" autocomplete=\"off\" autocapitalize=\"none\" spellcheck=\"false\">\n <div class=\"clock-timepicker-autosize\"\n style=\"position: absolute; opacity: 0; display: none; top: 5px; left: 0px; font-size: 26px; font-family: MS Shell Dlg \\32 ; font-weight: 400; line-height: normal;\">\n 10</div>\n <div class=\"clock-timepicker-popup\"\n style=\"display: none; z-index: 99999; cursor: default; position: fixed; width: 200px; background-color: rgb(255, 255, 255); box-shadow: rgba(0, 0, 0, 0.14) 0px 4px 20px 0px; border-radius: 5px; overflow: hidden; user-select: none; visibility: visible; left: 799px; top: 366.4px;\">\n <div style=\"position: relative; width: 180px; height: 180px; margin: 10px;\"><canvas\n class=\"clock-timepicker-hour-canvas\"\n style=\"cursor: default; position: absolute; top: 0px; left: 0px; zoom: 100%; display: block; opacity: 1; z-index: 1;\"\n width=\"180\" height=\"180\"></canvas><canvas class=\"clock-timepicker-minute-canvas\"\n style=\"cursor: default; position: absolute; top: 0px; left: 0px; display: block; zoom: 100%; opacity: 1; z-index: 1;\"\n width=\"180\" height=\"180\"></canvas></div>\n </div>\n </div>\n </div>\n\n</body>\n\n<script>\n (function(scope) {\n scope.$watch('msg', function(msg) {\n if (msg) {\n $(' .clock-timepicker input').clockTimePicker('value', '08:00');\n }\n });\n\n\n })(scope);\n</script>\n\n\n</html>",
        "storeOutMessages": true,
        "fwdInMessages": false,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 490,
        "y": 120,
        "wires": [
            [
                "ae119afba03b35d4"
            ]
        ]
    },
    {
        "id": "e89b87ae89095b54",
        "type": "ui_group",
        "name": "Clock",
        "tab": "debd57ea971062c2",
        "order": 1,
        "disp": true,
        "width": "10",
        "collapse": false,
        "className": ""
    },
    {
        "id": "debd57ea971062c2",
        "type": "ui_tab",
        "name": "Animated clock",
        "icon": "dashboard",
        "disabled": false,
        "hidden": false
    }
]

```

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [3 July 2024 12:04 UTC](https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214/2 "2024-07-03T12:04:29Z")

</div>

What are you trying to accomplish?  
What do you mean by 'Android style'? (I don't have an Android device)

If you are looking to have a clock on the dashboard have you looked at  
[node-red-contrib-ui-digital-clock](https://flows.nodered.org/node/node-red-contrib-ui-digital-clock)  
[node-red-contrib-ui-digital-display](https://flows.nodered.org/node/node-red-contrib-ui-digital-display)

---

<div class="post-metadata">

**Author:** ![gerry](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gerry/32/21604_2.png) [@gerry](https://discourse.nodered.org/u/gerry)\
**Post date:** [3 July 2024 15:45 UTC](https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214/3 "2024-07-03T15:45:03Z")

</div>

@zenofmud are these DB2 nodes?

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [3 July 2024 19:59 UTC](https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214/4 "2024-07-03T19:59:44Z")

</div>

No, they are db1 nodes

---

<div class="post-metadata">

**Author:** ![robertobuti](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/robertobuti/32/81936_2.png) [@robertobuti](https://discourse.nodered.org/u/robertobuti)\
**Post date:** [12 July 2024 06:15 UTC](https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214/5 "2024-07-12T06:15:47Z")

</div>

I mean these style, but most of the time there is only the text field, not the round clock.  
 ![immagine](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/c/9cb72c5a2247cd154324ec8879dc43dbe44964ee.png)

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [12 July 2024 09:09 UTC](https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214/6 "2024-07-12T09:09:23Z")

</div>

here is a link to a thread (FROM 2021) where @hotNipi created a clock and (other things) using the `quake` node. This might give you a starting point. It is a long thread but full of information. If you scroll down to entry 94 or 95 you will see a demo flow you can play with.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [12 July 2024 09:38 UTC](https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214/7 "2024-07-12T09:38:38Z")

</div>

With the time input nodes I think it is up to the browser how it shows it.

---

<div class="post-metadata">

**Author:** ![hotNipi](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hotnipi/32/383_2.png) [@hotNipi](https://discourse.nodered.org/u/hotNipi)\
**Post date:** [12 July 2024 11:42 UTC](https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214/8 "2024-07-12T11:42:21Z")

</div>

This is pretty interesting thing.

> **[GitHub - pglejzer/timepicker-ui: timepicker-ui is an easy library with...](https://github.com/pglejzer/timepicker-ui/tree/main)**
>
> main

---

<div class="post-metadata">

**Author:** ![Paul-Reed](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/paul-reed/32/66906_2.png) [@Paul-Reed](https://discourse.nodered.org/u/Paul-Reed)\
**Post date:** [12 July 2024 11:57 UTC](https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214/9 "2024-07-12T11:57:03Z")

</div>

@hotNipi - Nice find

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [12 July 2024 17:18 UTC](https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214/10 "2024-07-12T17:18:03Z")

</div>

Drats, I just noticed I didn’t add the link and spell check messed up the name of the node (head slap)

Here is the link for the ‘gauge’ node

> [@First september give-away (let's create one gauge)](https://discourse.nodered.org/t/first-september-give-away-lets-create-one-gauge/50507/99):
>
> A little bit of play with realism again and it seems like possible to achieve something...

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [10 October 2024 17:18 UTC](https://discourse.nodered.org/t/ui-for-timekeeper-android-style/89214/11 "2024-10-10T17:18:20Z")

</div>

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