Fixed issue #47 the track-slider will now be green if dimmer device is on

This commit is contained in:
squandor 2017-01-08 17:35:08 +01:00
parent 013c4beea5
commit 5be60c31c6
7 changed files with 49 additions and 17 deletions

View File

@ -152,9 +152,6 @@
} }
.slider-selection { .slider-selection {
position: absolute; position: absolute;
background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
background-image: linear-gradient(to bottom, #f9f9f9 0%, #f5f5f5 100%);
background-repeat: repeat-x; background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0);
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);

View File

@ -6407,3 +6407,14 @@ ul.notifications {
.hide_update { .hide_update {
display: None; display: None;
} }
.slider_on {
background-image: -webkit-linear-gradient(top, #f9f9f9 0%, green 100%);
background-image: -o-linear-gradient(top, #f9f9f9 0%, green 100%);
background-image: linear-gradient(to bottom, #f9f9f9 0%, green 100%);
}
.slider_off {
background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
background-image: linear-gradient(to bottom, #f9f9f9 0%, #f5f5f5 100%);
}

View File

@ -410,8 +410,9 @@
sliderTrackLow.className = "slider-track-low"; sliderTrackLow.className = "slider-track-low";
sliderTrackSelection = document.createElement("div"); sliderTrackSelection = document.createElement("div");
sliderTrackSelection.className = "slider-selection"; //sliderTrackSelection.className = "slider-selection";
sliderTrackSelection.id = this.options.id + "_track";
sliderTrackSelection.className = "slider-selection slider_" + this.options.state
sliderTrackHigh = document.createElement("div"); sliderTrackHigh = document.createElement("div");
sliderTrackHigh.className = "slider-track-high"; sliderTrackHigh.className = "slider-track-high";
@ -766,7 +767,8 @@
scale: 'linear', scale: 'linear',
focus: false, focus: false,
tooltip_position: null, tooltip_position: null,
labelledby: null labelledby: null,
state: 'off'
}, },
getElement: function() { getElement: function() {

View File

@ -21,7 +21,6 @@ function changeSwitch(checkboxElem, idx) {
requestAPI(flask_server + "/api?type=command&param=switchlight&idx=" + idx + "&switchcmd=Off" ); requestAPI(flask_server + "/api?type=command&param=switchlight&idx=" + idx + "&switchcmd=Off" );
} }
} }
// Dimmer functions // Dimmer functions
function changeDimmer(checkboxElem, idx) { function changeDimmer(checkboxElem, idx) {
var chkurl = "/api?type=devices&rid=" + idx; var chkurl = "/api?type=devices&rid=" + idx;
@ -32,8 +31,22 @@ function changeDimmer(checkboxElem, idx) {
} else { } else {
requestAPI(flask_server + "/api?type=command&param=switchlight&idx=" + idx + "&switchcmd=On&level=0"); requestAPI(flask_server + "/api?type=command&param=switchlight&idx=" + idx + "&switchcmd=On&level=0");
} }
setDimmerState(checkboxElem, idx);
}); });
} }
function setDimmerState(id, idx) {
var url = "/api?type=devices&rid=" + idx;
requestAPI(flask_server + url, function(d) {
_json = JSON.parse(d);
if (_json['result'][0]['Data'] != 'Off') {
$('#' + id).css({'background-image': '-webkit-linear-gradient(top, #f9f9f9 0%, green 100%)', 'background-image': '-o-linear-gradient(top, #f9f9f9 0%, green 100%)', 'background-image': 'linear-gradient(to bottom, #f9f9f9 0%, green 100%)'});
} else {
$('#' + id).css({'background-image': '-webkit-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%)', 'background-image': '-o-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%)', 'background-image': 'linear-gradient(to bottom, #f9f9f9 0%, #f5f5f5 100%)'});
}
});
}
// Switch functions // Switch functions
function changePush(idx, action) { function changePush(idx, action) {
if (action == 'on') { if (action == 'on') {
@ -149,9 +162,15 @@ function dimmerSlider(updateDimmers, block) {
url = "/api?type=devices&rid=" + dimmerID; url = "/api?type=devices&rid=" + dimmerID;
requestAPI(url, function(d) { requestAPI(url, function(d) {
var percentage = JSON.parse(d).result[0].Level; var percentage = JSON.parse(d).result[0].Level;
$('#dimmer_' + dimmerID + "_block_" + block).slider({min:0, max:100, value: percentage}).on('slideStop', function(ev) { changeDimmerSlider($(this).attr('id'), ev.value) } ).data('slider'); $('#dimmer_' + dimmerID + "_block_" + block).slider({min:0, max:100, value: percentage}).on('slideStop', function(ev) {
$('#dimmer_' + dimmerID + "_block_" + block).slider().on('slideStop', function(ev) { changeDimmerSlider($(this).attr('id'), ev.value) } ).data('slider'); setDimmerState('dim_' + dimmerID + "_block_" + block + "_track", dimmerID);
}); changeDimmerSlider($(this).attr('id'), ev.value) } ).data('slider');
$('#dimmer_' + dimmerID + "_block_" + block).slider().on('slideStop', function(ev) {
setDimmerState('dim_' + dimmerID + "_block_" + block + "_track", dimmerID);
changeDimmerSlider($(this).attr('id'), ev.value)
} ).data('slider');
setDimmerState('dim_' + dimmerID + "_block_" + block + "_track", dimmerID);
});
}); });
} }

View File

@ -9,7 +9,6 @@
<!-- Domoboard --> <!-- Domoboard -->
<script src="/static/js/custom.js"></script> <script src="/static/js/custom.js"></script>
<!-- bootstrap-slider --> <!-- bootstrap-slider -->
<link href="/static/css/bootstrap-slider.css" rel="stylesheet">
<script type="text/javascript" src="/static/js/bootstrap-slider.js"></script> <script type="text/javascript" src="/static/js/bootstrap-slider.js"></script>
<script type="text/javascript" src="static/js/moment.min.js"></script> <script type="text/javascript" src="static/js/moment.min.js"></script>
{% if configValues["domoboard"].get("time") == "True" %} {% if configValues["domoboard"].get("time") == "True" %}

View File

@ -43,6 +43,7 @@
<!-- Custom styling plus plugins --> <!-- Custom styling plus plugins -->
<script src="/static/js/jquery.nicescroll.min.js"></script> <script src="/static/js/jquery.nicescroll.min.js"></script>
<script src="/static/js/bootstrap-switch.js"></script> <script src="/static/js/bootstrap-switch.js"></script>
<script src="/static/js/bootstrap.min.js"></script> <script src="/static/js/bootstrap.min.js"></script>
<script src="/static/js/colorpicker/bootstrap-colorpicker.min.js"></script> <script src="/static/js/colorpicker/bootstrap-colorpicker.min.js"></script>

View File

@ -1,4 +1,5 @@
<link href="/static/css/bootstrap-switch.css" rel="stylesheet" type="text/css" /> <link href="/static/css/bootstrap-switch.css" rel="stylesheet" type="text/css" />
<link href="/static/css/bootstrap-slider.css" rel="stylesheet">
<link href="/static/css/buttons.css" rel="stylesheet" type="text/css" /> <link href="/static/css/buttons.css" rel="stylesheet" type="text/css" />
<div class="col-md-6 col-sm-6 col-xs-12"> <div class="col-md-6 col-sm-6 col-xs-12">
<div class="x_panel"> <div class="x_panel">
@ -25,7 +26,7 @@
{% if "switch" in v[1] %} {% if "switch" in v[1] %}
<input id="switch_{{v[0]}}_block_{{count}}" type="checkbox" checked data-size="mini"> <input id="switch_{{v[0]}}_block_{{count}}" type="checkbox" checked data-size="mini">
{% elif "dimmer" in v[1] %} {% elif "dimmer" in v[1] %}
<input id="dimmer_{{v[0]}}_block_{{count}}" data-slider-id='dimmer_{{v[0]}}' type="text" test={{ v[1] }} data-slider-min="0" data-slider-max="100" data-slider-step="1" data-slider-value="14" /> <input id="dimmer_{{v[0]}}_block_{{count}}" data-slider-id='dim_{{v[0]}}_block_{{count}}' type="text" test={{ v[1] }} state="on" data-slider-min="0" data-slider-max="100" data-slider-step="1" data-slider-value="14" />
{% elif "pushon" in v[1] %} {% elif "pushon" in v[1] %}
<button id="push_{{v[0]}}_block_{{count}}" class="btn btn-primary btn-circle">&nbsp;<li class="fa fa-power-off" aria-hidden="true"></i>&nbsp;</button> <button id="push_{{v[0]}}_block_{{count}}" class="btn btn-primary btn-circle">&nbsp;<li class="fa fa-power-off" aria-hidden="true"></i>&nbsp;</button>
{% elif "pushoff" in v[1] %} {% elif "pushoff" in v[1] %}
@ -43,7 +44,7 @@
</div> </div>
</div> </div>
{% elif "rgb" in v[1] %} {% elif "rgb" in v[1] %}
&nbsp;<input id="dimmer_{{v[0]}}_block_{{count}}" data-slider-id='dimmer_{{v[0]}}' type="text" data-slider-min="0" data-slider-max="100" data-slider-step="1" data-slider-value="14" /> &nbsp;<input id="dimmer_{{v[0]}}_block_{{count}}" data-slider-id='dim_{{v[0]}}_block_{{count}}' type="text" data-slider-min="0" data-slider-max="100" data-slider-step="1" data-slider-value="14" />
<br><br> <br><br>
<button type="button" class="btn btn-primary btn-xs" data-toggle="modal" data-target="#myModal-{{v[0]}}-block-{{count}}">RGB colors</button> <button type="button" class="btn btn-primary btn-xs" data-toggle="modal" data-target="#myModal-{{v[0]}}-block-{{count}}">RGB colors</button>
<!-- Modal --> <!-- Modal -->
@ -131,10 +132,10 @@ $(document).ready(function() {
{% elif (v[1] == "setpoint") %} {% elif (v[1] == "setpoint") %}
updateSetpoints_block_{{count}}.push("{{v[0]}}"); updateSetpoints_block_{{count}}.push("{{v[0]}}");
{% elif (v[1] == "dimmer" or v[1] == "rgb") %} {% elif (v[1] == "dimmer" or v[1] == "rgb") %}
$('#dim_{{count}}').click(function(e) { $('#dim_{{count}}').click(function(e) {
e.preventDefault(); e.preventDefault();
changeDimmer(this, {{v[0]}}); changeDimmer('dim_{{v[0]}}_block_{{count}}_track', {{v[0]}});
}); });
updateDimmers_block_{{count}}.push("{{v[0]}}"); updateDimmers_block_{{count}}.push("{{v[0]}}");
{% endif %} {% endif %}
{% endfor %} {% endfor %}
@ -144,5 +145,7 @@ $(document).ready(function() {
setInterval(refreshSwitches, 9000, updateSwitches_block_{{count}}, {{count}}); setInterval(refreshSwitches, 9000, updateSwitches_block_{{count}}, {{count}});
setInterval(dimmerSlider, 9000, updateDimmers_block_{{count}}, {{count}}); setInterval(dimmerSlider, 9000, updateDimmers_block_{{count}}, {{count}});
setInterval(refreshSetpoints, 9000, updateSetpoints_block_{{count}}, {{count}}); setInterval(refreshSetpoints, 9000, updateSetpoints_block_{{count}}, {{count}});
}); });
</script> </script>