summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-01-01 10:54:57 +0100
committerAleksander Machniak <alec@alec.pl>2013-01-01 10:54:57 +0100
commit347ba311e68f3a641805a268313fcd5ed851feb7 (patch)
tree04a989b06aa6778ca5a75a40739b038d268588f9
parent5438956debdf254ed1b49ef144f1626007b9e669 (diff)
Add possibility to search in message body only (#1488770)
-rw-r--r--CHANGELOG1
-rw-r--r--program/localization/en_US/labels.inc1
-rw-r--r--program/steps/mail/search.inc7
-rw-r--r--skins/classic/templates/mail.html1
-rw-r--r--skins/larry/templates/mail.html1
5 files changed, 8 insertions, 3 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 5a594c07e..d3ebabc3e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Add possibility to search in message body only (#1488770)
- Support "multipart/relative" as an alias for "multipart/related" type (#1488886)
- Display PGP/MIME signature attachments as "Digital Signature" (#1488570)
- Workaround UW-IMAP bug where hierarchy separator is added to the shared folder name (#1488879)
diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc
index d2a46ecc6..9deaa6677 100644
--- a/program/localization/en_US/labels.inc
+++ b/program/localization/en_US/labels.inc
@@ -200,6 +200,7 @@ $labels['quicksearch'] = 'Quick search';
$labels['resetsearch'] = 'Reset search';
$labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
$labels['openinextwin'] = 'Open in new window';
$labels['emlsave'] = 'Download (.eml)';
diff --git a/program/steps/mail/search.inc b/program/steps/mail/search.inc
index f9b8f9e67..fb1b48797 100644
--- a/program/steps/mail/search.inc
+++ b/program/steps/mail/search.inc
@@ -69,7 +69,7 @@ else if (preg_match("/^subject:.*/i", $str))
else if (preg_match("/^body:.*/i", $str))
{
list(,$srch) = explode(":", $str);
- $subject['text'] = "TEXT";
+ $subject['body'] = "BODY";
}
else if (strlen(trim($str)))
{
@@ -81,7 +81,7 @@ else if (strlen(trim($str)))
break;
}
else {
- $subject[$header] = 'HEADER '.strtoupper($header);
+ $subject[$header] = ($header != 'body' ? 'HEADER ' : '') . strtoupper($header);
}
}
@@ -89,7 +89,8 @@ else if (strlen(trim($str)))
$search_mods = $RCMAIL->config->get('search_mods', $SEARCH_MODS_DEFAULT);
$search_mods[$mbox] = array_fill_keys(array_keys($subject), 1);
$RCMAIL->user->save_prefs(array('search_mods' => $search_mods));
- } else {
+ }
+ else {
// search in subject by default
$subject['subject'] = 'HEADER SUBJECT';
}
diff --git a/skins/classic/templates/mail.html b/skins/classic/templates/mail.html
index 96fe72ecd..ad67d8e89 100644
--- a/skins/classic/templates/mail.html
+++ b/skins/classic/templates/mail.html
@@ -115,6 +115,7 @@
<li><input type="checkbox" name="s_mods[]" value="to" id="s_mod_to" onclick="rcmail_ui.set_searchmod(this)" /><label for="s_mod_to"><roundcube:label name="to" /></label></li>
<li><input type="checkbox" name="s_mods[]" value="cc" id="s_mod_cc" onclick="rcmail_ui.set_searchmod(this)" /><label for="s_mod_cc"><roundcube:label name="cc" /></label></li>
<li><input type="checkbox" name="s_mods[]" value="bcc" id="s_mod_bcc" onclick="rcmail_ui.set_searchmod(this)" /><label for="s_mod_bcc"><roundcube:label name="bcc" /></label></li>
+ <li><input type="checkbox" name="s_mods[]" value="body" id="s_mod_body" onclick="rcmail_ui.set_searchmod(this)" /><label for="s_mod_body"><roundcube:label name="body" /></label></li>
<li><input type="checkbox" name="s_mods[]" value="text" id="s_mod_text" onclick="rcmail_ui.set_searchmod(this)" /><label for="s_mod_text"><roundcube:label name="msgtext" /></label></li>
</ul>
</div>
diff --git a/skins/larry/templates/mail.html b/skins/larry/templates/mail.html
index 751ab82a4..cd817c1de 100644
--- a/skins/larry/templates/mail.html
+++ b/skins/larry/templates/mail.html
@@ -133,6 +133,7 @@
<li><label><input type="checkbox" name="s_mods[]" value="to" id="s_mod_to" onclick="UI.set_searchmod(this)" /> <roundcube:label name="to" /></label></li>
<li><label><input type="checkbox" name="s_mods[]" value="cc" id="s_mod_cc" onclick="UI.set_searchmod(this)" /> <roundcube:label name="cc" /></label></li>
<li><label><input type="checkbox" name="s_mods[]" value="bcc" id="s_mod_bcc" onclick="UI.set_searchmod(this)" /> <roundcube:label name="bcc" /></label></li>
+ <li><label><input type="checkbox" name="s_mods[]" value="body" id="s_mod_body" onclick="UI.set_searchmod(this)" /> <roundcube:label name="body" /></label></li>
<li><label><input type="checkbox" name="s_mods[]" value="text" id="s_mod_text" onclick="UI.set_searchmod(this)" /> <roundcube:label name="msgtext" /></label></li>
</ul>
</div>