From 083ec98c9f635bf9fb3723ef4a6d6cf99d8b1ee9 Mon Sep 17 00:00:00 2001 From: cajus Date: Thu, 28 Jan 2010 15:32:49 +0000 Subject: [PATCH] Touch autocompletition git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@15426 594d385d-05f5-0310-b6e9-bd551577e9d8 --- gosa-core/html/autocomplete.php | 33 +++++++++++++++++++----- gosa-core/html/themes/default/style.css | 1 + gosa-core/include/class_baseSelector.inc | 33 +++++++++++++++++++++++- 3 files changed, 60 insertions(+), 7 deletions(-) diff --git a/gosa-core/html/autocomplete.php b/gosa-core/html/autocomplete.php index 76b026106..fe3da73b8 100644 --- a/gosa-core/html/autocomplete.php +++ b/gosa-core/html/autocomplete.php @@ -34,13 +34,34 @@ if (!session::global_is_set('ui')){ exit; } -$config = session::global_get('config'); -$ui = session::global_get('ui'); +/* Base completition or filter completition? */ +if (isset($_GET['type']) && $_GET['type'] == "base") { + if (session::is_set("pathMapping") && count($_POST) == 1) { + $res= ""; + $pathMapping= session::get("pathMapping"); + $search= current($_POST); + foreach ($pathMapping as $key => $value) { + if (mb_stristr($value, $search) !== false) { + $res.= "
  • $value
  • "; + } + } -/* Is there a filter object arround? */ -if (session::is_set("autocomplete")){ - $filter= session::get("autocomplete"); - $filter->processAutocomplete(); + /* Return results */ + if (!empty($res)) { + echo ""; + } + } + +} else { + + $config = session::global_get('config'); + $ui = session::global_get('ui'); + + /* Is there a filter object arround? */ + if (session::is_set("autocomplete")){ + $filter= session::get("autocomplete"); + $filter->processAutocomplete(); + } } ?> diff --git a/gosa-core/html/themes/default/style.css b/gosa-core/html/themes/default/style.css index 9bbe10366..54d78bc0c 100644 --- a/gosa-core/html/themes/default/style.css +++ b/gosa-core/html/themes/default/style.css @@ -1589,6 +1589,7 @@ div.autocomplete { border:1px solid #AAA; margin:0; padding:0; + z-index: 600; } div.autocomplete ul { diff --git a/gosa-core/include/class_baseSelector.inc b/gosa-core/include/class_baseSelector.inc index 5ff482398..0de55ac32 100644 --- a/gosa-core/include/class_baseSelector.inc +++ b/gosa-core/include/class_baseSelector.inc @@ -25,6 +25,7 @@ class baseSelector { private $base; private $pid; private $action; + private $submitButton= true; protected $tree; protected $pathMapping; @@ -48,6 +49,12 @@ class baseSelector { } + function setSubmitButton($flag) + { + $this->submitButton= $flag; + } + + function setBase($base) { if (isset($this->pathMapping[$base])) { @@ -97,6 +104,16 @@ class baseSelector { die ("Base mismatch!"); } } + } elseif (isset($_POST['bs_input_'.$this->pid])) { + + // Check if base is available + foreach ($this->pathMapping as $key => $path) { + if (mb_strtolower($path) == mb_strtolower($_POST['bs_input_'.$this->pid])) { + $this->base= $key; + break; + } + } + } /* Skip if there's no change */ @@ -105,7 +122,15 @@ class baseSelector { } $link= "href='?plug=".$_GET['plug']."&PID=".$this->pid."&REBASE=".base64_encode($config->current['BASE'])."'"; - $this->tree= "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='".$this->pathMapping[$this->base]."' readonly>"; + $this->tree= "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='".$this->pathMapping[$this->base]."'>"; + + + // Autocompleter + $this->tree.= "
    ". + ""; $selected= $this->base == $config->current['BASE']?"Selected":""; $this->tree.= "\n"; + + // Draw submitter if required + if ($this->submitButton) { + $this->tree.= " "; + } + } function render() -- 2.39.5