-
Notifications
You must be signed in to change notification settings - Fork 4
/
slider-with-presets.widget.json
58 lines (58 loc) · 2.91 KB
/
slider-with-presets.widget.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
{
"name": "Slider With Presets",
"author": "Jason Jones",
"description": "",
"settings": [
{
"type": "item",
"id": "item",
"label": "openHAB Item"
},
{
"type": "number",
"label": "Min",
"id": "floor",
"default": "0"
},
{
"type": "number",
"id": "ceil",
"label": "Max",
"default": "100"
},
{
"type": "number",
"id": "step",
"label": "Step",
"default": "1"
},
{
"type": "string",
"id": "unit",
"label": "Unit"
},
{
"type": "string",
"id": "presets",
"label": "Comma-separated Presets",
"default": "",
"description": "You can optionally use the syntax 'cmd=label' for each choice. Example: 0=Off,50=50%,100=Full"
},
{
"type": "checkbox",
"id": "unitOnPresets",
"label": "Show Unit On Presets"
},
{
"type": "icon",
"id": "backdrop_icon",
"label": "Backdrop Icon"
},
{
"type": "checkbox",
"id": "backdrop_center",
"label": "Center backdrop horizontally"
}
],
"template": "<style>\n\t.slider-presets-wrap-adjust {\n \tmargin: -10px -10px 0px -10px;\n }\n .slider-presets-preset-table-wrapper {\n \tdisplay: flex;\n }\n .slider-presets-preset-table {\n \twidth: 100%;\n \tz-index: 3;\n }\n .slider-presets-preset-table-cell {\n \tpadding: 5px;\n }\n .slider-presets-preset-table-btn {\n \twidth: 100%;\n }\n</style>\n<widget-icon ng-if=\"config.backdrop_icon\" backdrop=\"true\" iconset=\"config.backdrop_icon_iconset\" icon=\"config.backdrop_icon\" center=\"config.backdrop_center\" state=\"vm.value\"></widget-icon>\n<div ng-class=\"(ngModel.dontwrap) ? '' : 'slider-presets-wrap-adjust'\" ng-init=\"sliderModel = { name: ngModel.name, item: config.item, floor: config.floor, ceil: config.ceil, step: config.step, unit: config.unit }\">\n <widget-slider ng-model=\"sliderModel\"></widget-slider>\n</div>\n<div class=\"slider-presets-preset-table-wrapper\">\n <table class=\"slider-presets-preset-table\" ng-init=\"presets = config.presets.split(',')\">\n <tr>\n <td class=\"slider-presets-preset-table-cell\" ng-style=\"{ width: (100 / presets.length) + '%' }\" ng-repeat=\"preset in presets\" ng-init=\"presetParts = preset.split('=')\">\n <button type=\"button\" class=\"btn btn-default btn-lg slider-presets-preset-table-btn\" ng-click=\"sendCmd(config.item, presetParts[0])\">\n {{(presetParts.length > 1) ? presetParts[1] : presetParts[0]}}<span ng-if=\"((config.unitOnPresets) && (config.unit))\">{{config.unit}}</span>\n </button>\n </td>\n </tr>\n </table>\n</div>"
}