I'm just not knowledgeable about html and "web development" but have used the dashboard for a simple, yet effective, controller/viewer for my AI enhanced security system.
What I don't understand is why it works "better" on my phone than my desktop, both running Chrome browser.
On the phone I get a vertical layout, with the small images "zoomable" if I tap it and pinch zoom and pan. On the desktop its a horizontal layout with just the fixed sized small image displayed, but if i do "Save As" It saves the full resolution image.
Is there anyway to make the desktop behavior be more like on the phone?
Here is the section of the flow that reads an image buffer via MQTT and ends with an template on the dashboard. I basically got this by slight modification of other sample flows:
[{"id":"54dca344.c9d7bc","type":"template","z":"9eec8188.e2fcb","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<img width=\"640px\" height=\"360px\" src=\"data:image/jpg;base64,{{{payload}}}\">","output":"str","x":1215,"y":1250,"wires":[["63ee5fe4.0250c"]]},{"id":"63ee5fe4.0250c","type":"ui_template","z":"9eec8188.e2fcb","group":"a4d1387f.772c08","name":"Viewer","order":1,"width":"13","height":"7","format":"<div ng-bind-html=\"msg.payload\"></div>","storeOutMessages":false,"fwdInMessages":true,"templateScope":"local","x":1345,"y":1250,"wires":[[]]},{"id":"560a60c3.1b056","type":"base64","z":"9eec8188.e2fcb","name":"","action":"str","property":"payload","x":1075,"y":1250,"wires":[["54dca344.c9d7bc"]]},{"id":"31fc0008.fe4f9","type":"ui_button","z":"9eec8188.e2fcb","name":"filename","group":"a4d1387f.772c08","order":2,"width":"12","height":"1","passthru":true,"label":"{{msg.filename}}","tooltip":"","color":"#101010","bgcolor":"#83ed7b","icon":"","payload":"","payloadType":"str","topic":"","x":935,"y":1280,"wires":[[]]},{"id":"99a5d2.222a7a3","type":"mqtt in","z":"9eec8188.e2fcb","name":"ImageBuffer/","topic":"ImageBuffer/#","qos":"0","datatype":"buffer","broker":"7aae156e.ffd09c","x":225,"y":1250,"wires":[["9bcdb480.57dca8","ea88efb8.5cc88"]]},{"id":"9bcdb480.57dca8","type":"change","z":"9eec8188.e2fcb","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"image","tot":"msg"},{"t":"move","p":"topic","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":435,"y":1250,"wires":[["c4a2e364.fd7f8"]]},{"id":"c4a2e364.fd7f8","type":"csv","z":"9eec8188.e2fcb","name":"","sep":"!","hdrin":"","hdrout":"","multi":"one","ret":"\\n","temp":"topic,filename","skip":"0","x":595,"y":1250,"wires":[["9183479e.46fab8"]]},{"id":"9183479e.46fab8","type":"change","z":"9eec8188.e2fcb","name":"","rules":[{"t":"move","p":"payload.filename","pt":"msg","to":"filename","tot":"msg"},{"t":"move","p":"image","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":755,"y":1250,"wires":[["560a60c3.1b056","a7281be4.6c0338","31fc0008.fe4f9"]]},{"id":"ea88efb8.5cc88","type":"debug","z":"9eec8188.e2fcb","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":440,"y":1305,"wires":[]},{"id":"a7281be4.6c0338","type":"debug","z":"9eec8188.e2fcb","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":925,"y":1220,"wires":[]},{"id":"a4d1387f.772c08","type":"ui_group","z":"","name":"Camera Viewer","tab":"3270d8bf.5a65a8","order":2,"disp":true,"width":"13","collapse":false},{"id":"7aae156e.ffd09c","type":"mqtt-broker","z":"","name":"localhost:1883","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willRetain":"false","willPayload":""},{"id":"3270d8bf.5a65a8","type":"ui_tab","z":"","name":"LorexAI Controller","icon":"dashboard","disabled":false,"hidden":false}]type or paste code here