From: Michael M Slusarz Date: Fri, 3 Sep 2010 21:45:11 +0000 (-0600) Subject: IMP search fixes. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=d1b477c104edb2c52b95f5e3097beeefd48b3bd3;p=horde.git IMP search fixes. Fix basic search. Fix since/equals/before searching. --- diff --git a/imp/js/search.js b/imp/js/search.js index 431c44c8f..50ce93be1 100644 --- a/imp/js/search.js +++ b/imp/js/search.js @@ -411,8 +411,8 @@ var ImpSearch = { calendarSelectHandler: function(e) { - var elt = e.element(); - this.replaceDate(elt.up('TR').identify(), this.criteria[elt.identify()], e.memo); + var id = e.findElement('TR').identify(); + this.replaceDate(id, this.criteria[id].t, e.memo); } }; diff --git a/imp/lib/Search.php b/imp/lib/Search.php index b5139c3f7..b5a288af8 100644 --- a/imp/lib/Search.php +++ b/imp/lib/Search.php @@ -183,17 +183,17 @@ class IMP_Search 'not' => true ), 'date_on' => array( - 'label' => _("Date ="), + 'label' => _("Date Equals (=)"), 'type' => 'date', 'not' => true ), 'date_until' => array( - 'label' => _("Date <"), + 'label' => _("Date Until (<)"), 'type' => 'date', 'not' => true ), 'date_since' => array( - 'label' => _("Date >="), + 'label' => _("Date Since (>=)"), 'type' => 'date', 'not' => true ), @@ -732,7 +732,8 @@ class IMP_Search break; case 'date': - $text_array[] = sprintf("%s '%s'", $searchfields[$field]['label'], strftime("%x", mktime(0, 0, 0, $rule->v->m + 1, $rule->v->d, $rule->v->y))); + $date_ob = new Horde_Date($rule->v); + $text_array[] = sprintf("%s '%s'", $searchfields[$field]['label'], $date_ob->strftime("%x")); break; case 'within': diff --git a/imp/lib/Ui/Search.php b/imp/lib/Ui/Search.php index ce70488d4..586972b48 100644 --- a/imp/lib/Ui/Search.php +++ b/imp/lib/Ui/Search.php @@ -78,7 +78,7 @@ class IMP_Ui_Search case 'date': if (!empty($rule->v)) { - $date = new Horde_Date(array('year' => $rule->v->y, 'month' => $rule->v->m + 1, 'mday' => $rule->v->d)); + $date = new Horde_Date($rule->v); $ob->dateSearch($date, ($rule->t == 'date_on') ? Horde_Imap_Client_Search_Query::DATE_ON : (($rule->t == 'date_until') ? Horde_Imap_Client_Search_Query::DATE_BEFORE : Horde_Imap_Client_Search_Query::DATE_SINCE)); $search_array[] = $ob; } diff --git a/imp/search-basic.php b/imp/search-basic.php index 8d75ca31f..8d92de8a2 100644 --- a/imp/search-basic.php +++ b/imp/search-basic.php @@ -16,13 +16,16 @@ require_once dirname(__FILE__) . '/lib/Application.php'; Horde_Registry::appInit('imp'); +/* This is an IMP-only script. */ +if ($_SESSION['imp']['view'] != 'imp') { + exit; +} + if ($_SESSION['imp']['protocol'] == 'pop') { - if ($_SESSION['imp']['view'] == 'imp') { - $notification->push(_("Searching is not available with a POP3 server."), 'horde.error'); - $from_message_page = true; - $actionID = $start = null; - require_once IMP_BASE . '/mailbox.php'; - } + $notification->push(_("Searching is not available with a POP3 server."), 'horde.error'); + $from_message_page = true; + $actionID = $start = null; + require_once IMP_BASE . '/mailbox.php'; exit; } @@ -30,7 +33,7 @@ $imp_search = $injector->getInstance('IMP_Search'); $vars = Horde_Variables::getDefaultVariables(); /* If search_basic_mbox is set, we are processing the search query. */ -if ($vars->search_mailbox) { +if ($vars->search_basic_mailbox) { $imp_ui_search = new IMP_Ui_Search(); $id = $imp_ui_search->processBasicSearch($vars->search_mailbox, $vars->search_criteria, $vars->search_criteria_text, $vars->search_criteria_not, $vars->search_flags);