X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_baseSelector.inc;h=c6ac8d2b70c391cd79e0b85ad5db83010dc4d0e0;hb=f7ebf98692ee53fcfffdc91b87d81a24ac19df0e;hp=1d35ea4fba22616d1768b27c311c1dd0d58a6c39;hpb=10a0e2e3f06d826c410908ec5bd6f71f33589526;p=gosa.git diff --git a/gosa-core/include/class_baseSelector.inc b/gosa-core/include/class_baseSelector.inc index 1d35ea4fb..c6ac8d2b7 100644 --- a/gosa-core/include/class_baseSelector.inc +++ b/gosa-core/include/class_baseSelector.inc @@ -31,14 +31,6 @@ class baseSelector { protected $pathMapping; protected $lastState; - // It would be better to get a dn -> [name, description, type] array - // to avoid these tasks be done several times. Skipping for the moment. - #'dc' => 'plugins/departments/images/domain.png', - #'dc' => 'plugins/departments/images/dc.png', - #'l' => 'plugins/departments/images/locality.png', - #'c' => 'plugins/departments/images/country.png', - #'o' => 'plugins/departments/images/organization.png', - #'ou' => 'plugins/departments/images/folder.png', function __construct($bases, $base= "") { @@ -100,10 +92,12 @@ class baseSelector { $elements= array_reverse($elements, true); $this->pathMapping[$base]= $base == $config->current['BASE']? '/' : ldap::fix(preg_replace('/(^|,)[a-z0-9]+=/i', '/', implode(',', $elements))); + $this->pathMapping[$base]= stripslashes( $this->pathMapping[$base]); } // Save bases to session for autocompletion session::global_set('pathMapping', $this->pathMapping); + session::global_set('department_info', $config->department_info); } @@ -117,6 +111,7 @@ class baseSelector { if(isset($_REQUEST['BPID']) && $_REQUEST['BPID'] == $this->pid) { if (isset($_POST['bs_rebase_'.$this->pid]) && !empty($_POST['bs_rebase_'.$this->pid])) { $new_base= base64_decode($_POST['bs_rebase_'.$this->pid]); + if (isset($this->pathMapping[$new_base])) { $this->base= $new_base; $this->action= 'rebase'; @@ -125,16 +120,17 @@ class baseSelector { return false; } }else{ + // Input field set? 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; foreach ($this->pathMapping as $key => $path) { - if (mb_strtolower($path) == mb_strtolower($_POST['bs_input_'.$this->pid])) { + if (mb_strtolower($path) == mb_strtolower(get_post('bs_input_'.$this->pid))) { $this->base= $key; $this->lastState= true; break; @@ -193,21 +189,25 @@ class baseSelector { } $selected= $this->base == $base?" class='treeListSelected'":""; $link= "onclick=\"\$('bs_rebase_".$this->pid."').value='".base64_encode($base)."';$('submit_tree_base_".$this->pid."').click();\""; - $this->tree.= "
  • ".str_replace('-', '‑', str_replace(' ', ' ', ldap::fix(preg_replace('/^[a-z0-9]+=([^,]+),.*$/i', '$1', $base)))).""; + $this->tree.= "
  • ". + image($config->department_info[$base]['img'])." ". + $this->gennonbreaks($config->department_info[$base]['name']). + ($config->department_info[$base]['description']==''?'':' ['.$this->gennonbreaks($config->department_info[$base]['description']).']'). + ""; $last_indent= $indent; $first= false; } // Close tree - for ($i= 0; $i<$last_indent; $i++) { + for ($i= 1; $i<$last_indent; $i++) { $this->tree.= "
  • \n"; } $this->tree.= "\n"; // Draw submitter if required if ($this->submitButton) { - $this->tree.= " "; + $this->tree.= image('images/lists/submit.png', "submit_base_".$this->pid, _("Submit")); } $this->tree.= ""; $this->tree.= ""; @@ -217,6 +217,13 @@ class baseSelector { return true; } + + function gennonbreaks($string) + { + return str_replace('-', '‑', str_replace(' ', ' ', $string)); + } + + function render() { return $this->tree;