iobroker.vis
Version:
Graphical user interface for iobroker.
90 lines (73 loc) • 3.73 kB
HTML
<style type="text/css">
tr.homematic-servicemessage {
height: 34px;
}
tr.homematic-servicemessage td {
padding-right: 12px;
}
</style>
<script type="text/javascript">getStringtable(function (res) {
// TODO - bind relies on this is already done. Reliable?
localData.homematicStringtable = res;
});
vis.binds.homematic = {
serviceMessages: function (el) {
function appendRow(el, id, name, msg, ts, oper) {
if (oper == 7) {
// Meldung kann bestätigt werden
var button = '<button stlye="display:none;" data-hm-alarm="'+id+'" id="'+el.attr('id')+'_'+id+'">bestätigen</button>';
} else {
var button = "";
}
el.append('<tr class="homematic-servicemessage">' +
'<td class="homematic-servicemessage-device">'+name+'</td>' +
'<td class="homematic-servicemessage-text">'+msg+'</td>' +
'<td class="homematic-servicemessage-ts">'+ts+'</td>' +
'<td class="homematic-servicemessage-button">'+button+'</td></tr>')
.find('#'+el.attr('id')+'_'+id)
.button({
icons: {
primary: "ui-icon-check"
},
text: false
}).click(function () {
//alert("receipt "+jQuery(this).attr('data-hm-alarm'));
servConn.alarmReceipt(parseInt(jQuery(this).attr('data-hm-alarm'), 10));
jQuery(this).parent().parent().remove();
}).show();
}
function buildServiceMessageTable() {
var $this = jQuery(el).prev().find("table.homematic-servicemessages");
$this.html("<tbody></tbody>");
var ALDPs = localData.metaIndex.ALDP;
for (var i = 0; i < ALDPs.length; i++) {
if (localData.uiState['_' + ALDPs[i] + '.Value'] == 1) {
var metaAlarm = localData.metaObjects[ALDPs[i]];
var metaTrigger = localData.metaObjects[metaAlarm.AlTriggerDP];
var metaDevice = localData.metaObjects[localData.metaObjects[metaTrigger.Parent].Parent];
var msg = metaAlarm.Name.split(".");
msg = msg[1];
if (localData.homematicStringtable.MAINTENANCE && localData.homematicStringtable.MAINTENANCE[msg] && localData.homematicStringtable.MAINTENANCE[msg].text) {
msg = localData.homematicStringtable.MAINTENANCE[msg].text;
}
appendRow($this, ALDPs[i], metaDevice.Name, msg, localData.uiState['_' + ALDPs[i] + '.Timestamp'], metaAlarm.Operations);
}
}
}
buildServiceMessageTable();
localData.uiState.bind('_41.Value', function (e, newVal, oldVal) {
if (newVal != oldVal) setTimeout(buildServiceMessageTable, 5000);
});
}
};
;
servConn.</script>
<script type="text/ejs" id="tplHmServiceMsgs" class="dashui-tpl" data-dashui-set="homematic" data-dashui-name="homematic - service messages" data-dashui-attrs="">
<div class="dashui-widget <%== this.data.attr('class') %>" style="top:0px; left: 0px; width: 360px; height: 200px;font-family: Verdana,Arial,sans-serif;font-size: 13px;" id="<%= this.data.attr('wid') %>">
<div class="dashui-widget-body">
<table class="homematic-servicemessages" id="msgs_<%= this.data.attr('wid') %>"></table>
</div>
</div>
<div <%= (el) -> vis.binds.homematic.serviceMessages(el) %> />
</script>