From 298ca27ac66f40beba260d66ab712544dad594c0 Mon Sep 17 00:00:00 2001
From: rudolfkoenig <>
Date: Sat, 17 Jan 2015 07:51:19 +0000
Subject: [PATCH] 95_FLOORPLAN.pm: fhemweb_js update modifications, by
justme1968 (Forum #31293)
git-svn-id: https://svn.fhem.de/fhem/trunk@7594 2b470e98-0d58-463d-a4d8-8e2adae1ed80
---
fhem/FHEM/95_FLOORPLAN.pm | 109 +++++++++++++++++++++++---------------
1 file changed, 66 insertions(+), 43 deletions(-)
diff --git a/fhem/FHEM/95_FLOORPLAN.pm b/fhem/FHEM/95_FLOORPLAN.pm
index 9f3ceea3e..89d1ada96 100644
--- a/fhem/FHEM/95_FLOORPLAN.pm
+++ b/fhem/FHEM/95_FLOORPLAN.pm
@@ -156,7 +156,8 @@ FLOORPLAN_Initialize($)
$hash->{FW_detailFn} = "FP_detailFn"; #floorplan-specific detail-screen
$hash->{AttrList} = "refresh fp_arrange:1,detail,WEB,0 commandfield:1,0 fp_default:1,0 ".
"stylesheet fp_noMenu:1,0 fp_backgroundimg fp_setbutton:1,0 fp_viewport ".
- "fp_roomIcons";
+ "CssFiles JavaScripts ".
+ "fp_roomIcons";
# CGI
my $name = "floorplan";
my $fhem_url = "/" . $name ;
@@ -366,8 +367,8 @@ FP_htmlHeader($) {
$FW_RET = "";
$FW_RET .= ''."\n";
$FW_RET .= ''."\n";
- FW_pO "
";
- FW_pO "".$title."";
+ FW_pO "\n$title";
+ FW_pO ""; # Forum 28666
# Enable WebApp
if($FW_tp || $FW_ss) {
FW_pO "";
@@ -381,29 +382,50 @@ FP_htmlHeader($) {
# refresh-value
my $rf = AttrVal($FW_wname, "refresh", "");
FW_pO "" if($rf); # use refresh-value from Web-Instance
- # stylesheet
+
+ ########################
+ # CSS
+ my $cssTemplate = "";
+ #FW_pO sprintf($cssTemplate, "pgm2/style.css");
+ FW_pO sprintf($cssTemplate, "pgm2/jquery-ui.min.css");
+ map { FW_pO sprintf($cssTemplate, $_); }
+ split(" ", AttrVal($FP_name, "CssFiles", ""));
+
my $defaultcss = AttrVal($FW_wname, "stylesheetPrefix", "") . "floorplanstyle.css";
my $css= AttrVal($FP_name, "stylesheet", $defaultcss);
FW_pO "";
- #set sripts
-# FW_pO ""
-# if($FW_plotmode eq "SVG");
-# FW_pO "";
+
+ ########################
+ # JavaScripts
my $jsTemplate = '';
- FW_pO sprintf($jsTemplate, "$FW_ME/pgm2/svg.js") if($FW_plotmode eq "SVG");
- foreach my $js (@FW_fhemwebjs) {
- FW_pO sprintf($jsTemplate, "$FW_ME/pgm2/$js");
- }
+ FW_pO sprintf($jsTemplate, "$FW_ME/pgm2/jquery.min.js");
+ FW_pO sprintf($jsTemplate, "$FW_ME/pgm2/jquery-ui.min.js");
+
+ #######################
+ # Other JavaScripts + their Attributes
+ map { FW_pO sprintf($jsTemplate, "$FW_ME/pgm2/$_") } @FW_fhemwebjs;
+ $jsTemplate = '';
+ map {
+ my $n = $_; $n =~ s+.*/++; $n =~ s/.js$//; $n =~ s/fhem_//; $n .= "Param";
+ FW_pO sprintf($jsTemplate, AttrVal($FP_name, $n, ""), "$FW_ME/$_");
+ } split(" ", AttrVal($FP_name, "JavaScripts", ""));
+
+ ########################
# FW Extensions
if(defined($data{FWEXT})) {
foreach my $k (sort keys %{$data{FWEXT}}) {
my $h = $data{FWEXT}{$k};
- next if($h !~ m/HASH/ || !$h->{SCRIPT});
- FW_pO "";
+ next if($h !~ m/HASH/ || !$h->{SCRIPT} || $h->{SCRIPT} =~ m+pgm2/jquery+);
+ my $script = $h->{SCRIPT};
+ $script = ($script =~ m,^/,) ? "$FW_ME$script" : "$FW_ME/pgm2/$script";
+ FW_pO sprintf($jsTemplate, $script);
}
}
- FW_pO "\n";
+
+ my $csrf= ($FW_CSRF ? "fwcsrf='$defs{$FW_wname}{CSRFTOKEN}'" : "");
+ my $gen = 'generated="'.(time()-1).'"';
+ my $lp = 'longpoll="'.AttrVal($FW_wname,"longpoll",1).'"';
+ FW_pO "\n";
}
@@ -486,6 +508,7 @@ FP_show(){
FW_pO "