From 7973e1ec9fcb0357c83b9bc9957286515de58f58 Mon Sep 17 00:00:00 2001 From: risiko79 <> Date: Wed, 23 Dec 2015 20:47:56 +0000 Subject: [PATCH] 98_weekprofile: add log messages + correct widget remove profile git-svn-id: https://svn.fhem.de/fhem/trunk@10249 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_weekprofile.pm | 24 ++++++++++++++++-------- fhem/www/pgm2/fhemweb_weekprofile.js | 16 ++++++++++------ 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/fhem/FHEM/98_weekprofile.pm b/fhem/FHEM/98_weekprofile.pm index 5b4856ff1..64bf95cf5 100644 --- a/fhem/FHEM/98_weekprofile.pm +++ b/fhem/FHEM/98_weekprofile.pm @@ -67,7 +67,9 @@ sub weekprofile_getDeviceType($) # determine device type my $devHash = $main::defs{$device}; - return undef unless (!defined($devHash)); + if (!defined($devHash)){ + return undef; + } my $type = undef; @@ -244,8 +246,14 @@ sub weekprofile_assignDev($) my $prf = undef; if ($hash->{MASTERDEV}->{NAME}) { + + Log3 $me, 5, "$me(assignDev): assign to device $hash->{MASTERDEV}->{NAME}"; + my $type = weekprofile_getDeviceType($hash->{MASTERDEV}->{NAME}); - return if (!defined($type)); + if (!defined($type)) { + Log3 $me, 2, "$me(assignDev): device $hash->{MASTERDEV}->{NAME} not supported or defined"; + return; + } $hash->{MASTERDEV}->{TYPE} = $type; @@ -323,7 +331,7 @@ sub weekprofile_Define($$) return $msg; } - my $me = $a[0]; + my $me = $a[0]; $hash->{MASTERDEV}->{NAME} = undef; $hash->{MASTERDEV}->{NAME} = $a[2] if (@a > 1); @@ -332,11 +340,11 @@ sub weekprofile_Define($$) my @profiles = (); $hash->{PROFILES} = \@profiles; - weekprofile_assignDev($hash); - weekprofile_readProfilesFromFile($hash); - weekprofile_updateReadings($hash); + #$attr{$me}{verbose} = 5; - #$attr{$me}{verbose} = 5; + weekprofile_assignDev($hash); + weekprofile_updateReadings($hash); + return undef; } ############################################## @@ -495,6 +503,7 @@ sub weekprofile_Set($$@) if ($cmd eq 'remove_profile') { return 'usage: remove_profile ' if(@params < 1); return 'Error master profile can not removed' if($params[0] eq "master"); + return 'Error Remove last profile is not allowed' if(scalar(@{$hash->{PROFILES}}) == 1); my $delprf = undef; my $idx = 0; @@ -539,7 +548,6 @@ sub weekprofile_Notify($$) if ($what =~ m/INITIALIZED/) { splice($own->{PROFILES}); - Log3 $me, 5, "$me(Notify): assign to device $own->{MASTERDEV}->{NAME}" if (defined($own->{MASTERDEV}->{NAME})); weekprofile_assignDev($own); weekprofile_readProfilesFromFile($own); weekprofile_updateReadings($own); diff --git a/fhem/www/pgm2/fhemweb_weekprofile.js b/fhem/www/pgm2/fhemweb_weekprofile.js index b93c49674..d715c3ddb 100644 --- a/fhem/www/pgm2/fhemweb_weekprofile.js +++ b/fhem/www/pgm2/fhemweb_weekprofile.js @@ -49,12 +49,11 @@ function weekprofile_DoEditWeek(devName) widget.setValueFn("REUSEPRF"); } -function FW_weekprofilePRFCached(devName,select) +function FW_weekprofilePRFChached(devName,select) { var widget = $('div[informid="'+devName+'"]').get(0) var prfName = select.options[select.selectedIndex].value; - widget.CURPRF = prfName; widget.PROFILE = null; FW_queryValue('get '+devName+' profile_data '+prfName, widget); @@ -77,7 +76,7 @@ function FW_weekprofileCopyPrf(devName,lnk) FW_weekprofileInputDialog("Name:","text",lnk,function(name,ok){ if (!name || name.length <=0) - return; + return; FW_cmd(FW_root+"?cmd=set "+widget.DEVICE+" copy_profile "+widget.CURPRF+" "+name+"&XHR=1",function(arg) {FW_weekprofileSendCallback(widget.DEVICE,arg);}); }); } @@ -88,7 +87,7 @@ function FW_weekprofileRemovePrf(devName,lnk) FW_weekprofileInputDialog("

Delete Profile: '"+widget.CURPRF+"' ?

","hidden",lnk,function(name,ok){ if (ok < 1) - return; + return; FW_cmd(FW_root+"?cmd=set "+widget.DEVICE+" remove_profile "+widget.CURPRF+"&XHR=1",function(arg) {FW_weekprofileSendCallback(widget.DEVICE,arg);}); }); } @@ -103,7 +102,7 @@ function FW_weekprofileShow(widget) if (widget.PROFILENAMES) { html += " " - html += ""; for (var k=0; k < widget.PROFILENAMES.length; k++) { var selected = (widget.CURPRF == widget.PROFILENAMES[k]) ? "selected " : ""; @@ -121,6 +120,11 @@ function FW_weekprofileShow(widget) html += ""; $(widget.MENU.CONTENT).append(html); + + var select = $(widget.MENU.CONTENT).find('select[name="PROFILES"]').get(0); + var prfName = select.options[select.selectedIndex].value; + if (widget.CURPRF != prfName) + FW_weekprofilePRFChached(widget.DEVICE,select); } if (!widget.PROFILE) { @@ -403,7 +407,7 @@ function FW_weekprofileGetValues(devName,what,data) widget.WEEKDAYS = data.split(','); } else if (what == "PROFILENAMES") { widget.PROFILENAMES = data.split(','); - if (widget.MODE != 'EDIT') { + if (widget.MODE != 'EDIT') { widget.setValueFn("REUSEPRF"); } }