Thomas Bruederli
2014-04-18 9429087f67d5babe32ff496eadca52788e9f2547
Add multi-folder search capabilities to classic skin (#1485234)
5 files modified
65 ■■■■■ changed files
skins/classic/functions.js 41 ●●●●● patch | view | raw | blame | history
skins/classic/mail.css 10 ●●●●● patch | view | raw | blame | history
skins/classic/templates/mail.html 6 ●●●● patch | view | raw | blame | history
skins/larry/mail.css 4 ●●●● patch | view | raw | blame | history
skins/larry/templates/mail.html 4 ●●●● patch | view | raw | blame | history
skins/classic/functions.js
@@ -202,11 +202,13 @@
      var n, all,
        list = $('input:checkbox[name="s_mods[]"]', obj),
        mbox = rcmail.env.mailbox,
        mods = rcmail.env.search_mods;
        mods = rcmail.env.search_mods,
        scope = rcmail.env.search_scope || 'base';
      if (rcmail.env.task == 'mail') {
        mods = mods[mbox] ? mods[mbox] : mods['*'];
        all = 'text';
        $('input:radio[name="s_scope"]').prop('checked', false).filter('#s_scope_'+scope).prop('checked', true);
      }
      else {
        all = '*';
@@ -231,7 +233,11 @@
{
  var all, m, task = rcmail.env.task,
    mods = rcmail.env.search_mods,
    mbox = rcmail.env.mailbox;
    mbox = rcmail.env.mailbox,
    scope = $('input[name="s_scope"]:checked').val();
  if (scope == 'all')
    mbox = '*';
  if (!mods)
    mods = {};
@@ -253,23 +259,24 @@
    m[elem.value] = 1;
  // mark all fields
  if (elem.value != all)
    return;
  if (elem.value == all) {
    $('input:checkbox[name="s_mods[]"]').map(function() {
      if (this == elem)
        return;
  $('input:checkbox[name="s_mods[]"]').map(function() {
    if (this == elem)
      return;
      this.checked = true;
      if (elem.checked) {
        this.disabled = true;
        delete m[this.value];
      }
      else {
        this.disabled = false;
        m[this.value] = 1;
      }
    });
  }
    this.checked = true;
    if (elem.checked) {
      this.disabled = true;
      delete m[this.value];
    }
    else {
      this.disabled = false;
      m[this.value] = 1;
    }
  });
  rcmail.set_searchmods(m);
},
listmenu: function(show)
skins/classic/mail.css
@@ -1010,6 +1010,16 @@
  padding: 0 2px;
}
.messagelist tr td.folder
{
  width: 135px;
}
.messagelist tr td.hidden
{
  display: none;
}
.messagelist tr.message
{
  background-color: #FFF;
skins/classic/templates/mail.html
@@ -114,6 +114,10 @@
    <li><label><input type="checkbox" name="s_mods[]" value="bcc" id="s_mod_bcc" onclick="rcmail_ui.set_searchmod(this)" /> <span><roundcube:label name="bcc" /></span></label></li>
    <li><label><input type="checkbox" name="s_mods[]" value="body" id="s_mod_body" onclick="rcmail_ui.set_searchmod(this)" /> <span><roundcube:label name="body" /></span></label></li>
    <li><label><input type="checkbox" name="s_mods[]" value="text" id="s_mod_text" onclick="rcmail_ui.set_searchmod(this)" /> <span><roundcube:label name="msgtext" /></span></label></li>
    <li><label class="comment"><roundcube:label name="searchscope" /></label></li>
    <li><label><input type="radio" name="s_scope" value="base" id="s_scope_base" onclick="rcmail.set_searchscope(this.value)" /> <span><roundcube:label name="currentfolder" /></span></label></li>
    <li><label><input type="radio" name="s_scope" value="sub" id="s_scope_sub" onclick="rcmail.set_searchscope(this.value)" /> <span><roundcube:label name="subfolders" /></span></label></li>
    <li><label><input type="radio" name="s_scope" value="all" id="s_scope_all" onclick="rcmail.set_searchscope(this.value)" /> <span><roundcube:label name="allfolders" /></span></label></li>
  </ul>
</div>
@@ -138,7 +142,7 @@
  <ul>
    <li><roundcube:button command="expunge" type="link" label="compact" classAct="active" /></li>
    <li><roundcube:button command="purge" type="link" label="empty" classAct="active" /></li>
    <li class="separator_below"><roundcube:button name="messageimport" type="link" class="active" label="importmessages" id="uploadformlink" onclick="rcmail_ui.show_popup('uploadform', true); return false" /></li>
    <li class="separator_below"><roundcube:button command="import-messages" name="messageimport" type="link" classAct="active" label="importmessages" id="uploadformlink" onclick="if(rcmail.command_enabled('import-messages'))rcmail_ui.show_popup('uploadform', true); return false" /></li>
    <li><roundcube:button command="folders" task="settings" type="link" label="managefolders" classAct="active" /></li>
    <roundcube:container name="mailboxoptions" id="mailboxoptionsmenu" />
  </ul>
skins/larry/mail.css
@@ -518,10 +518,6 @@
    width: 135px;
}
.messagelist tr td.folder {
    width: 135px;
}
.messagelist tr td.hidden {
    display: none;
}
skins/larry/templates/mail.html
@@ -127,7 +127,7 @@
        <li><label><input type="checkbox" name="s_mods[]" value="bcc" id="s_mod_bcc" onclick="UI.set_searchmod(this)" /> <span><roundcube:label name="bcc" /></span></label></li>
        <li><label><input type="checkbox" name="s_mods[]" value="body" id="s_mod_body" onclick="UI.set_searchmod(this)" /> <span><roundcube:label name="body" /></span></label></li>
        <li><label><input type="checkbox" name="s_mods[]" value="text" id="s_mod_text" onclick="UI.set_searchmod(this)" /> <span><roundcube:label name="msgtext" /></span></label></li>
        <li class="separator" id=""><label><roundcube:label name="searchscope" /></label></li>
        <li class="separator"><label><roundcube:label name="searchscope" /></label></li>
        <li><label><input type="radio" name="s_scope" value="base" id="s_scope_base" onclick="UI.set_searchscope(this)" /> <span><roundcube:label name="currentfolder" /></span></label></li>
        <li><label><input type="radio" name="s_scope" value="sub" id="s_scope_sub" onclick="UI.set_searchscope(this)" /> <span><roundcube:label name="subfolders" /></span></label></li>
        <li><label><input type="radio" name="s_scope" value="all" id="s_scope_all" onclick="UI.set_searchscope(this)" /> <span><roundcube:label name="allfolders" /></span></label></li>
@@ -145,7 +145,7 @@
    <ul class="toolbarmenu" id="mailboxoptionsmenu">
        <li><roundcube:button command="expunge" type="link" label="compact" classAct="active" /></li>
        <li><roundcube:button command="purge" type="link" label="empty" classAct="active" /></li>
        <li><roundcube:button name="messageimport" type="link" class="active" label="importmessages" onclick="UI.show_uploadform()" /></li>
        <li><roundcube:button command="import-messages" name="messageimport" type="link" classAct="active" label="importmessages" onclick="if(rcmail.command_enabled('import-messages'))UI.show_uploadform();return false" /></li>
        <li><roundcube:button command="folders" task="settings" type="link" label="managefolders" classAct="active" /></li>
        <roundcube:container name="mailboxoptions" id="mailboxoptionsmenu" />
    </ul>