2009-01-07 20:27:12 +01:00
|
|
|
require 'cdfutils'
|
|
|
|
require 'mail2screen'
|
|
|
|
|
2009-01-07 21:06:34 +01:00
|
|
|
module WebmailHelper
|
2009-01-07 20:27:12 +01:00
|
|
|
include Mail2Screen
|
|
|
|
def link_folders
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('Folders'), :controller=>"webmail", :action=>"messages")
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def link_compose_new
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('Compose new mail'), :controller=>"webmail", :action=>"compose")
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def link_refresh
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('Refresh'), :controller=>"webmail", :action=>"refresh")
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def link_message_list
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('Message list'), :controller=>"webmail", :action=>"messages")
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def link_reply_to_sender(msg_id)
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('Reply'), :controller=>"webmail", :action=>"reply", :params=>{"msg_id"=>msg_id})
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def link_forward_message(msg_id)
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('Forward'), :controller=>"webmail", :action=>"forward", :params=>{"msg_id"=>msg_id})
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def link_flag_for_deletion(msg_id)
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('Delete'), :controller=>"webmail", :action=>"delete", :params=>{"msg_id"=>msg_id})
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def link_view_source(msg_id)
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('View source'), {:controller=>"webmail", :action=>"view_source", :params=>{"msg_id"=>msg_id}}, {'target'=>"_blank"})
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def link_filter_add
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('Add filter'), :controller=>'webmail', :action=>'filter_add')
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def folder_link(folder)
|
2009-02-07 23:14:00 +01:00
|
|
|
return folder.name if folder.attribs.include?(:Noselect)
|
|
|
|
title = folder.unseen > 0 ? "#{short_fn(folder)} (#{folder.unseen})" : "#{short_fn(folder)}"
|
|
|
|
link = link_to title, :controller => 'webmail', :action => 'messages', :folder_name => folder.name
|
|
|
|
link = content_tag('b', link) if folder.name == @folder_name
|
|
|
|
link += ' ' + empty_trash_link(folder.name) if folder.trash?
|
|
|
|
link
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
2009-02-07 23:14:00 +01:00
|
|
|
|
2009-01-07 20:27:12 +01:00
|
|
|
def message_date(datestr)
|
|
|
|
t = Time.now
|
|
|
|
begin
|
|
|
|
if datestr.kind_of?(String)
|
|
|
|
d = (Time.rfc2822(datestr) rescue Time.parse(value)).localtime
|
|
|
|
else
|
|
|
|
d = datestr
|
|
|
|
end
|
|
|
|
if d.day == t.day and d.month == t.month and d.year == t.year
|
|
|
|
d.strftime("%H:%M")
|
|
|
|
else
|
|
|
|
d.strftime("%Y-%m-%d")
|
|
|
|
end
|
|
|
|
rescue
|
|
|
|
begin
|
|
|
|
d = imap2time(datestr)
|
|
|
|
if d.day == t.day and d.month == t.month and d.year == t.year
|
|
|
|
d.strftime("%H:%M")
|
|
|
|
else
|
|
|
|
d.strftime("%Y-%m-%d")
|
|
|
|
end
|
|
|
|
rescue
|
|
|
|
datestr
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def attachment(att, index)
|
|
|
|
ret = "#{att.filename}"
|
|
|
|
# todo: add link to delete attachment
|
|
|
|
#ret <<
|
|
|
|
ret << "<input type='hidden' name='att_files[#{index}]' value='#{att.filename}'/>"
|
|
|
|
ret << "<input type='hidden' name='att_tfiles[#{index}]' value='#{att.temp_filename}'/>"
|
|
|
|
ret << "<input type='hidden' name='att_ctypes[#{index}]' value='#{att.content_type}'/>"
|
|
|
|
end
|
|
|
|
|
|
|
|
def link_filter_up(filter_id)
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('Up'), :controller=>"webmail", :action=>"filter_up", :id=>filter_id)
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def link_filter_down(filter_id)
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('Down'), :controller=>"webmail", :action=>"filter_down", :id=>filter_id)
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def link_filter_edit(filter_id)
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('Edit'), :controller=>"webmail", :action=>"filter", :id=>filter_id)
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def link_filter_delete(filter_id)
|
2009-02-05 16:55:24 +01:00
|
|
|
link_to(_('Delete'), :controller=>"webmail", :action=>"filter_delete", :id=>filter_id)
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def page_navigation_webmail(pages)
|
|
|
|
nav = "<p class='paginator'><small>"
|
|
|
|
|
|
|
|
nav << "(#{pages.length} #{_('Pages')}) "
|
|
|
|
|
|
|
|
window_pages = pages.current.window.pages
|
|
|
|
nav << "..." unless window_pages[0].first?
|
|
|
|
for page in window_pages
|
|
|
|
if pages.current == page
|
|
|
|
nav << page.number.to_s << " "
|
|
|
|
else
|
2009-02-05 16:55:24 +01:00
|
|
|
nav << link_to(page.number, :controller=>"webmail", :action=>'messages', :page=>page.number) << " "
|
2009-01-07 20:27:12 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
nav << "..." unless window_pages[-1].last?
|
|
|
|
nav << " "
|
|
|
|
|
2009-02-05 16:55:24 +01:00
|
|
|
nav << link_to(_('First'), :controller=>"webmail", :action=>'messages', :page=>@pages.first.number) << " | " unless @pages.current.first?
|
|
|
|
nav << link_to(_('Prev'), :controller=>"webmail", :action=>'messages', :page=>@pages.current.previous.number) << " | " if @pages.current.previous
|
|
|
|
nav << link_to(_('Next'), :controller=>"webmail", :action=>'messages', :page=>@pages.current.next.number) << " | " if @pages.current.next
|
|
|
|
nav << link_to(_('Last'), :controller=>"webmail", :action=>'messages', :page=>@pages.last.number) << " | " unless @pages.current.last?
|
2009-01-07 20:27:12 +01:00
|
|
|
|
|
|
|
nav << "</small></p>"
|
|
|
|
|
|
|
|
return nav
|
|
|
|
end
|
|
|
|
|
|
|
|
def parse_subject(subject)
|
|
|
|
begin
|
|
|
|
if mime_encoded?(subject)
|
|
|
|
if mime_decode(subject) == ''
|
|
|
|
_('(No subject)')
|
|
|
|
else
|
|
|
|
mime_decode(subject)
|
|
|
|
end
|
|
|
|
else
|
|
|
|
if from_qp(subject) == ''
|
|
|
|
_('(No subject)')
|
|
|
|
else
|
|
|
|
from_qp(subject)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
rescue Exception => ex
|
|
|
|
RAILS_DEFAULT_LOGGER.debug('Exception occured - #{ex}')
|
|
|
|
return ""
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def message_size(size)
|
|
|
|
if size / (1024*1024) > 0
|
|
|
|
return "#{(size / (1024*1024)).round} MB"
|
|
|
|
elsif size / 1024 > 0
|
|
|
|
return "#{(size / (1024)).round} KB"
|
|
|
|
else
|
|
|
|
return "#{size} B"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2009-02-07 23:14:00 +01:00
|
|
|
private
|
|
|
|
|
|
|
|
def empty_trash_link(folder_name)
|
|
|
|
link_to(_('(Empty)'),
|
|
|
|
{ :controller => "webmail", :action => "empty", :params=>{"folder_name"=>folder_name}},
|
|
|
|
:confirm => _('Do you really want to empty trash?'))
|
|
|
|
end
|
|
|
|
end
|