98_DOIFtools.pm: add lookup window for probably assiciated devices (internals and readins) in DOIF and DOIFtools detail view

git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@13306 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
Ellert 2017-02-01 23:38:12 +00:00
parent 41bdfed369
commit 2dea1d9c1b
2 changed files with 50 additions and 1 deletions

View File

@ -1,5 +1,7 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it. # Do not insert empty lines here, update check depends on it.
- update: 98_DOIFtools: add lookup window for probably assiciated devices
(internals and readings) in DOIF and DOIFtools detail view
- bugfix: FB_CALLIST: cleanup readings on set command clear - bugfix: FB_CALLIST: cleanup readings on set command clear
- update: 88_HMCCU.pm: version 3.9.001 with minor changes - update: 88_HMCCU.pm: version 3.9.001 with minor changes
- update: 98_DOIFtools: add attribute to move event monitor directly above - update: 98_DOIFtools: add attribute to move event monitor directly above

View File

@ -113,7 +113,51 @@ my $DOIFtoolsJSfuncEM = <<'EOF';
ins.addEventListener ('select', doiftoolsCopyToClipboard, false); ins.addEventListener ('select', doiftoolsCopyToClipboard, false);
</script> </script>
EOF EOF
my $DOIFtoolsJSfuncStart = <<'EOF';
<script type="text/javascript">
//functions
function doiftoolsRemoveLookUp () {
$('#addLookUp').dialog( "close" );
}
function doiftoolsAddLookUp () {
var tn = $(this).text();
var target = this;
var txt = "Internals<table class='block wide internals' style='font-size:12px'>";
FW_cmd(FW_root+"?cmd=jsonlist2 "+tn+"&XHR=1", function(data){
var devList = JSON.parse(data);
var dev = devList.Results[0];
var row = 0;
for (item in dev.Internals) {
var cla = ((row++&1)?"odd":"even");
txt += "<tr class='"+cla+"'><td>"+item+"</td><td>"+dev.Internals[item].replace(/\n/g,"<br>")+"</td></tr>\n";
}
txt += "</table>Readings<table class='block wide readings' style='font-size:12px'><br>";
row = 0;
for (item in dev.Readings) {
var cla = ((row++&1)?"odd":"even");
txt += "<tr class='"+cla+"'><td>"+item+"</td><td>"+dev.Readings[item].Value+"</td><td>"+dev.Readings[item].Time+"</td></tr>\n";
}
txt += "</table>";
$('#addLookUp').html(txt);
$('#addLookUp').dialog("open");
});
}
$(document).ready(function(){
$('body').append('<div id="addLookUp" style="display:none"></div>');
$('#addLookUp').dialog({
width:"60%",
modal: false,
position: { at: "right"},
collusion: "fit fit"
});
$('#addLookUp').dialog( "close" );
$(".assoc").find("a:even").each(function() {
$(this).on("mouseover",doiftoolsAddLookUp);
$(this).on("mouseleave",doiftoolsRemoveLookUp);
});
});
</script>
EOF
######################### #########################
sub DOIFtools_Initialize($) sub DOIFtools_Initialize($)
@ -140,6 +184,7 @@ sub DOIFtools_eM($$$$) {
my ($FW_wname, $d, $room, $pageHash) = @_; # pageHash is set for summaryFn. my ($FW_wname, $d, $room, $pageHash) = @_; # pageHash is set for summaryFn.
my @dtn = devspec2array("TYPE=DOIFtools"); my @dtn = devspec2array("TYPE=DOIFtools");
my $ret = ""; my $ret = "";
$ret .= $DOIFtoolsJSfuncStart;
# Event Monitor # Event Monitor
my $a0 = ReadingsVal($d,".eM", "off") eq "on" ? "off" : "on"; my $a0 = ReadingsVal($d,".eM", "off") eq "on" ? "off" : "on";
$ret .= "<div class=\"dval\"><br><span title=\"toggle to switch event monitor on/off\">Event monitor: <a href=\"/fhem?detail=$d&amp;cmd.$d=setreading $d .eM $a0\">toggle</a>&nbsp;&nbsp;</span>"; $ret .= "<div class=\"dval\"><br><span title=\"toggle to switch event monitor on/off\">Event monitor: <a href=\"/fhem?detail=$d&amp;cmd.$d=setreading $d .eM $a0\">toggle</a>&nbsp;&nbsp;</span>";
@ -214,6 +259,8 @@ sub DOIFtools_logWrapper($) {
sub DOIFtools_fhemwebFn($$$$) { sub DOIFtools_fhemwebFn($$$$) {
my ($FW_wname, $d, $room, $pageHash) = @_; # pageHash is set for summaryFn. my ($FW_wname, $d, $room, $pageHash) = @_; # pageHash is set for summaryFn.
my $ret = ""; my $ret = "";
# $ret .= "<script type=\"text/javascript\" src=\"$FW_ME/pgm2/myfunction.js\"></script>";
$ret .= $DOIFtoolsJSfuncStart;
# Logfile Liste # Logfile Liste
if($FW_ss && $pageHash) { if($FW_ss && $pageHash) {
$ret.= "<div id=\"$d\" align=\"center\" class=\"FileLog col2\">". $ret.= "<div id=\"$d\" align=\"center\" class=\"FileLog col2\">".