}
break;
+ case 'ctx_mboxsort_none':
+ this.sort($H(DIMP.conf.sort).get('sequence').v);
+ break;
+
default:
if (menu.endsWith('_setflag') || menu.endsWith('_unsetflag')) {
flag = elt.readAttribute('flag');
DimpCore.setTitle(label);
},
- sort: function(e)
+ sort: function(sortby)
{
- var s,
- sortby = e.element().retrieve('sortby');
+ var s;
if (Object.isUndefined(sortby)) {
return;
}
- e.stop();
-
sortby = Number(sortby);
if (sortby == this.viewport.getMetaData('sortby')) {
s = { sortdir: (this.viewport.getMetaData('sortdir') ? 0 : 1) };
}
ptr.find(function(s) {
- return (sortby == s.value.v)
- ? s.value.e.up().addClassName(this.viewport.getMetaData('sortdir') ? 'sortup' : 'sortdown')
- : false;
+ if (sortby != s.value.v) {
+ return false;
+ }
+ var elt = s.value.e.up();
+ if (elt) {
+ elt.addClassName(this.viewport.getMetaData('sortdir') ? 'sortup' : 'sortdown');
+ }
+ return true;
}, this);
},
return;
case 'msglistHeader':
- this.sort(e);
+ this.sort(e.element().retrieve('sortby'));
+ e.stop();
return;
case 'th_expand':
DM.disable('button_forward_img', true, true);
}
+ this._addMouseEvents({ id: 'msglistHeader', type: 'mboxsort' });
+
new Drop('dropbase', this._folderDropConfig);
if (DIMP.conf.toggle_pref) {
} else if (elt.hasClassName('checkbox')) {
this.selectRange(e);
// Fall through to elt.up() call below.
+ } else if (elt.hasClassName('nosort')) {
+ return;
}
id = elt.readAttribute('id');
$mh_template->set('sessiontag', Horde_Util::formInput());
$mh_template->set('headers', $headers);
+ if ($sortpref['by'] != Horde_Imap_Client::SORT_SEQUENCE) {
+ $mh_template->set('no_sort', Horde::widget($sort_url->copy()->remove('sortdir')->add(array('sortby' => Horde_Imap_Client::SORT_SEQUENCE, 'actionID' => 'change_sort', 'mailbox_token' => $mailbox_token)), _("Clear Sort"), 'widget', '', '', _("Clear Sort")));
+ }
+
if (!$search_mbox) {
$mh_template->set('mh_count', $mh_count++);
echo $mh_template->fetch(IMP_TEMPLATES . '/imp/mailbox/message_headers.html');
<a id="ctx_contacts_add"><span class="contextImg"></span><?php echo _("Add to Address Book") ?></a>
</div>
+<div class="context" id="ctx_mboxsort" style="display:none">
+ <a id="ctx_mboxsort_none"><?php echo _("Clear Sort") ?></a>
+</div>
+
<?php if ($_SESSION['imp']['protocol'] != 'pop'): ?>
<div class="context" id="ctx_qsearchopts" style="display:none">
<a id="ctx_qsearchopts_by"><?php echo _("Search By") ?></a>
'searchprefix' => IMP_Search::MBOX_PREFIX,
'sidebar_width' => max((int)$GLOBALS['prefs']->getValue('sidebar_width'), 150) . 'px',
'sort' => array(
+ 'sequence' => array(
+ 't' => '',
+ 'v' => Horde_Imap_Client::SORT_SEQUENCE
+ ),
'from' => array(
't' => _("From"),
'v' => Horde_Imap_Client::SORT_FROM
<th id="checkheader" width="8%">
<label for="checkAll" class="hidden"><gettext>Check All/None</gettext></label>
<input type="checkbox" class="checkbox" id="checkAll" name="checkAll" <tag:check_all /> />
+<if:no_sort>
+ <span class="nosort">[<tag:no_sort />]</span>
+</if:no_sort>
</th>
</else:mh_count></if:mh_count>
<loop:headers>
margin-left: 3px;
}
+#checkheader input {
+ float: left;
+}
+#checkheader span.nosort {
+ font-weight: normal;
+ font-size: 90%;
+ padding-left: 3px;
+}
+
/* Newmail alerts. */
#newmail {
padding: 1em;