From: Michael M Slusarz Date: Tue, 30 Mar 2010 18:58:58 +0000 (-0600) Subject: Ticket #8936: Allow switching back to no sort (i.e. sequence sort) X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=8e662a4a7d28963cc28b2350fed6e873da5a9a57;p=horde.git Ticket #8936: Allow switching back to no sort (i.e. sequence sort) --- diff --git a/imp/js/DimpBase.js b/imp/js/DimpBase.js index 37336c312..233474719 100644 --- a/imp/js/DimpBase.js +++ b/imp/js/DimpBase.js @@ -866,6 +866,10 @@ var DimpBase = { } 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'); @@ -1004,17 +1008,14 @@ var DimpBase = { 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) }; @@ -1077,9 +1078,14 @@ var DimpBase = { } 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); }, @@ -2012,7 +2018,8 @@ var DimpBase = { return; case 'msglistHeader': - this.sort(e); + this.sort(e.element().retrieve('sortby')); + e.stop(); return; case 'th_expand': @@ -2974,6 +2981,8 @@ var DimpBase = { DM.disable('button_forward_img', true, true); } + this._addMouseEvents({ id: 'msglistHeader', type: 'mboxsort' }); + new Drop('dropbase', this._folderDropConfig); if (DIMP.conf.toggle_pref) { diff --git a/imp/js/mailbox.js b/imp/js/mailbox.js index 7317fff14..97d9bdb07 100644 --- a/imp/js/mailbox.js +++ b/imp/js/mailbox.js @@ -231,6 +231,8 @@ var ImpMailbox = { } 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'); diff --git a/imp/mailbox.php b/imp/mailbox.php index 4aaac8100..2bf761bd4 100644 --- a/imp/mailbox.php +++ b/imp/mailbox.php @@ -651,6 +651,10 @@ if ($pageOb['msgcount']) { $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'); diff --git a/imp/templates/dimp/index.inc b/imp/templates/dimp/index.inc index e8e130ff8..3ff828bc1 100644 --- a/imp/templates/dimp/index.inc +++ b/imp/templates/dimp/index.inc @@ -461,6 +461,10 @@ function _simpleButton($id, $text, $image, $nodisplay = false) + +