Code

Updated list rendering
authorcajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 4 Jan 2010 15:23:50 +0000 (15:23 +0000)
committercajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 4 Jan 2010 15:23:50 +0000 (15:23 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@15011 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-core/html/include/focus.js
gosa-core/html/themes/default/style.css
gosa-core/ihtml/themes/default/headers.tpl
gosa-core/include/class_listing.inc

index 6ade45d20b410747c990c79de7a3296855b52a40..5774946a5f3fb66cb357ee4247cef33b726de09a 100644 (file)
@@ -368,6 +368,9 @@ function adjust_height(e) {
                }
 
                document.getElementById("d_scrollbody").style.height=suggested+"px";
+               if (document.getElementById("t_nscrollbody")) {
+                       document.getElementById("t_nscrollbody").style.height=(suggested-24)+"px";
+                }
        }
        return true;
 }
index 56f3b542bb28e58f9dc00285d92e95bcd6767859..51f1bcb17e4c3740beb6fdbc031d9052f23c011a 100644 (file)
@@ -1859,3 +1859,57 @@ div.datepicker div.datepicker-footer {
         margin:0 0 0 3px;
         cursor:pointer;
 }
+
+/********************************
+ *           L i s t s          *
+ ********************************/
+
+/* List border */
+div.listContainer {
+       border-top: 1px solid #AAA;
+       border-bottom: 1px solid #AAA;
+       border-left: 1px solid #AAA;
+}
+
+.fixedListHeader tr {
+       position: relative;
+       height: auto;
+}
+
+.listHeaderFormat {
+       margin: 3px;
+       padding: 1px;
+       white-space: nowrap;
+}
+
+.listHeaderFormat tr td {
+       border-right: 1px solid #AAA;
+       padding: 2px;
+       background-color: #F5F5F5;
+}
+
+.listScrollContent {
+       height:100px;
+       overflow-x:hidden;
+       overflow-y:auto;
+}
+
+.listScrollContent tr {
+       height: auto;
+       white-space: nowrap;
+}
+
+.listScrollContent tr td:last-child {
+       padding-right: 20px;
+}
+
+.listBodyFormat tr td {
+       color: #000000;
+       margin: 3px;
+       padding: 1px;
+       border-right: 1px solid #AAA;
+       word-wrap:break-word;
+       white-space:normal;
+       overflow: hidden;
+       max-width:500px;
+}
index d6647d341f5a885afb661e36463f4da349c383bb..39ff2960249f37ee27274d7168218e837749b1d4 100644 (file)
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 
   <style type="text/css">@import url('themes/default/style.css');</style>
+  <!--[if IE]>
+  <style type="text/css">
+  div.listContainer { height: 121px; overflow-x:hidden; overflow-y:auto; }
+  </style>
+  <![endif]-->
+
   <link rel="shortcut icon" href="favicon.ico">
 
   <script language="javascript" src="include/events.js" type="text/javascript"></script>
index 137d6b2ae3eab475379153d8b19fca6307988186..f4c2ed9a0b5f337551a41cb96edffb7713b1f2da 100644 (file)
@@ -256,6 +256,7 @@ class listing {
     }
   }
 
+
   function render()
   {
     // Check for exeeded sizelimit
@@ -271,25 +272,25 @@ class listing {
       $height= $this->height;
     }
     
-    $result.= "<div class='contentboxb' id='listing_container' style='border-top:1px solid #B0B0B0;'>\n";
-    $result.= "<table summary='$this->headline' style='width:600px;height:".$height."px;' cellspacing='0' id='t_scrolltable'>
-<tr><td class='scrollhead'><table summary='' style='width:100%;' cellspacing='0' id='t_scrollhead'>\n";
+    $result.= "<table cellpadding='0' cellspacing='0' border='0'><tr><td><div class='listContainer' id='d_scrollbody' style='border-top:1px solid #B0B0B0;width:700px;height:".($height+25)."px;'>\n";
+
+    $result.= "<table summary='$this->headline' style='width:100%; table-layout:fixed;' cellspacing='0' cellpadding='0' id='t_scrolltable'>\n";
     $this->numColumns= count($this->colprops) + ($this->multiSelect?1:0);
 
     // Build list header
-    $result.= "<tr>\n";
+    $result.= "<thead class='fixedListHeader listHeaderFormat'><tr>\n";
     if ($this->multiSelect) {
       $result.= "<td class='listheader' style='width:20px;'><input type='checkbox' id='select_all' name='select_all' title='"._("Select all")."' onClick='toggle_all_(\"listing_selected_[0-9]*$\",\"select_all\");' ></td>\n";
     }
     foreach ($this->header as $header) {
       $result.= $header;
     }
+    $result.= "</tr></thead>\n";
 
-    // Add 13px for scroller
-    $result.= "<td class='listheader' style='width:13px;border-right:0px;'>&nbsp;</td></table></td></tr>\n";
+    // Build list body
+    $result.= "<tbody class='listScrollContent listBodyFormat' id='t_nscrollbody' style='height:".$height."px;'>\n";
 
-    // New table for the real list contents
-    $result.= "<tr><td colspan='$this->numColumns' class='scrollbody'><div style='width:600px;height:".($height-20)."px;' id='d_scrollbody' class='scrollbody'><table summary='' style='height:100%;width:581px;table-layout:fixed;overflow:hidden;word-wrap:break-word;' cellspacing='0' id='t_scrollbody'>\n";
+###########################
 
     // No results? Just take an empty colspanned row
     if (count($this->entries) + count($this->departments) == 0) {
@@ -390,23 +391,23 @@ class listing {
       $result.= "</tr>";
     }
 
-    $result.= "</table></div></td></tr>";
+    // Close list
+    $result.= "</tbody></table></div></td></tr></table>";
 
     // Add the footer if requested
-    if ($this->showFooter) {
-      $result.= "<tr><td class='scrollhead'><table summary='' style='width:100%' cellspacing='0' id='t_scrollfoot'><tr><td class='listfooter' style='border-bottom:0px;'>";
-
-      foreach ($this->objectTypes as $objectType) {
-        if (isset($this->objectTypeCount[$objectType['label']])) {
-          $label= _($objectType['label']);
-          $result.= "<img class='center' src='".$objectType['image']."' title='$label' alt='$label'>&nbsp;".$this->objectTypeCount[$objectType['label']]."&nbsp;&nbsp;&nbsp;&nbsp;";
-        }
-      }
-
-      $result.= "<td class='listfooter' style='width:13px;border-right:0px;'>&nbsp;</td></table></td></tr>";
-    }
-
-    $result.= "</table></div>";
+#################################
+    #if ($this->showFooter) {
+    #  $result.= "<tr><td class='scrollhead'><table summary='' style='width:100%' cellspacing='0' id='t_scrollfoot'><tr><td class='listfooter' style='border-bottom:0px;'>";
+
+    #  foreach ($this->objectTypes as $objectType) {
+    #    if (isset($this->objectTypeCount[$objectType['label']])) {
+    #      $label= _($objectType['label']);
+    #      $result.= "<img class='center' src='".$objectType['image']."' title='$label' alt='$label'>&nbsp;".$this->objectTypeCount[$objectType['label']]."&nbsp;&nbsp;&nbsp;&nbsp;";
+    #    }
+    #  }
+
+    #  $result.= "<td class='listfooter' style='width:13px;border-right:0px;'>&nbsp;</td></table></td></tr>";
+    #}
 
     $smarty= get_smarty();
     $smarty->assign("usePrototype", "true");