From: Michael M Slusarz Date: Thu, 30 Jul 2009 06:56:43 +0000 (-0600) Subject: Re-add quicksearch field selection and make it persist across sessions. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=120340d162a9c6f737e14f8e76b361a3e965b117;p=horde.git Re-add quicksearch field selection and make it persist across sessions. --- diff --git a/imp/config/prefs.php.dist b/imp/config/prefs.php.dist index 031dc97ed..953a109f7 100644 --- a/imp/config/prefs.php.dist +++ b/imp/config/prefs.php.dist @@ -1677,19 +1677,25 @@ $_prefs['dimp_login_view'] = array( ); // Other Implicit DIMP preferences +$_prefs['dimp_qsearch_field'] = array( + 'value' => 'all', + 'locked' => false, + 'shared' => false, + 'type' => 'implicit'); + $_prefs['dimp_show_preview'] = array( 'value' => true, 'locked' => false, 'shared' => false, 'type' => 'implicit'); -$_prefs['dimp_toggle_headers'] = array( +$_prefs['dimp_splitbar'] = array( 'value' => 0, 'locked' => false, 'shared' => false, 'type' => 'implicit'); -$_prefs['dimp_splitbar'] = array( +$_prefs['dimp_toggle_headers'] = array( 'value' => 0, 'locked' => false, 'shared' => false, diff --git a/imp/docs/CHANGES b/imp/docs/CHANGES index ba4248607..e5e7d7426 100644 --- a/imp/docs/CHANGES +++ b/imp/docs/CHANGES @@ -2,6 +2,7 @@ v5.0-git -------- +[mms] Make DIMP quicksearch field selection persist across sessions. [mms] Move JS/CSS caching to Horde framework. [mms] Add simple search function to MIMP. [mms] DIMP now honors the 'mailbox_start' preference. diff --git a/imp/js/src/DimpBase.js b/imp/js/src/DimpBase.js index 39c67015c..1b20d7ecf 100644 --- a/imp/js/src/DimpBase.js +++ b/imp/js/src/DimpBase.js @@ -749,6 +749,14 @@ var DimpBase = { this.purgeDeleted(); break; + case 'ctx_qsearchopts_all': + case 'ctx_qsearchopts_body': + case 'ctx_qsearchopts_from': + case 'ctx_qsearchopts_subject': + DIMP.conf.qsearchfield = id.substring(16); + this._updatePrefs('dimp_qsearch_field', DIMP.conf.qsearchfield); + break; + default: if (menu.endsWith('_setflag') || menu.endsWith('_unsetflag')) { flag = elt.readAttribute('flag'); @@ -813,6 +821,11 @@ var DimpBase = { tmp.compact().invoke(this.viewport.getSelected().size() ? 'show' : 'hide'); break; + case 'ctx_qsearchopts': + $(ctx_id).descendants().invoke('removeClassName', 'contextSelected'); + $(ctx_id + '_' + DIMP.conf.qsearchfield).addClassName('contextSelected'); + break; + default: parentfunc(ctx_id, baseelt); break; @@ -1670,8 +1683,8 @@ var DimpBase = { } break; - case 'qsearch_close': - this.quicksearchClear(); + case 'qsearch_icon': + DimpCore.DMenu.trigger($('qsearch_icon'), true); e.stop(); return; @@ -1683,6 +1696,11 @@ var DimpBase = { $('qsearch_input').focus(); break; + case 'qsearch_close': + this.quicksearchClear(); + e.stop(); + return; + default: if (elt.hasClassName('RBFolderOk')) { this.cfolderaction(e); @@ -2433,6 +2451,7 @@ var DimpBase = { /* Add popdown menus. Check for disabled compose at the same time. */ this._addMouseEvents({ id: 'button_other', type: 'otheractions' }, $('button_other')); this._addMouseEvents({ id: 'folderopts', type: 'folderopts' }, $('folderopts').down(1)); + this._addMouseEvents({ id: 'qsearch_icon', left: true, type: 'qsearchopts' }); DM.addSubMenu('ctx_message_reply', 'ctx_reply'); [ 'ctx_message_', 'oa_', 'ctx_draft_' ].each(function(i) { diff --git a/imp/lib/Views/ListMessages.php b/imp/lib/Views/ListMessages.php index 099535b02..9c4ff6832 100644 --- a/imp/lib/Views/ListMessages.php +++ b/imp/lib/Views/ListMessages.php @@ -31,7 +31,25 @@ class IMP_Views_ListMessages strlen($args['qsearchmbox'])) { /* Create the search query. */ $query = new Horde_Imap_Client_Search_Query(); - $query->text($args['qsearch'], false); + + switch ($GLOBALS['prefs']->getValue('dimp_qsearch_field')) { + case 'body': + $query->text($args['qsearch'], true); + break; + + case 'from': + $query->headerText('From', $args['qsearch']); + break; + + case 'subject': + $query->headerText('Subject', $args['qsearch']); + break; + + case 'all': + default: + $query->text($args['qsearch'], false); + break; + } /* Set the search in the IMP session. */ $GLOBALS['imp_search']->createSearchQuery($query, array($args['qsearchmbox']), array(), _("Search Results"), $mbox); diff --git a/imp/templates/index/index-dimp.inc b/imp/templates/index/index-dimp.inc index 0119eb515..28bf8b256 100644 --- a/imp/templates/index/index-dimp.inc +++ b/imp/templates/index/index-dimp.inc @@ -175,10 +175,11 @@ function _simpleButton($id, $text, $image, $imagedir = null)
+
- + 'qsearch_close', 'style' => 'display:none', 'title' => _("Clear Search")), $hordeimg) ?>
@@ -439,6 +440,13 @@ function _simpleButton($id, $text, $image, $imagedir = null)
+ +
diff --git a/imp/templates/javascript_defs_dimp.php b/imp/templates/javascript_defs_dimp.php index 9d659f7b6..2627b9b50 100644 --- a/imp/templates/javascript_defs_dimp.php +++ b/imp/templates/javascript_defs_dimp.php @@ -73,6 +73,7 @@ $code['conf'] = array_filter(array( 'popup_width' => 820, 'preview_pref' => intval($GLOBALS['prefs']->getValue('dimp_show_preview')), 'qsearchid' => IMP_Search::MBOX_PREFIX . 'dimpqsearch', + 'qsearchfield' => $GLOBALS['prefs']->getValue('dimp_qsearch_field'), 'refresh_time' => intval($GLOBALS['prefs']->getValue('refresh_time')), 'sortdate' => Horde_Imap_Client::SORT_DATE, 'sortthread' => Horde_Imap_Client::SORT_THREAD, diff --git a/imp/themes/screen-dimp.css b/imp/themes/screen-dimp.css index 3970dd43c..b95fe6de6 100644 --- a/imp/themes/screen-dimp.css +++ b/imp/themes/screen-dimp.css @@ -761,6 +761,9 @@ div.dimpActionsCompose, div.dimpActionsMsg { background: url("graphics/popright.png") 95% 50% no-repeat; padding-left: 16px; } +.contextSelected { + background: yellow; +} /* Email Addresses. */ a.address { @@ -800,23 +803,31 @@ a.address:hover img { /* Search-related styles */ #qsearch { - background: #f3f3f3 url("graphics/search.png") 2px center no-repeat; - padding: 1px 0 1px 20px; + padding: 1px 0 1px 1px; float: right; border: 1px solid #999; cursor: default; + background-color: #f3f3f3; -moz-border-radius: 3px; -webkit-border-radius: 3px; } #qsearch form { display: inline; } -#qsearch span { +.qsearchClose { display: -moz-inline-stack; display: inline-block; margin-left: -2px; width: 17px; } +#qsearch_icon { + height: 16px; + width: 16px; + display: -moz-inline-stack; + display: inline-block; + background: #f3f3f3 url("graphics/search.png") center no-repeat; + vertical-align: top; +} #qsearch_input { border: none; color: #a0a0a0; @@ -826,7 +837,7 @@ a.address:hover img { #qsearch_close { margin-top: -1px; } -.qsearchFocus { +.qsearchFocus, .qsearchFocus #qsearch_icon { background-color: #fff !important; } .qsearchFocus #qsearch_input { diff --git a/imp/themes/silver/screen-dimp.css b/imp/themes/silver/screen-dimp.css index e85b2e978..7cd7dfcba 100644 --- a/imp/themes/silver/screen-dimp.css +++ b/imp/themes/silver/screen-dimp.css @@ -145,7 +145,7 @@ span.dimpactionDrafts { background-image: url("graphics/newwin.png"); } -#qsearch { +#qsearch_icon { background-image: url("graphics/search.png"); }