Changeset 1534 in subversion


Ignore:
Timestamp:
Jun 14, 2008 1:35:26 PM (5 years ago)
Author:
thomasb
Message:

Complete implementation of #1484601: add link for saving sender to address book and reload message

Location:
trunk/roundcubemail
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/roundcubemail/program/include/rcube_message.php

    r1525 r1534  
    4343  public $attachments = array(); 
    4444  public $subject = ''; 
     45  public $sender = null; 
    4546  public $is_safe = false; 
    4647   
     
    5455    $this->headers = $this->imap->get_headers($uid); 
    5556    $this->subject = rcube_imap::decode_mime_string($this->headers->subject, $this->headers->charset); 
     57    list(, $this->sender) = each($this->imap->decode_address_list($this->headers->from)); 
    5658     
    57     $this->is_safe = (intval($_GET['_safe']) || $_SESSION['safe_messages'][$uid]) ? true : false; 
    58     $_SESSION['safe_messages'][$uid] = $this->is_safe; 
     59    $this->set_safe((intval($_GET['_safe']) || $_SESSION['safe_messages'][$uid])); 
     60    $this->set_safe(0); 
    5961     
    6062    $this->opt = array( 
  • trunk/roundcubemail/program/js/app.js

    r1525 r1534  
    186186          if (this.gui_objects.remoteobjectsmsg) 
    187187            this.gui_objects.remoteobjectsmsg.style.display = 'block'; 
    188           this.enable_command('load-images', true); 
     188          this.enable_command('load-images', 'always-load', true); 
    189189          } 
    190190 
     
    705705        this.mark_message(flag, uid); 
    706706        break; 
     707         
     708      case 'always-load': 
     709        if (this.env.uid && this.env.sender) { 
     710          this.add_contact(urlencode(this.env.sender)); 
     711          window.setTimeout(function(){ ref.command('load-images'); }, 300); 
     712          break; 
     713        } 
    707714         
    708715      case 'load-images': 
  • trunk/roundcubemail/program/localization/de_CH/labels.inc

    r1446 r1534  
    185185$labels['nosubject']  = '(kein Betreff)'; 
    186186$labels['showimages'] = 'Bilder anzeigen'; 
     187$labels['alwaysshow'] = 'Bilder von $sender immer zeigen'; 
    187188 
    188189$labels['htmltoggle'] = 'HTML'; 
  • trunk/roundcubemail/program/localization/de_DE/labels.inc

    r1446 r1534  
    147147$labels['nosubject'] = '(kein Betreff)'; 
    148148$labels['showimages'] = 'Bilder anzeigen'; 
     149$labels['alwaysshow'] = 'Bilder von $sender immer zeigen'; 
    149150$labels['htmltoggle'] = 'HTML'; 
    150151$labels['plaintoggle'] = 'Nur-Text'; 
  • trunk/roundcubemail/program/localization/en_US/labels.inc

    r1531 r1534  
    185185$labels['nosubject']  = '(no subject)'; 
    186186$labels['showimages'] = 'Display images'; 
     187$labels['alwaysshow'] = 'Always show images from $sender'; 
    187188 
    188189$labels['htmltoggle'] = 'HTML'; 
  • trunk/roundcubemail/program/steps/mail/show.inc

    r1525 r1534  
    4848  // check known senders to display images 
    4949  if (!$MESSAGE->is_safe  
    50         && !$_SESSION['safe_messages'][$MESSAGE->uid] 
    51         && !isset($_GET['_safe'])  
    52         && $RCMAIL->config->get('addrbook_show_images') 
    53         && $MESSAGE->has_html_part()) 
    54     { 
    55       $CONTACTS = new rcube_contacts($DB, $_SESSION['user_id']); 
    56       $senders = $IMAP->decode_address_list($MESSAGE->headers->from); 
    57  
    58       foreach ($senders as $sender) 
    59         if ($sender['mailto'] && $CONTACTS->search('email', $sender['mailto'], true, false)->count) 
    60           { 
    61           $MESSAGE->set_safe(); 
    62           break; 
    63           } 
    64     } 
     50      && !empty($MESSAGE->sender['mailto']) 
     51      && $RCMAIL->config->get('addrbook_show_images') 
     52      && $MESSAGE->has_html_part()) { 
     53    $CONTACTS = new rcube_contacts($DB, $_SESSION['user_id']); 
     54     
     55    if ($CONTACTS->search('email', $MESSAGE->sender['mailto'], true, false)->count) { 
     56      $MESSAGE->set_safe(true); 
     57    } 
     58  } 
    6559 
    6660  // allow caching, unless remote images are present 
     
    8680  $OUTPUT->set_env('uid', $MESSAGE->uid); 
    8781  $OUTPUT->set_env('safemode', $MESSAGE->is_safe); 
     82  $OUTPUT->set_env('sender', $MESSAGE->sender['string']); 
    8883   
    8984  // check for unset disposition notification 
     
    175170 
    176171function rcmail_remote_objects_msg($attrib) 
    177   { 
    178   global $CONFIG, $OUTPUT; 
     172{ 
     173  global $MESSAGE, $RCMAIL; 
    179174   
    180175  if (!$attrib['id']) 
    181176    $attrib['id'] = 'rcmremoteobjmsg'; 
    182  
    183   // allow the following attributes to be added to the <div> tag 
    184   $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id')); 
    185   $out = '<div' . $attrib_str . ">"; 
    186    
    187   $out .= sprintf('%s&nbsp;<a href="#loadimages" onclick="%s.command(\'load-images\')">%s</a>', 
    188                   Q(rcube_label('blockedimages')), 
    189                   JS_OBJECT_NAME, 
    190                   Q(rcube_label('showimages'))); 
    191    
    192   $out .= '</div>'; 
    193    
    194   $OUTPUT->add_gui_object('remoteobjectsmsg', $attrib['id']); 
    195   return $out; 
    196   } 
     177   
     178  $msg = Q(rcube_label('blockedimages')) . '&nbsp;'; 
     179  $msg .= html::a(array('href' => "#loadimages", 'onclick' => JS_OBJECT_NAME.".command('load-images')"), Q(rcube_label('showimages'))); 
     180   
     181  // add link to save sender in addressbook and reload message 
     182  if ($MESSAGE->sender['mailto'] && $RCMAIL->config->get('addrbook_show_images')) { 
     183    $msg .= ' ' . html::a(array('href' => "#alwaysload", 'onclick' => JS_OBJECT_NAME.".command('always-load')", 'style' => "white-space:nowrap"), 
     184      Q(rcube_label(array('name' => 'alwaysshow', 'vars' => array('sender' => $MESSAGE->sender['mailto']))))); 
     185  } 
     186   
     187  $RCMAIL->output->add_gui_object('remoteobjectsmsg', $attrib['id']); 
     188  return html::div($attrib, $msg); 
     189} 
    197190 
    198191 
  • trunk/roundcubemail/skins/default/mail.css

    r1533 r1534  
    731731{ 
    732732  display: none; 
    733   height: 20px; 
     733  margin: 8px; 
    734734  min-height: 20px; 
    735   margin: 8px 8px 0px 8px; 
    736   padding: 10px 10px 6px 46px;   
     735  padding: 10px 10px 6px 46px; 
    737736} 
    738737 
Note: See TracChangeset for help on using the changeset viewer.