From: hickert Date: Thu, 29 Jul 2010 13:19:40 +0000 (+0000) Subject: Updated post handling X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=9b819535ca5b497dbba31c4e33c7f6c699753f2b;p=gosa.git Updated post handling git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@19241 594d385d-05f5-0310-b6e9-bd551577e9d8 --- diff --git a/gosa-core/include/class_baseSelector.inc b/gosa-core/include/class_baseSelector.inc index 0b26ffe0b..8a30178d7 100644 --- a/gosa-core/include/class_baseSelector.inc +++ b/gosa-core/include/class_baseSelector.inc @@ -22,257 +22,257 @@ class baseSelector { - private $base; - private $pid; - private $action; - private $height= 500; - private $submitButton= true; - protected $tree; - protected $pathMapping; - protected $lastState; + private $base; + private $pid; + private $action; + private $height= 500; + private $submitButton= true; + protected $tree; + protected $pathMapping; + protected $lastState; + + + function __construct($bases, $base= "") + { + // Initialize pid + $this->pid= preg_replace("/[^0-9]/", "", microtime(TRUE)); + + // Transfer data + $this->setBases($bases); + $this->setBase($base); + } - function __construct($bases, $base= "") - { - // Initialize pid - $this->pid= preg_replace("/[^0-9]/", "", microtime(TRUE)); + function setSubmitButton($flag) + { + $this->submitButton= $flag; + } - // Transfer data - $this->setBases($bases); - $this->setBase($base); - } + function setHeight($value) + { + $this->height= $value; + } - function setSubmitButton($flag) - { - $this->submitButton= $flag; - } + function setBase($base) + { + if (isset($this->pathMapping[$base])) { + $this->base= $base; + $this->update(true); + } + } - function setHeight($value) - { - $this->height= $value; - } + + function checkBase($base) + { + return isset($this->pathMapping[$base]); + } - function setBase($base) - { - if (isset($this->pathMapping[$base])) { - $this->base= $base; - $this->update(true); + function checkLastBaseUpdate() + { + return $this->lastState; } - } - function checkBase($base) - { - return isset($this->pathMapping[$base]); - } + function setBases($bases) + { + global $config; + $this->pathMapping= array(); + $selected= $this->base == $config->current['BASE']?"Selected":""; + $first= true; + $last_indent= 2; - function checkLastBaseUpdate() - { - return $this->lastState; - } + foreach ($bases as $base => $dummy) { + // Build path style display + $elements= explode(',', substr($base, 0, strlen($base) - strlen($config->current['BASE']))); + $elements= array_reverse($elements, true); - function setBases($bases) - { - global $config; + $this->pathMapping[$base]= $base == $config->current['BASE']? '/' : ldap::fix(preg_replace('/(^|,)[a-z0-9]+=/i', '/', implode(',', $elements))); + $this->pathMapping[$base]= stripslashes( $this->pathMapping[$base]); + } - $this->pathMapping= array(); - $selected= $this->base == $config->current['BASE']?"Selected":""; - $first= true; - $last_indent= 2; + // Save bases to session for autocompletion + session::global_set('pathMapping', $this->pathMapping); + session::global_set('department_info', $config->department_info); + } - foreach ($bases as $base => $dummy) { - // Build path style display - $elements= explode(',', substr($base, 0, strlen($base) - strlen($config->current['BASE']))); - $elements= array_reverse($elements, true); + function update($force= false) + { + global $config; + + // Analyze for base changes if needed + $this->action= null; + $last_base= $this->base; + 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(get_post('bs_rebase_'.$this->pid)); + + if (isset($this->pathMapping[$new_base])) { + $this->base= $new_base; + $this->action= 'rebase'; + } else { + $this->lastState= false; + 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]) || !$this->submitButton) { + + // Check if base is available + $this->lastState= false; + foreach ($this->pathMapping as $key => $path) { + if (mb_strtolower($path) == mb_strtolower(get_post('bs_input_'.$this->pid))) { + $this->base= $key; + $this->lastState= true; + break; + } + } + } + } + } - $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); - } - - - function update($force= false) - { - global $config; - - // Analyze for base changes if needed - $this->action= null; - $last_base= $this->base; - 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'; - } else { - $this->lastState= false; - return false; + /* Skip if there's no change */ + if (($this->tree && $this->base == $last_base) && !$force) { + return true; } - }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]) || !$this->submitButton) { - - // Check if base is available - $this->lastState= false; - foreach ($this->pathMapping as $key => $path) { - if (mb_strtolower($path) == mb_strtolower(get_post('bs_input_'.$this->pid))) { - $this->base= $key; - $this->lastState= true; - break; - } + + $link= "onclick=\"\$('bs_rebase_".$this->pid."').value='".base64_encode($config->current['BASE'])."'; $('submit_tree_base_".$this->pid."').click();\""; + + + $this->tree= "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."')\" - /* Skip if there's no change */ - if (($this->tree && $this->base == $last_base) && !$force) { - return true; - } + value=\"".preg_replace('/"/','"',$this->pathMapping[$this->base])."\">"; - $link= "onclick=\"\$('bs_rebase_".$this->pid."').value='".base64_encode($config->current['BASE'])."'; $('submit_tree_base_".$this->pid."').click();\""; + // Autocompleter + $this->tree.= "
". + ""; - $this->tree= "base == $config->current['BASE']?"Selected":""; + $this->tree.= "\n"; - // Close tree - for ($i= 1; $i<$last_indent; $i++) { - $this->tree.= "\n"; - } - $this->tree.= "\n"; + // Draw submitter if required + if ($this->submitButton) { + $this->tree.= image('images/lists/submit.png', "submit_base_".$this->pid, _("Submit")); + } + $this->tree.= ""; + $this->tree.= ""; + $this->tree.= ""; - // Draw submitter if required - if ($this->submitButton) { - $this->tree.= image('images/lists/submit.png', "submit_base_".$this->pid, _("Submit")); + $this->lastState= true; + return true; } - $this->tree.= ""; - $this->tree.= ""; - $this->tree.= ""; - $this->lastState= true; - return true; - } + function gennonbreaks($string) + { + return str_replace('-', '‑', str_replace(' ', ' ', $string)); + } - function gennonbreaks($string) - { - return str_replace('-', '‑', str_replace(' ', ' ', $string)); - } + function render() + { + return $this->tree; + } - function render() - { - return $this->tree; - } + function getBase() + { + return $this->base; + } - function getBase() - { - return $this->base; - } + function getAction() + { + // Do not do anything if this is not our BPID, or there's even no BPID available... + if(!isset($_REQUEST['BPID']) || $_REQUEST['BPID'] != $this->pid) { + return; + } - function getAction() - { - // Do not do anything if this is not our BPID, or there's even no BPID available... - if(!isset($_REQUEST['BPID']) || $_REQUEST['BPID'] != $this->pid) { - return; - } + if ($this->action) { + return array("targets" => array($this->base), "action" => $this->action); + } - if ($this->action) { - return array("targets" => array($this->base), "action" => $this->action); + return null; } - return null; - } - } ?>