2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-21 01:46:08 +00:00

Bugfix for Codemirror. Dashboard now not visible in room "all" resp. "Everything".

git-svn-id: https://svn.fhem.de/fhem/trunk@5491 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
svenson08 2014-04-08 18:17:17 +00:00
parent c12ff704e1
commit baf02659c1
2 changed files with 157 additions and 169 deletions

View File

@ -1,6 +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.
- SVN - SVN
- bugfix: Dashboard: use "loadScript" for load JavaScripts
- feature: new module 00_NetzerI2C.pm, 51_Netzer.pm added (klausw) - feature: new module 00_NetzerI2C.pm, 51_Netzer.pm added (klausw)
- feature: new command reload for 57_Calendar.pm forces cleanup - feature: new command reload for 57_Calendar.pm forces cleanup
- changed: small update to the documentation of recurring events in - changed: small update to the documentation of recurring events in

View File

@ -43,11 +43,11 @@
# 2.07: Fix GroupWidget-Error with readingGroups in hiddenroom # 2.07: Fix GroupWidget-Error with readingGroups in hiddenroom
# 2.08: Fix dashboard_webfrontendfilter Error-Message. Internal changes. Attribute dashboard_colwidth and dashboard_sorting removed. # 2.08: Fix dashboard_webfrontendfilter Error-Message. Internal changes. Attribute dashboard_colwidth and dashboard_sorting removed.
# 2.09: dashboard_showfullsize not applied in room "all" resp. "Everything". First small implementation over Dashboard_DetailFN. # 2.09: dashboard_showfullsize not applied in room "all" resp. "Everything". First small implementation over Dashboard_DetailFN.
# 2.10: Internal Changes. Dashboard now not visible in room "all" resp. "Everything". Bugfix for Codemirror.
# #
# Known Bugs/Todos: # Known Bugs/Todos:
# BUG: Nicht alle Inhalte aller Tabs laden, bei Plots dauert die bedienung des Dashboards zu lange. -> elemente hidden? # BUG: Nicht alle Inhalte aller Tabs laden, bei Plots dauert die bedienung des Dashboards zu lange. -> elemente hidden?
# BUG: Variabler abstand wird nicht gesichert # BUG: Variabler abstand wird nicht gesichert
# BUG: dashboard_webfrontendfilter doesn't Work Antwort #469
# BUG: Überlappen Gruppen andere? # BUG: Überlappen Gruppen andere?
# #
# Log 1, "[DASHBOARD simple debug] '".$g."' "; # Log 1, "[DASHBOARD simple debug] '".$g."' ";
@ -95,7 +95,7 @@ my $fwjquery = "jquery.min.js";
my $fwjqueryui = "jquery-ui.min.js"; my $fwjqueryui = "jquery-ui.min.js";
my $dashboardname = "Dashboard"; # Link Text my $dashboardname = "Dashboard"; # Link Text
my $dashboardhiddenroom = "DashboardRoom"; # Hiddenroom my $dashboardhiddenroom = "DashboardRoom"; # Hiddenroom
my $dashboardversion = "2.09"; my $dashboardversion = "2.10";
# ------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------
############################################################################################# #############################################################################################
@ -105,6 +105,7 @@ sub Dashboard_Initialize ($) {
$hash->{DefFn} = "Dashboard_define"; $hash->{DefFn} = "Dashboard_define";
$hash->{UndefFn} = "Dashboard_undef"; $hash->{UndefFn} = "Dashboard_undef";
$hash->{FW_detailFn} = "Dashboard_DetailFN"; $hash->{FW_detailFn} = "Dashboard_DetailFN";
$hash->{FW_summaryFn} = "Dashboard_SummaryFN";
$hash->{AttrFn} = "Dashboard_attr"; $hash->{AttrFn} = "Dashboard_attr";
$hash->{AttrList} = "disable:0,1 ". $hash->{AttrList} = "disable:0,1 ".
"dashboard_colcount:1,2,3,4,5 ". "dashboard_colcount:1,2,3,4,5 ".
@ -118,21 +119,9 @@ sub Dashboard_Initialize ($) {
#new attribute vers. 2.00 #new attribute vers. 2.00
"dashboard_tabcount:1,2,3,4,5,6,7 ". "dashboard_tabcount:1,2,3,4,5,6,7 ".
"dashboard_activetab:1,2,3,4,5,6,7 ". "dashboard_activetab:1,2,3,4,5,6,7 ".
"dashboard_tab1name ". "dashboard_tab1name dashboard_tab2name dashboard_tab3name dashboard_tab4name dashboard_tab5name ".
"dashboard_tab2name ". "dashboard_tab1groups dashboard_tab2groups dashboard_tab3groups dashboard_tab4groups dashboard_tab5groups ".
"dashboard_tab3name ". "dashboard_tab1sorting dashboard_tab2sorting dashboard_tab3sorting dashboard_tab4sorting dashboard_tab5sorting ".
"dashboard_tab4name ".
"dashboard_tab5name ".
"dashboard_tab1groups ".
"dashboard_tab2groups ".
"dashboard_tab3groups ".
"dashboard_tab4groups ".
"dashboard_tab5groups ".
"dashboard_tab1sorting ".
"dashboard_tab2sorting ".
"dashboard_tab3sorting ".
"dashboard_tab4sorting ".
"dashboard_tab5sorting ".
"dashboard_width ". "dashboard_width ".
"dashboard_rowcenterheight ". "dashboard_rowcenterheight ".
#new attribute vers. 2.01 #new attribute vers. 2.01
@ -141,29 +130,17 @@ sub Dashboard_Initialize ($) {
#new attribute vers. 2.02 #new attribute vers. 2.02
"dashboard_showtabs:tabs-and-buttonbar-at-the-top,tabs-at-the-top-buttonbar-hidden,tabs-and-buttonbar-on-the-bottom,tabs-on-the-bottom-buttonbar-hidden,tabs-and-buttonbar-hidden ". "dashboard_showtabs:tabs-and-buttonbar-at-the-top,tabs-at-the-top-buttonbar-hidden,tabs-and-buttonbar-on-the-bottom,tabs-on-the-bottom-buttonbar-hidden,tabs-and-buttonbar-hidden ".
#new attribute vers. 2.03 #new attribute vers. 2.03
"dashboard_tab1icon ". "dashboard_tab1icon dashboard_tab2icon dashboard_tab3icon dashboard_tab4icon dashboard_tab5icon ".
"dashboard_tab2icon ".
"dashboard_tab3icon ".
"dashboard_tab4icon ".
"dashboard_tab5icon ".
#new attribute vers. 2.04 #new attribute vers. 2.04
"dashboard_webfrontendfilter ". "dashboard_webfrontendfilter ".
#new attribute vers. 2.06 #new attribute vers. 2.06
"dashboard_customcss ". "dashboard_customcss ".
"dashboard_tab6name ". "dashboard_tab6name dashboard_tab7name ".
"dashboard_tab7name ". "dashboard_tab6groups dashboard_tab7groups ".
"dashboard_tab6groups ". "dashboard_tab6sorting dashboard_tab7sorting ".
"dashboard_tab7groups ". "dashboard_tab6icon dashboard_tab7icon ".
"dashboard_tab6sorting ".
"dashboard_tab7sorting ".
"dashboard_tab6icon ".
"dashboard_tab7icon ".
$readingFnAttributes; $readingFnAttributes;
$data{FWEXT}{jquery}{SCRIPT} = "/pgm2/".$fwjquery if (!$data{FWEXT}{jquery}{SCRIPT});
$data{FWEXT}{jqueryui}{SCRIPT} = "/pgm2/".$fwjqueryui if (!$data{FWEXT}{jqueryui}{SCRIPT});
$data{FWEXT}{z_dashboard}{SCRIPT} = "/pgm2/dashboard.js" if (!$data{FWEXT}{z_dashboard});
$data{FWEXT}{Dashboardx}{LINK} = "?room=".$dashboardhiddenroom; $data{FWEXT}{Dashboardx}{LINK} = "?room=".$dashboardhiddenroom;
$data{FWEXT}{Dashboardx}{NAME} = $dashboardname; $data{FWEXT}{Dashboardx}{NAME} = $dashboardname;
@ -187,12 +164,37 @@ sub Dashboard_DetailFN() {
return $ret; return $ret;
} }
sub Dashboard_define ($$) {
my ($hash, $def) = @_;
readingsSingleUpdate( $hash, "state", "Initialized", 0 );
#CheckInstallation($hash);
CheckDashboardEntry($hash);
return;
}
sub Dashboard_undef ($$) {
my ($hash,$arg) = @_;
RemoveInternalTimer($hash);
return undef;
}
sub Dashboard_attr($$$) {
#my ($cmd, $name, $attrName, $attrVal) = @_;
return;
}
############################################################################################# #############################################################################################
############################################################################################# #############################################################################################
sub DashboardAsHtml($) sub DashboardAsHtml($)
{ {
my ($d) = @_; my ($d) = @_;
Dashboard_SummaryFN($FW_wname,$d,$FW_room,undef);
}
sub Dashboard_SummaryFN($$$$)
{
my ($FW_wname, $d, $room, $pageHash) = @_;
my $ret = ""; my $ret = "";
my $showbuttonbar = "hidden"; my $showbuttonbar = "hidden";
@ -251,15 +253,25 @@ sub DashboardAsHtml($)
AttrVal($defs{$d}{NAME}, "dashboard_tab5icon", ""), AttrVal($defs{$d}{NAME}, "dashboard_tab5icon", ""),
AttrVal($defs{$d}{NAME}, "dashboard_tab6icon", ""), AttrVal($defs{$d}{NAME}, "dashboard_tab6icon", ""),
AttrVal($defs{$d}{NAME}, "dashboard_tab7icon", "")); AttrVal($defs{$d}{NAME}, "dashboard_tab7icon", ""));
#############################################################################################
###################### Build Device View for Room "all" and for Wrong Configurations #################################
$ret .= "<table>";
$ret .= "<tr><td><div class=\"devType\">".$defs{$d}{TYPE}."</div></td></tr>";
$ret .= "<tr><td><table id=\"TYPE_".$defs{$d}{TYPE}."\" class=\"block wide\">";
$ret .= "<tbody><tr>";
$ret .= "<td><div><a href=\"$FW_ME?detail=$d\">$d</a></div></td>";
$ret .= "<td><div>".$defs{$d}{STATE}."</div></td>";
$ret .= "</tr></tbody>";
$ret .= "</table></td></tr>";
$ret .= "</table>";
############################################################################################# #############################################################################################
if ($disable == 1) { if ($disable == 1) {
$defs{$d}{STATE} = "disabled"; readingsSingleUpdate( $defs{$d}, "state", "Disabled", 0 );
return $ret; return $ret;
} }
unless (@tabgroups) { unless (@tabgroups) {
$defs{$d}{STATE} = "No Groups set"; readingsSingleUpdate( $defs{$d}, "state", "No Groups set", 0 );
return $ret; return $ret;
} }
@ -267,15 +279,8 @@ sub DashboardAsHtml($)
if ($webfrontendfilter ne "*") { if ($webfrontendfilter ne "*") {
my $filterhit = 0; my $filterhit = 0;
my @webfilter = split(",", $webfrontendfilter); my @webfilter = split(",", $webfrontendfilter);
for (my $i=0;$i<@webfilter;$i++){ for (my $i=0;$i<@webfilter;$i++){ if (trim($FW_wname) eq trim($webfilter[$i]) ) { $filterhit = 1; } }
if ($filterhit == 0) { return $ret; }
if (trim($FW_wname) eq trim($webfilter[$i]) ) { $filterhit = 1; }
}
if ($filterhit == 0) {
# $ret .= "No Dashboard configured for ".$FW_wname."<br>";
# $ret .= "Set Attribute dashboard_webfrontendfilter, see <a href=\"/fhem?detail=$d\" title=\"".$name."\">Details</a>";
return $ret;
}
} }
################################################################################## ##################################################################################
@ -299,6 +304,15 @@ sub DashboardAsHtml($)
} }
#------------------------------------------------------------------------------------------------- #-------------------------------------------------------------------------------------------------
if ($room && $room ne "all") {
$ret = "";
$ret .= "<script>\n";
$ret .= " loadScript(\"pgm2/$fwjquery\");\n";
$ret .= " loadScript(\"pgm2/$fwjqueryui\");\n";
$ret .= " loadScript(\"pgm2/dashboard.js\");\n";
$ret .= "</script>\n";
$ret .= "<table class=\"roomoverview dashboard\" id=\"dashboard\">\n"; $ret .= "<table class=\"roomoverview dashboard\" id=\"dashboard\">\n";
$ret .= "<tr><td><div class=\"dashboardhidden\">\n"; $ret .= "<tr><td><div class=\"dashboardhidden\">\n";
@ -348,8 +362,10 @@ sub DashboardAsHtml($)
} }
$ret .= "</div></td></tr>\n"; $ret .= "</div></td></tr>\n";
$ret .= "</table>\n"; $ret .= "</table>\n";
}
return $ret; return $ret;
} }
sub BuildDashboardTopRow($$$$){ sub BuildDashboardTopRow($$$$){
@ -578,19 +594,19 @@ sub CheckInstallation($) {
unless (-e $FW_dir."/pgm2/".$fwjquery) { unless (-e $FW_dir."/pgm2/".$fwjquery) {
Log3 $hash, 3, "[".$hash->{NAME}. " V".$dashboardversion."] Missing File ".$FW_dir."/pgm2/".$fwjquery; Log3 $hash, 3, "[".$hash->{NAME}. " V".$dashboardversion."] Missing File ".$FW_dir."/pgm2/".$fwjquery;
$hash->{STATE} = 'Missing File, see LogFile for Details'; readingsSingleUpdate( $hash, "state", "Missing File, see LogFile for Details", 0 );
} }
unless (-e $FW_dir."/pgm2/".$fwjqueryui) { unless (-e $FW_dir."/pgm2/".$fwjqueryui) {
Log3 $hash, 3, "[".$hash->{NAME}. " V".$dashboardversion."] Missing File ".$FW_dir."/pgm2/".$fwjqueryui; Log3 $hash, 3, "[".$hash->{NAME}. " V".$dashboardversion."] Missing File ".$FW_dir."/pgm2/".$fwjqueryui;
$hash->{STATE} = 'Missing File, see LogFile for Details'; readingsSingleUpdate( $hash, "state", "Missing File, see LogFile for Details", 0 );
} }
unless (-e $FW_dir."/pgm2/dashboard.js") { unless (-e $FW_dir."/pgm2/dashboard.js") {
Log3 $hash, 3, "[".$hash->{NAME}. " V".$dashboardversion."] Missing File ".$FW_dir."/pgm2/dashboard.js"; Log3 $hash, 3, "[".$hash->{NAME}. " V".$dashboardversion."] Missing File ".$FW_dir."/pgm2/dashboard.js";
$hash->{STATE} = 'Missing File, see LogFile for Details'; readingsSingleUpdate( $hash, "state", "Missing File, see LogFile for Details", 0 );
} }
unless (-e $FW_icondir."/default/dashboardicons.png") { unless (-e $FW_icondir."/default/dashboardicons.png") {
Log3 $hash, 3, "[".$hash->{NAME}. " V".$dashboardversion."] Missing File ".$FW_icondir."/default/dashboardicons.png"; Log3 $hash, 3, "[".$hash->{NAME}. " V".$dashboardversion."] Missing File ".$FW_icondir."/default/dashboardicons.png";
$hash->{STATE} = 'Missing File, see LogFile for Details'; readingsSingleUpdate( $hash, "state", "Missing File, see LogFile for Details", 0 );
} }
} }
@ -661,36 +677,7 @@ sub CreateDashboardEntry($) {
} }
sub Dashboard_define ($$) {
my ($hash, $def) = @_;
my $name = $hash->{NAME};
$hash->{STATE} = 'Initialized';
CheckInstallation($hash);
CheckDashboardEntry($hash);
return;
}
sub Dashboard_undef ($$) {
my ($hash,$arg) = @_;
RemoveInternalTimer($hash);
return undef;
}
sub Dashboard_detailFn() {
my ($name, $d, $room, $pageHash) = @_;
my $hash = $defs{$name};
return;
}
sub Dashboard_attr($$$) {
my ($cmd, $name, $attrName, $attrVal) = @_;
return;
}
1; 1;