Code

Added property class to get_cfg_requests
[gosa.git] / gosa-core / include / class_releaseSelector.inc
index dc98422c4ae11b0b9fb78a850dbdc8bf1d8213ed..28f86dec83beca007ac4f5ce1d5b597a5b23b4c8 100644 (file)
@@ -40,7 +40,6 @@ class releaseSelector {
 
     // Transfer data
     $this->releaseBase = $releaseBase; 
-    $this->releaseInfo = $bases;
     $this->setBases($bases);
     $this->setBase($base);
   }
@@ -60,8 +59,8 @@ class releaseSelector {
 
   function setBase($base)
   {
+    $this->base= $base;
     if (isset($this->pathMapping[$base])) {
-      $this->base= $base;
       $this->update(true);
     }
   }
@@ -82,7 +81,7 @@ class releaseSelector {
   function setBases($bases)
   {
     global $config;
-
+    $this->releaseInfo = array();
     $this->pathMapping= array();
     $selected= $this->base == $this->releaseBase?"Selected":"";
     $first= true;
@@ -94,10 +93,14 @@ class releaseSelector {
       $elements= explode(',', substr($base, 0, strlen($base) - strlen($this->releaseBase)));
       $elements= array_reverse($elements, true);
       $this->pathMapping[$base]= $base == $this->releaseBase? '/' : ldap::fix(preg_replace('/(^|,)[a-z0-9]+=/i', '/', implode(',', $elements)));
+
+      $this->releaseInfo[$base]['name'] = ldap::fix(preg_replace('/(^|,)[a-z0-9]+=/i', '', $elements[0]));
+      $this->releaseInfo[$base]['description'] = $dummy;
     }
 
     // Save bases to session for autocompletion
     session::global_set('pathMapping', $this->pathMapping);
+    session::global_set('department_info', $this->releaseInfo);
   }
 
 
@@ -123,7 +126,7 @@ class releaseSelector {
         if (isset($_POST['bs_input_'.$this->pid])) {
 
           // Take over input field base
-          if ($this->submitButton && isset($_POST['submit_base_'.$this->pid.'_x']) || !$this->submitButton) {
+          if ($this->submitButton && isset($_POST['submit_base_'.$this->pid]) || !$this->submitButton) {
 
             // Check if base is available
             $this->lastState= false;
@@ -142,15 +145,38 @@ class releaseSelector {
 
     /* Skip if there's no change */
     if (($this->tree && $this->base == $last_base) && !$force) {
-      return true;
+        return true;
     }
 
-    $link= "onclick=\"\$('bs_rebase_".$this->pid."').value='".base64_encode($this->releaseBase)."';  $('submit_tree_base_".$this->pid."').click();\"";
-    $this->tree= "<input type='text' size='35' name='bs_input_".$this->pid."' id='bs_input_".$this->pid."' onkeydown=\"\$('bs_".$this->pid."').hide()\" onfocus=\"\$('bs_".$this->pid."').hide()\" onmouseover=\"Element.clonePosition(\$('bs_".$this->pid."'), 'bs_input_".$this->pid."', {setHeight: false, setWidth: false, offsetTop:(Element.getHeight('bs_input_".$this->pid."'))});\$('bs_".$this->pid."').show();\" onmouseout=\"rtimer= Element.hide.delay(0.25, 'bs_".$this->pid."')\" value=\"".preg_replace('/"/', '&quot;',$this->pathMapping[$this->base])."\">";
+    $link= "onclick=\"\$('bs_rebase_".$this->pid."').value='".base64_encode($this->releaseBase)."';  
+        $('submit_tree_base_".$this->pid."').click();\"";
+
+    $this->tree= "<input style='width:160px' type='text' size='35' 
+        name='bs_input_{$this->pid}' id='bs_input_{$this->pid}'
+
+        onkeydown=\"    \$('bs_{$this->pid}').hide(); \"
+        onfocus=\"      \$('bs_{$this->pid}').hide(); \"
+        onmouseover=\"  mouseIsStillOver = true; 
+                        function showIt() 
+                            {
+                                if(mouseIsStillOver){
+                                    \$('bs_".$this->pid."').show();  
+                                }
+                            };
+                        Element.clonePosition(\$('bs_".$this->pid."'),
+                        'bs_input_".$this->pid."', 
+                        {setHeight: false, setWidth: false, offsetTop:(Element.getHeight('bs_input_".$this->pid."'))});
+                        rtimer=showIt.delay(0.25); \" 
+
+        onmouseout=\"   mouseIsStillOver=false; 
+                        rtimer=Element.hide.delay(0.25,'bs_".$this->pid."')\"
+
+        value=\"".preg_replace('/"/','&quot;',$this->pathMapping[$this->base])."\">";
 
     // Autocompleter
     $this->tree.= "<div id='autocomplete_".$this->pid."' class='autocomplete'></div>".
                   "<script type='text/javascript'>".
+                  "var mouseIsStillOver = false;".
                   "new Ajax.Autocompleter('bs_input_".$this->pid."', 'autocomplete_".$this->pid."', 'autocomplete.php?type=base', { minChars: 3, frequency: 0.5 });";
     if ($this->submitButton) {
       $this->tree.= "$('bs_input_".$this->pid."').observe('keypress', function(event) { if(event.keyCode == Event.KEY_RETURN) { $('submit_base_".$this->pid."').click(); } });";
@@ -187,9 +213,11 @@ class releaseSelector {
       }
       $selected= $this->base == $base?" class='treeListSelected'":"";
       $link= "onclick=\"\$('bs_rebase_".$this->pid."').value='".base64_encode($base)."';$('submit_tree_base_".$this->pid."').click();\"";
+
       $this->tree.= "<li>".
                     "<a$selected $link>".
-                    $this->gennonbreaks($this->releaseInfo[$base]).
+                    $this->gennonbreaks($this->releaseInfo[$base]['name']).
+                    ($this->releaseInfo[$base]['description']==''?'':'&nbsp;<span class="informal">['.$this->gennonbreaks($this->releaseInfo[$base]['description']).']</span>').
                     "</a>";
 
       $last_indent= $indent;