Better place for 'Clear Sort' in IMP
authorMichael M Slusarz <slusarz@curecanti.org>
Tue, 13 Apr 2010 06:00:02 +0000 (00:00 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Tue, 13 Apr 2010 06:00:02 +0000 (00:00 -0600)
imp/js/mailbox.js
imp/mailbox.php
imp/templates/imp/mailbox/actions.html
imp/templates/imp/mailbox/message_headers.html
imp/themes/screen.css

index ca1e169..67e11b9 100644 (file)
@@ -202,33 +202,40 @@ var ImpMailbox = {
             if (elt.match('.msgactions A.widget')) {
                 if (elt.hasClassName('moveAction')) {
                     this._transfer('move_messages');
+                    e.stop();
                 } else if (elt.hasClassName('copyAction')) {
                     this._transfer('copy_messages');
+                    e.stop();
                 } else if (elt.hasClassName('permdeleteAction')) {
                     if (confirm(IMP.text.mailbox_delete)) {
                         this.submit('delete_messages');
                     }
+                    e.stop();
                 } else if (elt.hasClassName('deleteAction')) {
                     this.submit('delete_messages');
+                    e.stop();
                 } else if (elt.hasClassName('undeleteAction')) {
                     this.submit('undelete_messages');
+                    e.stop();
                 } else if (elt.hasClassName('blacklistAction')) {
                     this.submit('blacklist');
+                    e.stop();
                 } else if (elt.hasClassName('whitelistAction')) {
                     this.submit('whitelist');
+                    e.stop();
                 } else if (elt.hasClassName('forwardAction')) {
                     this.submit('fwd_digest');
+                    e.stop();
                 } else if (elt.hasClassName('spamAction')) {
                     this.submit('spam_report');
+                    e.stop();
                 } else if (elt.hasClassName('notspamAction')) {
                     this.submit('notspam_report');
+                    e.stop();
                 } else if (elt.hasClassName('viewAction')) {
                     this.submit('view_messages');
-                } else if (elt.hasClassName('hideAction') || elt.hasClassName('purgeAction')) {
-                    return;
+                    e.stop();
                 }
-
-                e.stop();
                 return;
             } else if (elt.hasClassName('checkbox')) {
                 this.selectRange(e);
index 2bf761b..2d9967d 100644 (file)
@@ -513,14 +513,31 @@ if ($pageOb['msgcount']) {
         $a_template->set('undelete', Horde::widget('#', _("Undelete"), 'widget undeleteAction', '', '', _("_Undelete")));
     }
 
+    $mboxactions = array();
     if ($showdelete['purge']) {
         $mailbox_link = $mailbox_imp_url->copy()->add('page', $pageOb['page']);
         if (isset($deleted_prompt)) {
-            $a_template->set('hide_deleted', Horde::widget($mailbox_link->copy()->add(array('actionID' => 'hide_deleted', 'mailbox_token' => $mailbox_token)), $deleted_prompt, 'widget hideAction', '', '', $deleted_prompt));
+            $mboxactions[] = array(
+                'v' => Horde::widget($mailbox_link->copy()->add(array('actionID' => 'hide_deleted', 'mailbox_token' => $mailbox_token)), $deleted_prompt, 'widget hideAction', '', '', $deleted_prompt)
+            );
         }
-        $a_template->set('purge_deleted', Horde::widget($mailbox_link->copy()->add(array('actionID' => 'expunge_mailbox', 'mailbox_token' => $mailbox_token)), _("Purge Deleted"), 'widget purgeAction', '', '', _("Pur_ge Deleted")));
+        $mboxacrtions[] = array(
+            'v' => Horde::widget($mailbox_link->copy()->add(array('actionID' => 'expunge_mailbox', 'mailbox_token' => $mailbox_token)), _("Purge Deleted"), 'widget purgeAction', '', '', _("Pur_ge Deleted"))
+        );
     }
 
+    if ($sortpref['by'] != Horde_Imap_Client::SORT_SEQUENCE) {
+        $mboxactions[] = array(
+            'v' => 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"))
+        );
+    }
+
+    /* Hack since IE doesn't support :last-child CSS selector. */
+    if (!empty($mboxactions)) {
+        $mboxactions[count($mboxactions) - 1]['last'] = true;
+    }
+    $a_template->set('mboxactions', $mboxactions);
+
     if ($registry->hasMethod('mail/blacklistFrom')) {
         $a_template->set('blacklist', Horde::widget('#', _("Blacklist"), 'widget blacklistAction', '', '', _("_Blacklist")));
     }
@@ -651,10 +668,6 @@ 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');
index 5f411e6..bc4b9a8 100644 (file)
@@ -1,13 +1,14 @@
 <table width="100%" cellspacing="0">
  <tr>
   <td class="mboxcontrol <if:isbottom>topborder</if:isbottom>">
-   <div class="rightFloat">
+   <span class="rightFloat">
     <ul class="msgactions">
-     <if:hide_deleted><li<if:purge_deleted><else:purge_deleted> class="lastnavbar"</else:purge_deleted></if:purge_deleted>><tag:hide_deleted /></li></if:hide_deleted>
-     <if:purge_deleted><li class="lastnavbar"><tag:purge_deleted /></li></if:purge_deleted>
+<loop:mboxactions>
+     <li<if:mboxactions.last> class="lastnavbar"</if:mboxactions.last>><tag:mboxactions.v /></li>
+</loop:mboxactions>
     </ul>
-   </div>
-   <div class="leftFloat">
+   </span>
+   <span class="leftFloat">
     <ul class="msgactions">
 <if:readonly><else:readonly>
      <if:delete><li><tag:delete /></li></if:delete>
@@ -22,7 +23,7 @@
 </else:readonly></if:readonly>
      <li class="lastnavbar"><tag:view_messages /></li>
     </ul>
-   </div>
+   </span>
   </td>
  </tr>
 </table>
index fd4bf46..cd5c70b 100644 (file)
@@ -12,9 +12,6 @@
   <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>
index 8b69c64..4095fe4 100644 (file)
 #checkheader input {
     float: left;
 }
-#checkheader span.nosort {
-    font-weight: normal;
-    font-size: 90%;
-    padding-left: 3px;
-}
 
 /* Newmail alerts. */
 #newmail {