Code

Fixed multi query editor
[gosa.git] / gosa-core / include / class_tabs.inc
index 36cad26d20b0a41c11096795ffed9b1fe30e7af3..af356229f9cd67bd8c35a4b26db99bb9c1f720b9 100644 (file)
@@ -63,8 +63,10 @@ class tabs
     foreach ($data as &$tab){
 
       if (!plugin_available($tab['CLASS'])){
+        trigger_error(sprintf("Unknown class '%s'!", $tab['CLASS']));
        continue;
       }
+      if ($this->current == "")  $this->current= $tab['CLASS'];
 
       $this->by_name[$tab['CLASS']]= $tab['NAME'];
 
@@ -79,11 +81,6 @@ class tabs
       $this->read_only |= $this->by_object[$tab['CLASS']]->read_only;
       $this->by_object[$tab['CLASS']]->parent= &$this;
       $this->by_object[$tab['CLASS']]->set_acl_category($this->acl_category);
-
-      /* Initialize current */
-      if ($this->current == ""){
-        $this->current= $tab['CLASS'];
-      }
     }
   }
 
@@ -112,15 +109,13 @@ class tabs
 
   function execute()
   {
-
-
-    echo "Do not render TABS while a sub-dialog is opened!<br>";
-
     // Ensure that the currently selected tab is valid.
     if(!isset($this->by_name[$this->current])) {
       $this->current = key($this->by_name);
     }
 
+    pathNavigator::registerPlugin($this);
+
     // Rotate current to last 
     $this->last= $this->current;
 
@@ -147,11 +142,12 @@ class tabs
       $display= $this->by_object[$this->current]->multiple_execute();
     }
     $tabs= $this->gen_tabs();
-
-    $display =          "{$tabs}
-                        <input type='hidden' name='arg' value=''>
-                          <div class='tab-content'>{$display}
-                        </div>";
+    $display =   
+      "\n        {$tabs}".
+      "\n        <input type='hidden' name='arg' value=''>".
+      "\n        <div class='tab-content'>".
+      "\n          {$display}".
+      "\n        </div>";
 
     return ($display);
   }
@@ -190,12 +186,19 @@ class tabs
     }
   }
 
+
+  function is_modal_dialog()
+  {
+    return($this->by_object[$this->current]->is_modal_dialog());
+  }
+
   function gen_tabs()
   {
+    if($this->is_modal_dialog()) return("");
+
     $display = "\n  <div class='tabs'>";
     $display.= "\n    <ul>";
 
-
     foreach ($this->by_name as $class => $name){
 
       // Shorten string if its too long for the tab headers
@@ -209,13 +212,13 @@ class tabs
 
       // Take care about notifications 
       $obj = $this->by_object[$class];
-      $notify ="";
+      $tabClass = ($this->current == $class) ? "current" :"";
       if ( $this->by_object[$class]->pl_notify && ($obj->is_account || $obj->ignore_account)){
-        $notify= "!";
+        $tabClass .= " info";
       }
-      $tabClass = ($this->current == $class) ? "class='current'" :"";
+      if(!empty($tabClass)) $tabClass="class='{$tabClass}'";
       $onClick = "document.mainform.arg.value='{$class}'; document.mainform.submit();";
-      $display.= "<li {$tabClass} onClick=\"{$onClick}\"><a href='#'>$title{$notify}</a></li>";
+      $display.= "\n      <li {$tabClass} onClick=\"{$onClick}\">{$title}</li>";
     }
     $display.="\n    </ul>";
     $display.="\n  </div>";
@@ -356,7 +359,7 @@ class tabs
         }else{
           if(!empty($tmp['string'])){
             $ret .= $tmp['string'];
-            $ret .= "<p class='seperator'>&nbsp;</p>";
+            $ret .= "<hr>";
           }
         }
       }
@@ -430,6 +433,13 @@ class tabs
     }
     return(TRUE);
   }
+
+  function setReadOnly($s = TRUE)
+  {
+    foreach($this->by_object as $name => $obj){
+      $this->by_object[$name]->read_only = $s;
+    }
+  }
 }
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
 ?>