diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index dcdfd72..41e539a 100755 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -83,8 +83,10 @@ class MessagesController < ApplicationController # FIXME missing fields - @from = mail.From.addrs.presence - @to = mail.To.addrs.presence + #@from = mail.From.addrs.presence + #@to = mail.To.addrs.presence + @from = @message.from_addr + @to = @message.to_addr @cc = mail.Cc.presence @bcc = mail.Bcc.presence #@subject = mail.Subject diff --git a/app/helpers/messages_helper.rb b/app/helpers/messages_helper.rb index 3f8852d..c349bd4 100755 --- a/app/helpers/messages_helper.rb +++ b/app/helpers/messages_helper.rb @@ -15,8 +15,8 @@ module MessagesHelper end def address_formatter(addr,mode) - s = "" + return s if addr.nil? length = $defaults["msg_address_length"].to_i case mode @@ -26,12 +26,13 @@ module MessagesHelper s.length >= length ? s = s[0,length]+"..." : s return h(s) when :show - addr = addr[0].charseted.gsub(/\"/,"") + #addr = addr[0].charseted.gsub(/\"/,"") return h(addr) when :raw #fs = addr.gsub(/\"/,"").split(/" - return addr + s = h(addr) + return s end end @@ -49,19 +50,22 @@ module MessagesHelper def subject_formatter(message,mode) - if message.subject.size.zero? - s = t(:no_subject,:scope=>:message) - else - case mode - when :index - length = $defaults["msg_subject_length"].to_i - message.subject.length >= length ? s = message.subject[0,length]+"..." : s = message.subject - link_to s,{:controller => 'messages', :action => 'show', :id => message.uid} , :title => message.subject - when :show - message.subject - end - end - + case mode + when :index + if message.subject.nil? or message.subject.size.zero? + s = t(:no_subject,:scope=>:message) + else + length = $defaults["msg_subject_length"].to_i + message.subject.length >= length ? s = message.subject[0,length]+"..." : s = message.subject + end + link_to s,{:controller => 'messages', :action => 'show', :id => message.uid} , :title => message.subject + when :show + if message.subject.nil? or message.subject.size.zero? + t(:no_subject,:scope=>:message) + else + message.subject + end + end end def attachment_formatter(message) diff --git a/app/models/message.rb b/app/models/message.rb index c7cb89f..49806d3 100755 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -46,6 +46,8 @@ class Message < ActiveRecord::Base mail.To.nil? ? to = nil : to = mail.To.charseted mail.Subject.nil? ? subject = nil : subject = mail.Subject.charseted + #logger.custom('subject',mail.Subject.encoded) + #logger.custom('subject',subject) #logger.custom('mail',mail.inspect) create( diff --git a/lib/mail_plugin_extension.rb b/lib/mail_plugin_extension.rb index f1a2e85..3a464fd 100755 --- a/lib/mail_plugin_extension.rb +++ b/lib/mail_plugin_extension.rb @@ -45,7 +45,7 @@ module Mail class Field def charseted begin - if encoded =~ /\=\?([\w\-]+)\?/ + if value =~ /\=\?([\w\-]+)\?/ source_charset = $1 if source_charset.upcase == 'UTF-8' return decoded @@ -63,7 +63,7 @@ module Mail class Address def charseted begin - if encoded =~ /\=\?([\w\-]+)\?/ + if value =~ /\=\?([\w\-]+)\?/ source_charset = $1 if source_charset.upcase == 'UTF-8' return decoded diff --git a/themes/olive/views/messages/_file_attachs.html.erb b/themes/olive/views/messages/_file_attachs.html.erb index a5cd099..683b1f8 100755 --- a/themes/olive/views/messages/_file_attachs.html.erb +++ b/themes/olive/views/messages/_file_attachs.html.erb @@ -2,7 +2,7 @@ <%= t(:attachments,:scope=>:message) %> <% if not @attachments.size.zero? %> <% trclass = :even %> - +
<% @attachments.each do |a| %> <%= render :partial => 'messages/file_attach', :object => a %>