From 950a8b280675b8ad4aca0e70fb1a728baba99b2e Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Mon, 23 Jan 2017 13:55:25 +0000 Subject: [PATCH] console.js: addRegexpPart button git-svn-id: https://svn.fhem.de/fhem/trunk@13207 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/91_notify.pm | 7 +++- fhem/www/pgm2/console.js | 85 +++++++++++++++++++++++++++++++++++----- 2 files changed, 81 insertions(+), 11 deletions(-) diff --git a/fhem/FHEM/91_notify.pm b/fhem/FHEM/91_notify.pm index 77871f12b..d29bd8d57 100755 --- a/fhem/FHEM/91_notify.pm +++ b/fhem/FHEM/91_notify.pm @@ -155,8 +155,11 @@ notify_Set($@) my %sets = (addRegexpPart=>2, removeRegexpPart=>1, inactive=>0, active=>0); my $cmd = $a[1]; - return "Unknown argument $cmd, choose one of " # No dropdown in FHEMWEB - if(!defined($sets{$cmd})); + if(!defined($sets{$cmd})) { + my $ret ="Unknown argument $cmd, choose one of ".join(" ", sort keys %sets); + $ret =~ s/active/active:noArg/g; + return $ret; + } return "$cmd needs $sets{$cmd} parameter(s)" if(@a-$sets{$cmd} != 2); if($cmd eq "addRegexpPart") { diff --git a/fhem/www/pgm2/console.js b/fhem/www/pgm2/console.js index 4b9a454e2..7caaf9db2 100644 --- a/fhem/www/pgm2/console.js +++ b/fhem/www/pgm2/console.js @@ -155,19 +155,86 @@ consStart() $("#console").scroll(function() { // autoscroll check - if($("#console")[0].scrollHeight - $("#console").scrollTop() <= - $("#console").outerHeight() + 2) { - if(!mustScroll) { - mustScroll = 1; - log("Console autoscroll restarted"); - } - } else { + if($("#console")[0].scrollHeight - $("#console").scrollTop() <= + $("#console").outerHeight() + 2) { + if(!mustScroll) { + mustScroll = 1; + log("Console autoscroll restarted"); + } + } else { if(mustScroll) { mustScroll = 0; log("Console autoscroll stopped"); } - } - }); + } + }); + consAddRegexpPart(); } +function +consAddRegexpPart() +{ + $("").insertAfter("button#eventReset"); + + $("button#addRegexpPart").click(function(){ + // get selection, build regexp from event + var txt = window.getSelection().toString(); + var hlp = "Please highlight exactly one complete event line"; + if(!txt) + return FW_okDialog(hlp); + var re=/^....-..-..\s..:..:..(\....)?\s([^\s]+)\s([^\s]+)\s(.*)([\r\n]*)?$/; + var ret = txt.match(re); + if(!ret) + return FW_okDialog(hlp); + var dev=ret[3], evt=ret[4]; + evt = evt.replace(/\s/g, "."); + re1 = dev+" "+evt; + evt = evt.replace(/\b-?\d*\.?\d+\b/g, '.*').replace(/\.\* \.\*/g, '.*'); + re2 = dev+" "+evt; + + // build dialog + var txt = '\n'; + txt += "
addRegexpPart

"; + txt += "
"+ + ""+ + "

"; + if(re1 != re2) + txt += "
"+ + ""+ + "

"; + txt += "Device to add: "; + txt += ""; + + $('body').append(''); + $('#addReP').dialog( + { modal:true, closeOnEscape:true, + maxWidth:$(window).width()*3/4, maxHeight:$(window).height()*3/4, + close:function(){ $('#addReP').remove(); }, + buttons:[ + { text:"Cancel", click:function(){ $(this).dialog('close'); }}, + { text:"OK", click:function(){ + var dev = $("select#evtDev").val(); + var cmd = "set "+dev+" addRegexpPart "+ + ($('input[name=evtType]:checked').attr("id")=='rdEx' ? re1 : re2); + FW_cmd(FW_root+"?cmd="+cmd+"&XHR=1"); + $(this).dialog('close'); + location = FW_root+'?detail='+dev; + }}] + }); + + FW_cmd(FW_root+"?cmd=jsonlist2&XHR=1", function(data){ + var devList = JSON.parse(data); + for(var i1=0; i1= 0) + $("select#evtDev").append(''); + } + }); + }); +} + window.onload = consStart;