Change message highlighting so order matters. It will not select the first
authorindiri69 <indiri69@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 2 May 2003 21:31:25 +0000 (21:31 +0000)
committerindiri69 <indiri69@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 2 May 2003 21:31:25 +0000 (21:31 +0000)
match it finds (old way was last match).  You can also reorder highlighting
now.

git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@4842 7612ce4b-ef26-0410-bec9-ea0150e637f0

functions/mailbox_display.php
src/options_highlight.php

index 97f1418bbac8958512b97d7e590d1ded1fd80ff0..3d6a87c40af09fc0563a212ce626f6ec47e62b2f 100644 (file)
@@ -134,60 +134,41 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
     } else {
         $searchstr = '';
     }
-    /**
-    * AAAAH! Make my eyes stop bleeding!
-    * Who wrote this?!
-    */
+    
     if (is_array($message_highlight_list) && count($message_highlight_list)) {
-       $msg['TO'] = parseAddress($msg['TO']);
-       $msg['CC'] = parseAddress($msg['CC']);
+        $msg['TO'] = parseAddress($msg['TO']);
+        $msg['CC'] = parseAddress($msg['CC']);
         foreach ($message_highlight_list as $message_highlight_list_part) {
             if (trim($message_highlight_list_part['value']) != '') {
                 $high_val   = strtolower($message_highlight_list_part['value']);
                 $match_type = strtoupper($message_highlight_list_part['match_type']);
-                switch($match_type) {
-                    case('TO'):
-                    case('TO_CC'):
-                        foreach ($msg['TO'] as $address) {
-                            $address[0] = decodeHeader($address[0]);
-                            $address[1] = decodeHeader($address[1]);
-                            if (strstr('^^' . strtolower($address[0]), $high_val) ||
-                                strstr('^^' . strtolower($address[1]), $high_val)) {
-                                $hlt_color = $message_highlight_list_part['color'];
-                                continue;
+                if($match_type == 'TO_CC') {
+                    $match = array('TO', 'CC');
+                } else {
+                    $match = array($match_type);
+                }
+                foreach($match as $match_type) {
+                    switch($match_type) {
+                        case('TO'):
+                        case('CC'):
+                        case('FROM'):
+                            foreach ($msg[$match_type] as $address) {
+                                $address[0] = decodeHeader($address[0]);
+                                $address[1] = decodeHeader($address[1]);
+                                if (strstr('^^' . strtolower($address[0]), $high_val) ||
+                                    strstr('^^' . strtolower($address[1]), $high_val)) {
+                                    $hlt_color = $message_highlight_list_part['color'];
+                                    break 4;
+                                }
                             }
-                        }
-                        if($match_type != 'TO_CC') {
                             break;
-                        }
-                    case('CC'):
-                        foreach ($msg['CC'] as $address) {
-                            $address[0] = decodeHeader($address[0]);
-                            $address[1] = decodeHeader($address[1]);
-                            if( strstr('^^' . strtolower($address[0]), $high_val) ||
-                                strstr('^^' . strtolower($address[1]), $high_val)) {
+                        default:
+                            if (strstr('^^' . strtolower($msg[$match_type]), $high_val)) {
                                 $hlt_color = $message_highlight_list_part['color'];
-                                continue;
+                                break 3; 
                             }
-                        }
-                        break;
-                    case('FROM'):
-                        foreach ($msg['FROM'] as $address) {
-                            $address[0] = decodeHeader($address[0]);
-                            $address[1] = decodeHeader($address[1]);
-                            if( strstr('^^' . strtolower($address[0]), $high_val) ||
-                                strstr('^^' . strtolower($address[1]), $high_val)) {
-                                $hlt_color = $message_highlight_list_part['color'];
-                                continue;
-                            }
-                        }
-                        break;
-                    default:
-                        if (strstr('^^' . strtolower($msg[$match_type]), $high_val)) {
-                            $hlt_color = $message_highlight_list_part['color'];
-                            continue;
-                        }
-                        break;
+                            break;
+                    }
                 }
             }
         }
@@ -393,7 +374,7 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
         $msgs = array();
     }
 
-    $start = microtime();
+    //$start = microtime();
     /* If autoexpunge is turned on, then do it now. */
     $mbxresponse = sqimap_mailbox_select($imapConnection, $mailbox);
     $srt = $sort;
@@ -507,7 +488,7 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
 
     mail_message_listing_end($num_msgs, $paginator_str, $msg_cnt_str, $color); 
     echo '</td></tr></table>';
-    $t = elapsed($start);
+    //$t = elapsed($start);
     //echo("elapsed time = $t seconds\n");
 }
 
index 2af438b568185bd386f6123cf350e848e6bf65d4..fe5b24dba7fadc7b656e2ae82674af956fb3ea06 100644 (file)
@@ -64,13 +64,34 @@ if (! isset($message_highlight_list)) {
     $message_highlight_list = array();
 }
 
-if ($action == 'delete' && isset($theid)) {
-
+if (isset($theid) && ($action == 'delete') ||
+                     ($action == 'up')     ||
+                     ($action == 'down')) {
     $new_rules = array();
-    foreach($message_highlight_list as $rid => $rule) {
-         if($rid != $theid) {
-             $new_rules[] = $rule;
-         }
+    switch($action) {
+        case('delete'):
+            foreach($message_highlight_list as $rid => $rule) {
+                 if($rid != $theid) {
+                     $new_rules[] = $rule;
+                 }
+            }
+            break;
+        case('down'):
+            $theid++;
+        case('up'):
+            foreach($message_highlight_list as $rid => $rule) {
+                if($rid == $theid) {
+                    $temp_rule         = $new_rules[$rid-1];
+                    $new_rules[$rid-1] = $rule;
+                    $new_rules[$rid]   = $temp_rule;
+                } else {
+                    $new_rules[$rid]   = $rule;
+                }
+            }
+            break;
+        default:
+            $new_rules = $message_highlight_list;
+            break;
     }
     $message_highlight_list = $new_rules;    
 
@@ -115,9 +136,10 @@ html_tag( 'table', '', '', '', 'width="100%" border="0" cellpadding="1" cellspac
 
 echo '<center>[<a href="options_highlight.php?action=add">' . _("New") . '</a>]'.
         ' - [<a href="options.php">'._("Done").'</a>]</center><br>'."\n";
-if (count($message_highlight_list) >= 1) {
+$mhl_count = count($message_highlight_list);
+if ($mhl_count > 0) {
     echo html_tag( 'table', '', 'center', '', 'width="80%" border="0" cellpadding="3" cellspacing="0"' ) . "\n";
-    for ($i=0; $i < count($message_highlight_list); $i++) {
+    for ($i=0; $i < $mhl_count; $i++) {
         $match_type = '';
         switch ($message_highlight_list[$i]['match_type'] ) {
             case 'from' :
@@ -137,12 +159,21 @@ if (count($message_highlight_list) >= 1) {
             break;
         }
 
+        $links = '<small>[<a href="options_highlight.php?action=edit&amp;theid=' . $i . '">' .
+                 _("Edit") .
+                 '</a>]&nbsp;[<a href="options_highlight.php?action=delete&amp;theid='.  $i . '">' .
+                 _("Delete");
+        if($i > 0) {
+            $links .= '</a>]&nbsp;[<a href="options_highlight.php?action=up&amp;theid='.  $i . '">' .  _("Up");
+        }
+        if($i+1 < $mhl_count) {
+            $links .= '</a>]&nbsp;[<a href="options_highlight.php?action=down&amp;theid='.  $i . '">' .  _("Down");
+        }
+        $links .= '</a>]</small>';
+
         echo html_tag( 'tr',
                     html_tag( 'td',
-                        '<small>[<a href="options_highlight.php?action=edit&amp;theid=' . $i . '">' .
-                        _("Edit") .
-                        '</a>]&nbsp;[<a href="options_highlight.php?action=delete&amp;theid='.
-                        $i . '">' . _("Delete") . '</a>]</small>' ,
+                        $links,
                     'left', $color[4], 'width="20%" nowrap' ) .
                     html_tag( 'td',
                         htmlspecialchars($message_highlight_list[$i]['name']) ,