mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 06:39:11 +00:00
Bugfixes. Groupstitel now can show icons, Backbutton in Fullsize-Mode
git-svn-id: https://svn.fhem.de/fhem/trunk@4978 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
424cef3561
commit
7ed2ba7916
@ -1,6 +1,8 @@
|
||||
# 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.
|
||||
- SVN
|
||||
- feature: Dashboard: Groupstitel now can show icons,
|
||||
Backbutton in Fullsize-Mode
|
||||
- deleted: 51_BBB_WATCHDOG.pm - not really needed
|
||||
- bugfix: DbLog: adding ShutdownFunction
|
||||
- feature: YAMAHA_AVR: new attribute "disable" to disable cyclic status
|
||||
|
@ -36,12 +36,18 @@
|
||||
# is stored after tab change
|
||||
# 2.04: change view of readingroups. Attribute dashboard_groups removed. New Attribute dashboard_webfrontendfilter to define
|
||||
# separate Dashboards per FHEMWEB Instance.
|
||||
# 2.05: bugfix, changes in dashboard.js, groups can show Icons (group:icon@color,group:icon@color ...). "Back"-Button in Fullsize-Mode.
|
||||
# Dashboard near top in Fullsize-Mode. dashboard_activetab store the active Tab, not the last active tab.
|
||||
#
|
||||
# Known Bugs/Todos:
|
||||
# BUG: Nicht alle Inhalte aller Tabs laden, bei Plots dauert die bedienung des Dashboards zu lange. -> elemente hidden?
|
||||
# x TODO: Dashboard Config diverenzieren je auflösung
|
||||
# x TODO: Darstellung von z.B. readingGroups
|
||||
# xTODO: dashboard_activetab wieder zur ursprungsfunktion
|
||||
# BUG: Variabler abstand wird nicht gesichert
|
||||
# TODO: personalisiertes CSS angeben und bestehende CSS zu überschreiben -> User-config
|
||||
# BUG: dashboard_webfrontendfilter doesn't Work Antwort #469
|
||||
# TODO: More Tabs
|
||||
# TODO: sortby
|
||||
# TODO: sort by alias, eg sort by device name
|
||||
# Log 1, "[DASHBOARD simple debug] '".$g."' ";
|
||||
########################################################################################
|
||||
#
|
||||
@ -79,6 +85,7 @@ use vars qw(%defs); # FHEM device/button definitions
|
||||
use vars qw($FW_wname); # Web instance
|
||||
use vars qw(%FW_hiddenroom);# hash of hidden rooms, used by weblink
|
||||
use vars qw(%FW_types); # device types
|
||||
use vars qw($FW_ss); # is smallscreen, needed by 97_GROUP/95_VIEW
|
||||
|
||||
# --------------------------- Global Variable -----------------------------------------------
|
||||
my %group;
|
||||
@ -86,7 +93,7 @@ my $fwjquery = "jquery.min.js";
|
||||
my $fwjqueryui = "jquery-ui.min.js";
|
||||
my $dashboardname = "Dashboard"; # Link Text
|
||||
my $dashboardhiddenroom = "DashboardRoom"; # Hiddenroom
|
||||
my $dashboardversion = "2.04";
|
||||
my $dashboardversion = "2.05";
|
||||
# -------------------------------------------------------------------------------------------
|
||||
|
||||
sub Dashboard_Initialize ($) {
|
||||
@ -253,8 +260,6 @@ sub DashboardAsHtml($)
|
||||
if ($activetab > $tabcount) { $activetab = $tabcount; }
|
||||
|
||||
$colwidth =~ tr/,/:/;
|
||||
#if ($colwidth =~/[a-zA-Z]+$/) { Log 1, "[DASHBOARD simple debug] Nicht nur zahlen ".$colwidth; } #future release
|
||||
|
||||
if (not ($colheight =~ /^\d+$/)) { $colheight = 400 };
|
||||
if (not ($rowtopheight =~ /^\d+$/)) { $rowtopheight = 50 };
|
||||
if (not ($rowbottomheight =~ /^\d+$/)) { $rowbottomheight = 50 };
|
||||
@ -281,8 +286,9 @@ sub DashboardAsHtml($)
|
||||
if ($showtabs eq "tabs-and-buttonbar-at-the-top" || $showtabs eq "tabs-at-the-top-buttonbar-hidden") { $tabshow = "top";}
|
||||
if ($showtabs eq "tabs-and-buttonbar-on-the-bottom" || $showtabs eq "tabs-on-the-bottom-buttonbar-hidden") { $tabshow = "bottom";}
|
||||
|
||||
$ret .= " <ul id=\"dashboard_tabnav\" class=\"dashboard_tabnav dashboard_tabnav_".$tabshow."\">\n";
|
||||
if ($showtabs ne "tabs-at-the-top-buttonbar-hidden" && $showtabs ne "tabs-on-the-bottom-buttonbar-hidden" && $showtabs ne "tabs-and-buttonbar-hidden") { $ret .= BuildButtonBar($d,$showtabs); }
|
||||
$ret .= " <ul id=\"dashboard_tabnav\" class=\"dashboard_tabnav dashboard_tabnav_".$tabshow."\">\n";
|
||||
if ($showtabs ne "tabs-at-the-top-buttonbar-hidden" && $showtabs ne "tabs-on-the-bottom-buttonbar-hidden" && $showtabs ne "tabs-and-buttonbar-hidden") { $ret .= BuildButtonBar($d,$showtabs,$showfullsize); }
|
||||
|
||||
for (my $i=0;$i<$tabcount;$i++){
|
||||
$tabicon = "";
|
||||
if ($tabicons[$i] ne "") { $tabicon = FW_makeImage($tabicons[$i],$tabicons[$i],"dashboard_tabicon") . " "; }
|
||||
@ -294,12 +300,13 @@ sub DashboardAsHtml($)
|
||||
for (my $t=0;$t<$tabcount;$t++){
|
||||
my @tabgroup = split(",", $tabgroups[$t]); #Set temp. position for groups without an stored position
|
||||
for (my $i=0;$i<@tabgroup;$i++){
|
||||
if (index($tabsortings[$t],trim($tabgroup[$i])) < 0) { $tabsortings[$t] = $tabsortings[$t]."t".$t."c".GetMaxColumnId($row,$colcount).",".trim($tabgroup[$i]).",true,0,0:"; }
|
||||
my @stabgroup = split(":", trim($tabgroup[$i]));
|
||||
if (index($tabsortings[$t],trim($stabgroup[$i])) < 0) { $tabsortings[$t] = $tabsortings[$t]."t".$t."c".GetMaxColumnId($row,$colcount).",".trim($stabgroup[$i]).",true,0,0:"; }
|
||||
}
|
||||
%group = BuildGroupList($tabgroups[$t]);
|
||||
$ret .= " <div id=\"dashboard_tab".$t."\" data-tabwidgets=\"".$tabsortings[$t]."\" class=\"dashboard_tabpanel\">\n";
|
||||
$ret .= " <ul class=\"dashboard_tabcontent\">\n";
|
||||
$ret .= " <table class=\"dashboard_tabcontent\">\n"; # dashboard\">";
|
||||
$ret .= " <table class=\"dashboard_tabcontent\">\n";
|
||||
##################### Top Row (only one Column) #############################################
|
||||
if ($row eq "top-center-bottom" || $row eq "top-center" || $row eq "top"){ $ret .= BuildDashboardTopRow($t,$id,$tabgroups[$t],$tabsortings[$t]); }
|
||||
##################### Center Row (max. 5 Column) ############################################
|
||||
@ -359,36 +366,57 @@ sub BuildDashboardBottomRow($$$$){
|
||||
return $ret;
|
||||
}
|
||||
|
||||
sub BuildButtonBar($$){
|
||||
my ($d,$pos) = @_;
|
||||
sub BuildButtonBar($$$){
|
||||
my ($d,$pos,$fullsize) = @_;
|
||||
my $ret = "";
|
||||
my $cssclass = "hidden";
|
||||
|
||||
if ($pos eq "tabs-and-buttonbar-at-the-top") { $cssclass = "top"; }
|
||||
if ($pos eq "tabs-and-buttonbar-on-the-bottom") { $cssclass = "bottom"; }
|
||||
|
||||
if ($fullsize eq "1" && $pos ne "hidden" ) {
|
||||
$ret .= "<div class=\"dashboard_buttonbar dashboard_buttonbar_".$cssclass."\">\n";
|
||||
$ret .= " <div class=\"dashboard_button\"> <a id=\"dashboard_button_back\" href=\"/\" title=\"Back\"><span class=\"dashboard_button_icon dashboard_button_iconback\"></span></a> </div>\n";
|
||||
$ret .= "</div>\n";
|
||||
}
|
||||
|
||||
if ($pos ne "hidden") {
|
||||
$ret .= "<div class=\"dashboard_buttonbar dashboard_buttonbar_".$cssclass."\">\n";
|
||||
$ret .= " <div class=\"dashboard_button\"> <span class=\"dashboard_button_icon dashboard_button_iconset\"></span> <a id=\"dashboard_button_set\" href=\"javascript:dashboard_setposition()\" title=\"Set the Position\">Set</a> </div>\n";
|
||||
$ret .= " <div class=\"dashboard_button\"> <a id=\"dashboard_button_set\" href=\"javascript:dashboard_setposition()\" title=\"Set the Position\"><span class=\"dashboard_button_icon dashboard_button_iconset\"></span>Set</a> </div>\n";
|
||||
$ret .= " <div class=\"dashboard_button\"> <a id=\"dashboard_button_lock\" href=\"javascript:dashboard_tooglelock()\" title=\"Lock Dashboard\">Lock</a> </div>\n";
|
||||
$ret .= " <div class=\"dashboard_button\"> <span class=\"dashboard_button_icon dashboard_button_icondetail\"></span> <a id=\"dashboard_button_detail\" href=\"/fhem?detail=$d\" title=\"Dashboard Details\">Detail</a> </div>\n";
|
||||
$ret .= " <div class=\"dashboard_button\"> <a id=\"dashboard_button_detail\" href=\"/fhem?detail=$d\" title=\"Dashboard Details\"><span class=\"dashboard_button_icon dashboard_button_icondetail\"></span>Detail</a> </div>\n";
|
||||
$ret .= "</div>\n";
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
sub BuildGroupWidgets($$$$$) {
|
||||
my ($tab,$column,$id,$dbgroups, $dbsorting) = @_;
|
||||
my $ret = "";
|
||||
|
||||
|
||||
my $counter = 0;
|
||||
my @storedsorting = split(":", $dbsorting);
|
||||
|
||||
my @dbgroup = split(",", $dbgroups);
|
||||
my $widgetheader = "";
|
||||
|
||||
foreach my $singlesorting (@storedsorting) {
|
||||
my @groupdata = split(",", $singlesorting);
|
||||
if (index($dbsorting, "t".$tab."c".$column.",".$groupdata[1]) >= 0 && index($dbgroups, $groupdata[1]) >= 0 && $groupdata[1] ne "" ) { #gruppe auch für tab hinterlegt
|
||||
|
||||
if (index($dbsorting, "t".$tab."c".$column.",".$groupdata[1]) >= 0 && index($dbgroups, $groupdata[1]) >= 0 && $groupdata[1] ne "" ) { #group is set to tab
|
||||
|
||||
$widgetheader = $groupdata[1];
|
||||
foreach my $strdbgroup (@dbgroup) {
|
||||
my @groupicon = split(":", trim($strdbgroup));
|
||||
if ($groupicon[0] eq $groupdata[1]) {
|
||||
if ($#groupicon > 0) { $widgetheader = FW_makeImage($groupicon[1],$groupicon[1],"dashboard_tabicon") . " ".$groupdata[1]; }
|
||||
}
|
||||
}
|
||||
|
||||
$ret .= " <div class=\"dashboard_widget\" data-groupwidget=\"".$singlesorting."\" id=\"".$id."t".$tab."c".$column."w".$counter."\">\n";
|
||||
$ret .= " <div class=\"dashboard_widgetinner\">\n";
|
||||
$ret .= " <div class=\"dashboard_widgetheader\">".$groupdata[1]."</div>\n";
|
||||
$ret .= " <div class=\"dashboard_widgetheader\">".$widgetheader."</div>\n";
|
||||
$ret .= " <div data-userheight=\"\" class=\"dashboard_content\">\n";
|
||||
$ret .= BuildGroup($groupdata[1]);
|
||||
$ret .= " </div>\n";
|
||||
@ -396,21 +424,21 @@ sub BuildGroupWidgets($$$$$) {
|
||||
$ret .= " </div>\n";
|
||||
$counter++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
sub BuildGroupList($) {
|
||||
my @dashboardgroups = split(",", $_[0]); #array for all groups to build an widget
|
||||
my %group = ();
|
||||
my $test;
|
||||
|
||||
foreach my $d (sort keys %defs) {
|
||||
foreach my $grp (split(",", AttrVal($d, "group", ""))) {
|
||||
$grp = trim($grp);
|
||||
foreach my $g (@dashboardgroups){
|
||||
$g = trim($g);
|
||||
$group{$grp}{$d} = 1 if($g eq $grp);
|
||||
my ($gtitle, $iconName) = split(":", trim($g));
|
||||
$group{$grp}{$d} = 1 if($gtitle eq $grp);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -469,10 +497,6 @@ sub BuildGroup($)
|
||||
####if ($helper == 1) {$txtreturn .= "<tr class=\"dashboard_editreadinggroups\"><td><div class=\"devType\"><div class=\"dashboard_button\"><span class=\"dashboard_button_icon dashboard_button_icondetail\"></span>$linkreturn Detail</a></div></div></td></tr>";}
|
||||
$ret .= "<td>$txtreturn</td>";
|
||||
} else { $ret .= "<td informId=\"$d\">$txt</td>"; }
|
||||
|
||||
|
||||
#$ret .= "<td informId=\"$d\">$txt</td>";
|
||||
|
||||
###########################################################
|
||||
|
||||
###### Commands, slider, dropdown
|
||||
@ -872,23 +896,33 @@ sub Dashboard_attr($$$) {
|
||||
</li><br>
|
||||
<a name="dashboard_tab1groups"></a>
|
||||
<li>dashboard_tab1groups<br>
|
||||
Comma-separated list of the names of the groups to be displayed in Tab 1.
|
||||
Comma-separated list of the names of the groups to be displayed in Tab 1.<br>
|
||||
Each group can be given an icon for this purpose the group name, the following must be completed ":<icon>@<color>"<br>
|
||||
Example: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
|
||||
</li><br>
|
||||
<a name="dashboard_tab2groups"></a>
|
||||
<li>dashboard_tab1groups<br>
|
||||
Comma-separated list of the names of the groups to be displayed in Tab 2.
|
||||
Comma-separated list of the names of the groups to be displayed in Tab 2.<br>
|
||||
Each group can be given an icon for this purpose the group name, the following must be completed ":<icon>@<color>"<br>
|
||||
Example: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
|
||||
</li><br>
|
||||
<a name="dashboard_tab3groups"></a>
|
||||
<li>dashboard_tab1groups<br>
|
||||
Comma-separated list of the names of the groups to be displayed in Tab 3.
|
||||
Comma-separated list of the names of the groups to be displayed in Tab 3.<br>
|
||||
Each group can be given an icon for this purpose the group name, the following must be completed ":<icon>@<color>"<br>
|
||||
Example: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
|
||||
</li><br>
|
||||
<a name="dashboard_tab4groups"></a>
|
||||
<li>dashboard_tab1groups<br>
|
||||
Comma-separated list of the names of the groups to be displayed in Tab 4.
|
||||
Comma-separated list of the names of the groups to be displayed in Tab 4.<br>
|
||||
Each group can be given an icon for this purpose the group name, the following must be completed ":<icon>@<color>"<br>
|
||||
Example: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
|
||||
</li><br>
|
||||
<a name="dashboard_tab5groups"></a>
|
||||
<li>dashboard_tab1groups<br>
|
||||
Comma-separated list of the names of the groups to be displayed in Tab 5.
|
||||
Comma-separated list of the names of the groups to be displayed in Tab 5.<br>
|
||||
Each group can be given an icon for this purpose the group name, the following must be completed ":<icon>@<color>"<br>
|
||||
Example: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
|
||||
</li><br>
|
||||
<a name="dashboard_tab1icon"></a>
|
||||
<li>dashboard_tab1icon<br>
|
||||
@ -1112,23 +1146,33 @@ sub Dashboard_attr($$$) {
|
||||
</li><br>
|
||||
<a name="dashboard_tab1groups"></a>
|
||||
<li>dashboard_tab1groups<br>
|
||||
Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 1 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.
|
||||
Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 1 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.<br>
|
||||
Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":<icon>@<farbe>"ergänzt werden<br>
|
||||
Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
|
||||
</li><br>
|
||||
<a name="dashboard_tab2groups"></a>
|
||||
<li>dashboard_tab2groups<br>
|
||||
Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 2 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.
|
||||
Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 2 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.<br>
|
||||
Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":<icon>@<farbe>"ergänzt werden<br>
|
||||
Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
|
||||
</li><br>
|
||||
<a name="dashboard_tab3groups"></a>
|
||||
<li>dashboard_tab3groups<br>
|
||||
Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 3 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.
|
||||
Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 3 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.<br>
|
||||
Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":<icon>@<farbe>"ergänzt werden<br>
|
||||
Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
|
||||
</li><br>
|
||||
<a name="dashboard_tab4groups"></a>
|
||||
<li>dashboard_tab4groups<br>
|
||||
Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 4 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.
|
||||
Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 4 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.<br>
|
||||
Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":<icon>@<farbe>"ergänzt werden<br>
|
||||
Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
|
||||
</li><br>
|
||||
<a name="dashboard_tab5groups"></a>
|
||||
<li>dashboard_tab5groups<br>
|
||||
Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 5 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.
|
||||
Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 5 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.<br>
|
||||
Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":<icon>@<farbe>"ergänzt werden<br>
|
||||
Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow
|
||||
</li><br>
|
||||
<a name="dashboard_tab1icon"></a>
|
||||
<li>dashboard_tab1icon<br>
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 761 B After Width: | Height: | Size: 829 B |
@ -12,6 +12,7 @@
|
||||
// 2.02: Tabs can set on top, bottom or hidden
|
||||
// 2.03: Fix showhelper Bug on lock/unlock. The error that after a trigger action the curren tab is changed to the "old" activetab tab has
|
||||
// been fixed.
|
||||
// 2.04: Dashboard position near Top in showfullsize-mode. Restore ActiveTab funktion
|
||||
//
|
||||
// Known Bugs/Todo's
|
||||
// See 95_Dashboard.pm
|
||||
@ -93,7 +94,7 @@ function restoreOrder() {
|
||||
//-------------------------------- Height of an Group. | Min. Height if need ---------------------------
|
||||
if (height == 0) { height = $(this).outerHeight();}
|
||||
if ($(this).outerHeight() > height) {$(this).outerHeight(height); } //set heigh only if > group min. height
|
||||
//---------------------------------------------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------------------------------------------
|
||||
|
||||
$(this).find(".dashboard_content").data("userheight", height-5);
|
||||
if (params[2] == 1) { $(this).addClass("dashboard_widgethelper"); } else { $(this).removeClass("dashboard_widgethelper"); }//Show Widget-Helper Frame
|
||||
@ -105,8 +106,9 @@ function restoreOrder() {
|
||||
.addClass( "dashboard_button_iconplus" );
|
||||
}
|
||||
$(this).find(".dashboard_content").hide();
|
||||
$(this).height($(this).find(".dashboard_widgetinner").height()+5);
|
||||
}
|
||||
$(this).height($(this).find(".dashboard_widgetinner").height()+5);
|
||||
$(this).find(".dashboard_widgetheader").addClass("dashboard_widgetmin");
|
||||
} else {$(this).find(".dashboard_widgetheader").addClass("dashboard_widgetmax"); }
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -189,10 +191,10 @@ function dashboard_setposition(){
|
||||
document.getElementById("dashboard_button_set").classList.remove('dashboard_button_changed');
|
||||
//---------------------------------------------------------------------
|
||||
//--------------------- store active Tab ------------------------------
|
||||
//var activeTab = ($( "#tabs" ).tabs( "option", "active" ))+1;
|
||||
//if (params[11] != activeTab){
|
||||
// FW_cmd(document.location.pathname+'?XHR=1&cmd.'+params[0]+'=attr '+params[0]+' dashboard_activetab '+activeTab);
|
||||
// }
|
||||
var activeTab = ($( "#tabs" ).tabs( "option", "active" ))+1;
|
||||
if (params[11] != activeTab){
|
||||
FW_cmd(document.location.pathname+'?XHR=1&cmd.'+params[0]+'=attr '+params[0]+' dashboard_activetab '+activeTab);
|
||||
}
|
||||
//---------------------------------------------------------------------
|
||||
}
|
||||
|
||||
@ -233,6 +235,8 @@ $(document).ready( function () {
|
||||
if (params[13] == 1){ //disable roomlist and header
|
||||
$("#menuScrollArea").remove();
|
||||
$("#hdr").remove();
|
||||
$(".roomoverview:first").remove();
|
||||
$("br:first").remove();
|
||||
$("#content").css({position: 'inherit'});
|
||||
}
|
||||
|
||||
@ -255,12 +259,17 @@ $(document).ready( function () {
|
||||
.prepend('<span class="dashboard_button_icon dashboard_button_iconminus"></span>')
|
||||
.end();
|
||||
|
||||
$(".dashboard_widgetheader .dashboard_button_icon").click(function(event) {
|
||||
$(".dashboard_widgetheader .dashboard_button_icon").click(function(event) {
|
||||
if ($(this).hasClass("dashboard_button_iconplus")) {
|
||||
$(this).removeClass( "dashboard_button_iconplus" );
|
||||
$(this).addClass( "dashboard_button_iconminus" );
|
||||
$(this).parents(".dashboard_widget:first").find(".dashboard_content").show();
|
||||
var newHeigth = $(this).parents(".dashboard_widget:first").find(".dashboard_content").data("userheight");
|
||||
var newHeigth = $(this).parents(".dashboard_widget:first").find(".dashboard_content").data("userheight");
|
||||
|
||||
$(this).parent().removeClass("dashboard_widgetmin");
|
||||
$(this).parent().addClass("dashboard_widgetmax");
|
||||
|
||||
|
||||
//-------- set heigh only if > group min. height -------------
|
||||
if ($(this).parents(".dashboard_widgetinner").outerHeight() > newHeigth) {
|
||||
$(this).parents(".dashboard_widget:first").outerHeight($(this).parents(".dashboard_widgetinner").outerHeight()+10);
|
||||
@ -274,6 +283,9 @@ $(document).ready( function () {
|
||||
$(this).parents(".dashboard_widget:first").find(".dashboard_content").hide();
|
||||
var newHeigth = $(this).parents(".dashboard_widget:first").find(".dashboard_widgetinner").height()+5;
|
||||
$(this).parents(".dashboard_widget:first").height(newHeigth);
|
||||
|
||||
$(this).parent().removeClass("dashboard_widgetmax");
|
||||
$(this).parent().addClass("dashboard_widgetmin");
|
||||
}
|
||||
saveOrder();
|
||||
event.stopImmediatePropagation();
|
||||
@ -290,10 +302,10 @@ $(document).ready( function () {
|
||||
activate: function (event, ui) {
|
||||
restoreOrder();
|
||||
|
||||
var activeTab = ($( "#tabs" ).tabs( "option", "active" ))+1;
|
||||
if (params[11] != activeTab){
|
||||
FW_cmd(document.location.pathname+'?XHR=1&cmd.'+params[0]+'=attr '+params[0]+' dashboard_activetab '+activeTab);
|
||||
}
|
||||
//var activeTab = ($( "#tabs" ).tabs( "option", "active" ))+1;
|
||||
//if (params[11] != activeTab){
|
||||
// FW_cmd(document.location.pathname+'?XHR=1&cmd.'+params[0]+'=attr '+params[0]+' dashboard_activetab '+activeTab);
|
||||
// }
|
||||
}
|
||||
});
|
||||
if ($("#dashboard_tabnav").hasClass("dashboard_tabnav_bottom")) { $(".dashboard_tabnav").appendTo(".dashboard_tabs"); } //set Tabs on the Bottom
|
||||
|
@ -13,10 +13,13 @@
|
||||
.dashboard_widget { border-radius: 8px; float: left; padding: 0.2em;}
|
||||
.dashboard_widgethelper { background-color: #111111; }
|
||||
.dashboard_widgetheader { background: none repeat scroll 0 0 #333333; border: 1px solid #FFFFFF;
|
||||
box-shadow: 5px 5px 5px #000000; border-radius: 8px; margin: 0.2em;
|
||||
box-shadow: 5px 5px 5px #000000; border-radius: 8px 8px 8px 8px; margin: 0.2em;
|
||||
padding-bottom: 4px; padding-top: 3px; padding-left: 0.7em; }
|
||||
.dashboard_content { padding: 0.2em; }
|
||||
|
||||
.dashboard_content.table { box-shadow: none !important; border-radius: 0 0 8px 8px !important; border: 1px none #FFFFFF!important;
|
||||
border-left: 1px solid #FFFFFF !important; border-right: 1px solid #FFFFFF !important; border-bottom: 1px solid #FFFFFF !important;}
|
||||
|
||||
.dashboard_button_icon { width: 13px; height: 14px; background-repeat: no-repeat;
|
||||
float: left; background-image: url(../images/default/dashboardicons.png); }
|
||||
.dashboard_button_iconplus { margin: 0.1em 0.4em; float: right; background-position: -65px 0px; }
|
||||
@ -25,6 +28,7 @@
|
||||
.dashboard_button_iconlock { background-position: 0px 0px; }
|
||||
.dashboard_button_iconunlock { background-position: -13px 0px; }
|
||||
.dashboard_button_icondetail { background-position: -39px 0px; }
|
||||
.dashboard_button_iconback { margin: 0.1em 0.4em; float: right; background-position: -91px 0px; }
|
||||
|
||||
.ui-resizable { position: relative; }
|
||||
.ui-resizable-handle { position: absolute; font-size: 0.1px; }
|
||||
@ -48,7 +52,7 @@
|
||||
.dashboard_tab_bottom { border: 1px solid #cccccc; border-top-width: 0; border-bottom-left-radius: 8px;
|
||||
border-bottom-right-radius: 8px; margin: 0 .5em -1px 0; float: left; padding: .5em 1em; }
|
||||
.dashboard_tab_bottom.ui-tabs-active { background-color: #333333; font-weight: bold; }
|
||||
.dashboard_tabicon {width: 16px; height: 16px; vertical-align: top; margin-left: -0.5em; }
|
||||
.dashboard_tabicon {width: 16px; height: 16px; vertical-align: top; margin-left: -0.5em; margin-top: 0.1em; }
|
||||
.dashboard_tabcontent { width: 100%; padding: 0; margin: 0; }
|
||||
|
||||
.dashboard_row { width: 100%; height: inherit; }
|
||||
@ -58,3 +62,4 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -21,18 +21,19 @@ a,li { outline: none; }
|
||||
|
||||
.dashboard_button_icon { width: 13px; height: 14px; background-repeat: no-repeat;
|
||||
float: left; background-image: url(../images/default/dashboardicons.png); }
|
||||
.dashboard_button_iconplus { margin: 0.1em 0.4em; float: right; background-position: -154px 0px; }
|
||||
.dashboard_button_iconminus { margin: 0.1em 0.4em; float: right; background-position: -140px 0px; }
|
||||
.dashboard_button_iconset { background-position: -116px 0px; }
|
||||
.dashboard_button_iconlock { background-position: -103px 0px; }
|
||||
.dashboard_button_iconunlock { background-position: -91px 0px; }
|
||||
.dashboard_button_icondetail { background-position: -128px 0px; }
|
||||
.dashboard_button_iconplus { margin: 0.1em 0.4em; float: right; background-position: -65px -16px; }
|
||||
.dashboard_button_iconminus { margin: 0.1em 0.4em; float: right; background-position: -52px -16px; }
|
||||
.dashboard_button_iconset { background-position: -26px -16px; }
|
||||
.dashboard_button_iconlock { background-position: -0px -16px; }
|
||||
.dashboard_button_iconunlock { background-position: -13px -16px; }
|
||||
.dashboard_button_icondetail { background-position: -39px -16px; }
|
||||
.dashboard_button_iconback { margin: 0.1em 0.4em; float: right; background-position: -91px -16px; }
|
||||
|
||||
.ui-resizable { position: relative; }
|
||||
.ui-resizable-handle { position: absolute; font-size: 0.1px; }
|
||||
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px;
|
||||
bottom: 1px; background-image: url(../images/default/dashboardicons.png);
|
||||
background-position: -170px 0px; background-repeat: no-repeat; }
|
||||
background-position: -78px -16px; background-repeat: no-repeat; }
|
||||
.ui-sortable-placeholder { border: 1px dotted #d9d9d9; visibility: visible !important;
|
||||
height: 25px !important; width: 150px; }
|
||||
|
||||
@ -50,7 +51,7 @@ a,li { outline: none; }
|
||||
.dashboard_tab_bottom a { color:#929292; }
|
||||
.dashboard_tab_bottom.ui-tabs-active { }
|
||||
.dashboard_tab_bottom.ui-tabs-active a { color:#147bff; }
|
||||
.dashboard_tabicon {width: 16px; height: 16px; vertical-align: top; margin-left: -0.5em; }
|
||||
.dashboard_tabicon {width: 16px; height: 16px; vertical-align: top; margin-left: -0.5em; margin-top: 0.1em; }
|
||||
svg.dashboard_tabicon { fill:#929292; }
|
||||
.ui-tabs-active svg { fill:#147bff; }
|
||||
.dashboard_tabcontent { width: 100%; padding: 0; margin: 0; }
|
||||
|
@ -19,18 +19,19 @@
|
||||
|
||||
.dashboard_button_icon { width: 13px; height: 14px; background-repeat: no-repeat;
|
||||
float: left; background-image: url(../images/default/dashboardicons.png); }
|
||||
.dashboard_button_iconplus { margin: 0.1em 0.4em; float: right; background-position: -154px 0px; }
|
||||
.dashboard_button_iconminus { margin: 0.1em 0.4em; float: right; background-position: -140px 0px; }
|
||||
.dashboard_button_iconset { background-position: -116px 0px; }
|
||||
.dashboard_button_iconlock { background-position: -103px 0px; }
|
||||
.dashboard_button_iconunlock { background-position: -91px 0px; }
|
||||
.dashboard_button_icondetail { background-position: -128px 0px; }
|
||||
.dashboard_button_iconplus { margin: 0.1em 0.4em; float: right; background-position: -65px -16px; }
|
||||
.dashboard_button_iconminus { margin: 0.1em 0.4em; float: right; background-position: -52px -16px; }
|
||||
.dashboard_button_iconset { background-position: -26px -16px; }
|
||||
.dashboard_button_iconlock { background-position: -0px -16px; }
|
||||
.dashboard_button_iconunlock { background-position: -13px -16px; }
|
||||
.dashboard_button_icondetail { background-position: -39px -16px; }
|
||||
.dashboard_button_iconback { margin: 0.1em 0.4em; float: right; background-position: -91px -16px; }
|
||||
|
||||
.ui-resizable { position: relative; }
|
||||
.ui-resizable-handle { position: absolute; font-size: 0.1px; }
|
||||
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px;
|
||||
bottom: 1px; background-image: url(../images/default/dashboardicons.png);
|
||||
background-position: -170px 0px; background-repeat: no-repeat; }
|
||||
background-position: -78px -16px; background-repeat: no-repeat; }
|
||||
.ui-sortable-placeholder { border: 1px dotted #808080; visibility: visible !important;
|
||||
height: 25px !important; width: 150px; }
|
||||
|
||||
@ -48,7 +49,7 @@
|
||||
.dashboard_tab_bottom { border: 1px solid #cccccc; border-top-width: 0; border-bottom-left-radius: 8px;
|
||||
border-bottom-right-radius: 8px; margin: 0 .5em -1px 0; float: left; padding: .5em 1em; }
|
||||
.dashboard_tab_bottom.ui-tabs-active { background-color: #F0F0D8; font-weight: bold; }
|
||||
.dashboard_tabicon {width: 16px; height: 16px; vertical-align: top; margin-left: -0.5em; }
|
||||
.dashboard_tabicon {width: 16px; height: 16px; vertical-align: top; margin-left: -0.5em; margin-top: 0.1em;}
|
||||
.dashboard_tabcontent { width: 100%; padding: 0; margin: 0; }
|
||||
|
||||
.dashboard_row { width: 100%; height: inherit; }
|
||||
|
Loading…
Reference in New Issue
Block a user